If you use Custom Contract selector you can simulate a custom contract execution by pasting your contract data or importing your contract ABI.
Otherwise, choose a public contract from your project (or add any public contract to your project before selecting it).
- Block Number (locked to next block if pending is selected)
- Transaction Index (locked if pending is selected)
- From (Address)
- Gas (Amount)
- Gas Price
- Value (monetary value passed within the transaction, not required)
- Announce to the node which contracts you will be using in order to lower the transaction cost
- Makes sense to be used for greater number of contracts and function calls
- If the list of contracts changes after the announcement this optimization will not work
If you want to change any of the states on the fly, you can use the State Override for any of the contracts you want.
Select either a custom or existing contract in your project and you can change any of its state parameters for the purposes of your simulation.
You can also add as many State Overrides for any number of contracts you want, just by clicking on the
Add State Override button:
If you want to save your simulation starting point with modified State Overrides and other parameters, you can use Forks and our Fork Parents feature.
You can explore some use cases for state overrides in this blog article:
When executing Simulations, the number you choose in the "Block Header Overrides" section will make your code think that your current block is the one you chose instead of the block defined above (pending or historical blocks) from which the state is taken from.