EVM/Kernel: simulation uses a 0 transfer instead of null
What
When you make a call to the simulation, you might specify a value. The value can be absent and it sends None to run_transaction. However, if you read EVM specification, calls that has None as transfer (and not Some(0)) are very specific kind of calls (e.g. delegatecall, staticcall etc.).
Please before approving check that this statement is true.
Why
I made it explicit that a fa bridge withdrawal refuses a None transfer in !14950 (merged), and one test fail because of the gas estimation revert.
How
Changes the kernel to default to Some(0) if value is not provided. Changes the node to do the same. The changes is done in the node itself so it works on mainnet and testnet.
Manually testing the MR
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR
Edited by Valentin Chaboche