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.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR

Merge request reports

Loading