Define the Tezlink tx queue
This MR is stacked on !18324 (merged).
Closes L2-86
What
This MR defines Tezlink operations and instantiates the tx-queue's Tx_container functor with them.
Why
The Tx-queue is the main transaction container of the L2 node, and the one used in production by the Etherlink sequencer to fetch the transactions to include in blocks. Supporting Tezlink in the tx-queue is essential to support operation-crafting Tezos tools such as wallets.
How
To define the operation type in the case of Tezlink, the requirements are those of the L2_transaction interface (see second commit) defined in !18322 (merged). In particular, we need to be able to compute from an operation its nonce, source address, and hash. To compute those, we are not allowed to use the result monad. The simplest to achieve this is to define the operation type as a record (see first commit) containing as fields the pre-computed nonce and source address, in addition to the raw operation (to compute the hash).
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