EVM/Node: deprecate transaction validation for legacy kernel version
What
Removes the support for old kernels that would return only the caller of a transaction during validation.
Why
All kernels deployed on networks return the transaction object now, we don't need to support that old kernels because the validation is always performed on the latest kernel.
Also, we are planning to replace the implementation by OCaml transaction validation and therefore we'll always have a transaction object available. This allows to also remove the transaction module in encodings/ that is only partial and not clean, the goal is to reimplement correctly this module.
How
It's a lot of noise, but we for now simply match on the return of is_tx_valid and return an internal error if it returns the previous result's version. Then I removed all the code related to this transaction_object option in the transaction pool.
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