From 3bec02c0e0774e4a859f47cfbb090f92435287b4 Mon Sep 17 00:00:00 2001 From: Santiago Palladino Date: Wed, 29 Nov 2023 15:20:06 -0300 Subject: [PATCH] Add maxBlockNum --- yellow-paper/docs/transactions/tx-object.md | 1 + yellow-paper/docs/transactions/validity.md | 1 + 2 files changed, 2 insertions(+) diff --git a/yellow-paper/docs/transactions/tx-object.md b/yellow-paper/docs/transactions/tx-object.md index c9a9b0c85c8..38123b6ffb9 100644 --- a/yellow-paper/docs/transactions/tx-object.md +++ b/yellow-paper/docs/transactions/tx-object.md @@ -35,6 +35,7 @@ Output of the last iteration of the private kernel circuit. Includes _accumulate | encryptedLogPreimagesLength | Field | Total accumulated length of the encrypted log preimages emitted in all the previous kernel iterations. | | unencryptedLogPreimagesLength | Field | Total accumulated length of the unencrypted log preimages emitted in all the previous kernel iterations. | | newContracts | NewContractData[] | All the new contracts deployed in this transaction. | +| maxBlockNum | Field | Maximum block number (inclusive) for inclusion of this transaction in a block. | **Historic block data** diff --git a/yellow-paper/docs/transactions/validity.md b/yellow-paper/docs/transactions/validity.md index b8f2b4ee3bc..f4121e6faad 100644 --- a/yellow-paper/docs/transactions/validity.md +++ b/yellow-paper/docs/transactions/validity.md @@ -8,6 +8,7 @@ In addition to being well-formed, the transaction object needs to pass the follo - **No double-spends**: No `nullifier` in the transaction `data` should be already present in the nullifier tree. - **No pending private function calls**: The `data` private call stack should be empty. - **Valid historic data**: The tree roots in the historic block data of `data` must match the tree roots of a block in the chain. +- **Maximum block number not exceeded**: The transaction must be included in a block with height no greater than the value specified in `maxBlockNum` within the transaction's `data`. - **Preimages must match commitments in `data`**: The expanded fields in the transaction object should match the commitments (hashes) to them in the public `data`. - The `encryptedLogs` should match the `encryptedLogsHash` and `encryptedLogPreimagesLength` in the transaction `data`. - The `unencryptedLogs` should match the `unencryptedLogsHash` and `unencryptedLogPreimagesLength` in the transaction `data`.