## How to generate your own executor inputs
The used repo for this purpose is https://github.com/0xPolygonHermez/zkevm-testvectors
There are 2 differentated steps:
1- Generate state-transition file from gen file
2- Generate executor input from state-transition file
### 1- Generate state-transition file from gen file
- You have to create a generator json file with the desired test and store it at **/zkevm-testvectors/tools-calldata/evm/generate-test-vectors** folder
- To know the structore of the file to follow, there is plenty of examples in the above folder.
- Run the state-transition generator script:
```
npx mocha tools-calldata/evm/gen-test-vectors-evm.js --vectors gen-XXX
```
Where gen-xxx is the name of the file stored at `generate-test-vectors` for example `--vectors gen-erc20` to generate the state transition of the file generator at `/tools-calldata/evm/generate-test-vectors/gen-erc20.json`
- The output of this script is the creation of the state-transition file `/Users/ignasi/Documents/Github/Polygon/zkevm-testvectors/state-transition/calldata/erc20.json``
### 2- Generate executor input from state-transition file
- From the generated output file of step 1, we will generate the executor input with the following command:
```
npx mocha /tools-calldata/evm/gen-inputs.js --update --output --vectors erc20 --evm-debug
```
- This command will generate the desired input file at `inputs-executor/calldata/erc20_0.json`
- With this input you can test the executor, maybe you have to rename or reformat some params.