Skip to content

Commit 4a73e3d

Browse files
authored
fix: stale pseudocode in yellow paper process func (AztecProtocol#3869)
1 parent 39330e9 commit 4a73e3d

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

cspell.json

+3
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
"gitrepo",
9090
"grumpkin",
9191
"gtest",
92+
"hackmd",
9293
"hardfork",
9394
"hardlinks",
9495
"hashable",
@@ -205,6 +206,7 @@
205206
"toplevel",
206207
"tparam",
207208
"transferables",
209+
"transitioner",
208210
"trivago",
209211
"tsbuildinfo",
210212
"tsdoc",
@@ -223,6 +225,7 @@
223225
"usecases",
224226
"utxo",
225227
"UTXOS",
228+
"Validium",
226229
"vals",
227230
"viem",
228231
"wasms",

yellow-paper/docs/contracts/index.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ The purpose of the L1 contracts are simple:
1818
When presented with a new [`ProvenBlock`](../rollup-circuits/root_rollup.md) and its proof, an Aztec node can be convinced of its validity if the proof passes and the `Header.last_archive` matches the `archive` of the node (archive here represents a root of [archive tree](../state/archive.md)). The `archive` used as public input is the archive after the new header is inserted (see [root rollup](./../rollup-circuits/root_rollup.md)).
1919

2020
```python
21-
def process(block: ProvenBlock, archive: Fr, proof: Proof):
22-
assert self.archive == header.last_archive
23-
assert proof.verify(header, archive)
24-
assert self.inbox.consume(block.l1_to_l2_msgs)
25-
for tx in block.body.txs:
26-
assert self.outbox.insert(tx.l2_to_l1_msgs)
21+
def process(block: ProvenBlock, proof: Proof):
22+
assert self.archive == block.header.last_archive
23+
assert proof.verify(block.header, block.archive)
24+
assert self.inbox.consume(block.body.l1_to_l2_msgs)
25+
for tx_effect in block.body.tx_effects:
26+
assert self.outbox.insert(tx_effect.l2_to_l1_msgs)
2727

28-
self.archive = archive
28+
self.archive = block.archive
2929
```
3030

3131
While the `ProvenBlock` must be published and available for nodes to build the state of the rollup, we can build the validating light node (the contract) such that as long as the node can be *convinced* that the data is available we can progress the state. This means our light node can be built to only require a subset of the `ProvenBlock` to be published to Ethereum L1 and use a different data availability layer for most of the block body. Namely, we need the cross-chain messages to be published to L1, but the rest of the block body can be published to a different data availability layer.

0 commit comments

Comments
 (0)