Transaction Calldata
Reference tables with calldata structure for different transaction types
All transaction data are transferred to the Pool contract through the calldata. The are two versions of calldata. The first one is outdated for now. But it still need to retrieve and decode specific fields for the old transactions (sent through the method transact)
The second transaction calldata version was introduced to extend an internal container and populate it with the additional fields such as user extra data, prover fee, proxy address and so on. This version also contains a version byte which can be useful in future to change calldata format. The second calldata version was developed to support decentalized relayers deployment. That's why it doesn't contain tree_proof and root_after fields since the transaction finalized with the separate pool contract method (proveTreeUpdate) by prover. This version accepted by transactV2 method only
Calldata also contains memo block which depends on transaction type. For example withdrawal transactions contain addition fields memo.nativeamount and memo.receiver. Due to this, the calldata table for the different transactions are presented separately.
Last updated
Was this helpful?