Transaction Calldata
Reference tables with calldata structure for different transaction types
All transaction data are transferred to the Pool contract through the calldata. The following reference table is useful for transaction analysis.
Withdrawal transactions contain addition fields memo.nativeamount
and memo.receiver
. Due to this, the calldata table for withdrawal transactions is presented separately.
Field | Size (bytes) | Offset (bytes) | Description |
---|---|---|---|
selector | 4 | 0 | Contract method selector (0xaf989083) |
nullifier | 32 | 4 | The unique transaction nullifier |
out_commit | 32 | 36 | Transaction commitment (transaction subtree root in the Merkle tree) |
tx_index | 6 | 68 | Transaction's first leaf index within Merkle tree (0-based counter) |
energy_amount | 14 | 74 | Account XP delta (signed integer, Gwei) |
token_amount | 8 | 88 | Account token delta (signed integer, Gwei) |
tx_proof | 256 | 96 | zkSNARK proof |
root_after | 32 | 352 | Merkle tree root after adding the transaction |
tree_proof | 256 | 384 | zkSNARK proof |
tx_type | 2 | 640 | 0 - deposit 1 - transfer 2 - withdraw |
memo_size | 2 | 642 | The following memo block size in bytes |
memo.fee | 8 | 644 | The tokens amount to be transferred to the operator (the Pool contract will multiply the fee by denominator) |
memo.ItemsNum | 4 | 652 | Number of encrypted items in the memo block |
memo.Hash_acc | 32 | 656 | Output account hash (with updated balance) |
memo.Hash_notes | 32 * (memo.ItemsNum - 1) | 688 | Output note hash |
memo.Ap_x | 32 | 656 + 32 ∗ memo.ItemsNum | Ephemeral public key (using to decrypt |
memo.keys_enc | 32 * memo.ItemsNum + 16 | 688+ 32 ∗ memo.ItemsNum | Account and notes encryption keys |
memo.acc_enc | 86 | 704 + 64 * memo.ItemsNum | Encrypted account with an updated balance |
memo.notes_enc | 108*(memo.ItemsNum - 1) | 790+ 64 * memo.ItemsNum | A single encrypted note takes 108 bytes: = 32 = 76 |
ECDSA signature | 64 | 682 + 172 * memo.ItemsNum | Used to recover deposit spender in the corresponding transactions |
Last updated