diff --git a/l1-contracts/src/core/interfaces/IRollup.sol b/l1-contracts/src/core/interfaces/IRollup.sol index 19f24b72fdb4..6a347b11d8d5 100644 --- a/l1-contracts/src/core/interfaces/IRollup.sol +++ b/l1-contracts/src/core/interfaces/IRollup.sol @@ -27,6 +27,11 @@ struct PublicInputArgs { bytes32 previousArchive; bytes32 endArchive; bytes32 outHash; + // Inbox rolling-hash chain segment consumed across the proven epoch (AZIP-22 Fast Inbox). Deliberately UNVALIDATED + // until the Fast Inbox flip, when they get checked against per-checkpoint records written at propose; for now they + // are only passed through to the proof's public inputs. + bytes32 previousInboxRollingHash; + bytes32 endInboxRollingHash; address proverId; } diff --git a/l1-contracts/src/core/libraries/ConstantsGen.sol b/l1-contracts/src/core/libraries/ConstantsGen.sol index 54d849e5893a..24786f85132e 100644 --- a/l1-contracts/src/core/libraries/ConstantsGen.sol +++ b/l1-contracts/src/core/libraries/ConstantsGen.sol @@ -25,7 +25,7 @@ library Constants { 355_785_372_471_781_095_838_790_036_702_437_931_769_306_153_278_986_832_745_847_530_947_941_691_539; uint256 internal constant FEE_JUICE_ADDRESS = 3; uint256 internal constant BLS12_POINT_COMPRESSED_BYTES = 48; - uint256 internal constant ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 111; + uint256 internal constant ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 113; uint256 internal constant NUM_MSGS_PER_BASE_PARITY = 256; uint256 internal constant NUM_BASE_PARITY_PER_ROOT_PARITY = 4; } diff --git a/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol b/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol index 628a359204bf..cf59ae6b4f31 100644 --- a/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol +++ b/l1-contracts/src/core/libraries/rollup/EpochProofLib.sol @@ -191,6 +191,8 @@ library EpochProofLib { // previous_archive_root: Field, // end_archive_root: Field, // out_hash: Field, + // previous_inbox_rolling_hash: Field, + // end_inbox_rolling_hash: Field, // checkpointHeaderHashes: [Field; Constants.MAX_CHECKPOINTS_PER_EPOCH], // fees: [FeeRecipient; Constants.MAX_CHECKPOINTS_PER_EPOCH], // chain_id: Field, @@ -208,15 +210,21 @@ library EpochProofLib { publicInputs[1] = _args.endArchive; publicInputs[2] = _args.outHash; + + // Inbox rolling-hash chain segment consumed across the epoch (AZIP-22 Fast Inbox). Deliberately UNVALIDATED + // until the Fast Inbox flip, when they get checked against per-checkpoint records written at propose; for now + // they are only passed through to the proof's public inputs. + publicInputs[3] = _args.previousInboxRollingHash; + publicInputs[4] = _args.endInboxRollingHash; } uint256 numCheckpoints = _end - _start + 1; for (uint256 i = 0; i < numCheckpoints; i++) { - publicInputs[3 + i] = STFLib.getHeaderHash(_start + i); + publicInputs[5 + i] = STFLib.getHeaderHash(_start + i); } - uint256 offset = 3 + Constants.MAX_CHECKPOINTS_PER_EPOCH; + uint256 offset = 5 + Constants.MAX_CHECKPOINTS_PER_EPOCH; // Taking recipient/value from the checkpoint headers rather than the prover // as defense in depth. Slots past numCheckpoints stay zero. diff --git a/l1-contracts/src/core/libraries/rollup/ProposedHeaderLib.sol b/l1-contracts/src/core/libraries/rollup/ProposedHeaderLib.sol index d60e1edd6056..5a456dda77bb 100644 --- a/l1-contracts/src/core/libraries/rollup/ProposedHeaderLib.sol +++ b/l1-contracts/src/core/libraries/rollup/ProposedHeaderLib.sol @@ -22,6 +22,7 @@ struct ProposedHeader { bytes32 blockHeadersHash; bytes32 blobsHash; bytes32 inHash; + bytes32 inboxRollingHash; bytes32 outHash; Slot slotNumber; Timestamp timestamp; @@ -56,6 +57,7 @@ library ProposedHeaderLib { _header.blockHeadersHash, _header.blobsHash, _header.inHash, + _header.inboxRollingHash, _header.outHash, _header.slotNumber, Timestamp.unwrap(_header.timestamp).toUint64(), diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 9f578e8cefd7..2456474939b7 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -885,7 +885,12 @@ contract RollupTest is RollupBase { CheckpointLog memory checkpoint = rollup.getCheckpoint(0); PublicInputArgs memory args = PublicInputArgs({ - previousArchive: checkpoint.archive, endArchive: data.archive, outHash: data.header.outHash, proverId: address(0) + previousArchive: checkpoint.archive, + endArchive: data.archive, + outHash: data.header.outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: data.header.inboxRollingHash, + proverId: address(0) }); ProposedHeader[] memory headers = new ProposedHeader[](1); @@ -896,7 +901,7 @@ contract RollupTest is RollupBase { bytes32[] memory publicInputs = rollup.getEpochProofPublicInputs(1, 1, args, headers, data.batchedBlobInputs); assertEq(publicInputs.length, Constants.ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH, "Unexpected public inputs length"); - uint256 feesOffset = 3 + Constants.MAX_CHECKPOINTS_PER_EPOCH; + uint256 feesOffset = 5 + Constants.MAX_CHECKPOINTS_PER_EPOCH; assertEq( publicInputs[feesOffset], bytes32(uint256(uint160(headers[0].coinbase))), "Coinbase not sourced from header" ); @@ -936,7 +941,12 @@ contract RollupTest is RollupBase { address _prover ) internal { PublicInputArgs memory args = PublicInputArgs({ - previousArchive: _prevArchive, endArchive: _archive, outHash: _outHash, proverId: _prover + previousArchive: _prevArchive, + endArchive: _archive, + outHash: _outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, + proverId: _prover }); uint256 size = _end - _start + 1; diff --git a/l1-contracts/test/base/DecoderBase.sol b/l1-contracts/test/base/DecoderBase.sol index 24e74617950d..7abcb375c1aa 100644 --- a/l1-contracts/test/base/DecoderBase.sol +++ b/l1-contracts/test/base/DecoderBase.sol @@ -47,6 +47,7 @@ contract DecoderBase is TestBase { bytes32 feeRecipient; GasFees gasFees; bytes32 inHash; + bytes32 inboxRollingHash; bytes32 lastArchiveRoot; bytes32 outHash; uint256 slotNumber; @@ -104,6 +105,7 @@ contract DecoderBase is TestBase { blockHeadersHash: full.checkpoint.header.blockHeadersHash, blobsHash: full.checkpoint.header.blobsHash, inHash: full.checkpoint.header.inHash, + inboxRollingHash: full.checkpoint.header.inboxRollingHash, outHash: full.checkpoint.header.outHash, slotNumber: Slot.wrap(full.checkpoint.header.slotNumber), timestamp: Timestamp.wrap(full.checkpoint.header.timestamp), diff --git a/l1-contracts/test/base/RollupBase.sol b/l1-contracts/test/base/RollupBase.sol index 78829b61135d..f75b9875d013 100644 --- a/l1-contracts/test/base/RollupBase.sol +++ b/l1-contracts/test/base/RollupBase.sol @@ -78,6 +78,8 @@ contract RollupBase is DecoderBase { previousArchive: parentCheckpointLog.archive, endArchive: endFull.checkpoint.archive, outHash: endFull.checkpoint.header.outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: _prover }); diff --git a/l1-contracts/test/benchmark/happy.t.sol b/l1-contracts/test/benchmark/happy.t.sol index e558b9b6f2f2..f5f0a900b888 100644 --- a/l1-contracts/test/benchmark/happy.t.sol +++ b/l1-contracts/test/benchmark/happy.t.sol @@ -511,6 +511,8 @@ contract BenchmarkRollupTest is FeeModelTestPoints, DecoderBase { previousArchive: rollup.getCheckpoint(start).archive, endArchive: endCheckpoint.archive, outHash: endCheckpoint.outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: address(0) }); diff --git a/l1-contracts/test/compression/PreHeating.t.sol b/l1-contracts/test/compression/PreHeating.t.sol index e3b891e195b2..7cf07a0c9298 100644 --- a/l1-contracts/test/compression/PreHeating.t.sol +++ b/l1-contracts/test/compression/PreHeating.t.sol @@ -263,6 +263,8 @@ contract PreHeatingTest is FeeModelTestPoints, DecoderBase { previousArchive: rollup.getCheckpoint(start).archive, endArchive: endCheckpoint.archive, outHash: endCheckpoint.outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: address(0) }); diff --git a/l1-contracts/test/escape-hatch/integration/EscapeHatchIntegrationBase.sol b/l1-contracts/test/escape-hatch/integration/EscapeHatchIntegrationBase.sol index 61f679d78805..7b2e16301bbb 100644 --- a/l1-contracts/test/escape-hatch/integration/EscapeHatchIntegrationBase.sol +++ b/l1-contracts/test/escape-hatch/integration/EscapeHatchIntegrationBase.sol @@ -142,6 +142,7 @@ abstract contract EscapeHatchIntegrationBase is ValidatorSelectionTestBase { blockHeadersHash: full.checkpoint.header.blockHeadersHash, blobsHash: full.checkpoint.header.blobsHash, inHash: full.checkpoint.header.inHash, + inboxRollingHash: full.checkpoint.header.inboxRollingHash, outHash: full.checkpoint.header.outHash, slotNumber: slotNumber, timestamp: rollup.getTimestampForSlot(slotNumber), @@ -324,6 +325,8 @@ abstract contract EscapeHatchIntegrationBase is ValidatorSelectionTestBase { previousArchive: previousArchive, endArchive: endArchive, outHash: endFull.checkpoint.header.outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: _prover }); diff --git a/l1-contracts/test/escape-hatch/integration/regression/OutHashValidationSkipped.t.sol b/l1-contracts/test/escape-hatch/integration/regression/OutHashValidationSkipped.t.sol index 72b48358d16a..5baa9903924d 100644 --- a/l1-contracts/test/escape-hatch/integration/regression/OutHashValidationSkipped.t.sol +++ b/l1-contracts/test/escape-hatch/integration/regression/OutHashValidationSkipped.t.sol @@ -60,6 +60,8 @@ contract OutHashValidationSkippedTest is EscapeHatchIntegrationBase { previousArchive: rollup.archiveAt(0), endArchive: rollup.archiveAt(1), outHash: wrongOutHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: address(this) }); diff --git a/l1-contracts/test/escape-hatch/integration/submitEpochRootProof.t.sol b/l1-contracts/test/escape-hatch/integration/submitEpochRootProof.t.sol index 4e57aef3f5f6..6e46a60fad48 100644 --- a/l1-contracts/test/escape-hatch/integration/submitEpochRootProof.t.sol +++ b/l1-contracts/test/escape-hatch/integration/submitEpochRootProof.t.sol @@ -112,7 +112,12 @@ contract submitEpochRootProofTest is EscapeHatchIntegrationBase { bytes32 outHash = rollup.getCheckpoint(1).outHash; PublicInputArgs memory args = PublicInputArgs({ - previousArchive: previousArchive, endArchive: endArchive, outHash: outHash, proverId: address(this) + previousArchive: previousArchive, + endArchive: endArchive, + outHash: outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, + proverId: address(this) }); ProposedHeader[] memory headers = new ProposedHeader[](1); diff --git a/l1-contracts/test/fees/FeeRollup.t.sol b/l1-contracts/test/fees/FeeRollup.t.sol index e34b85ed6677..26d858ee7e71 100644 --- a/l1-contracts/test/fees/FeeRollup.t.sol +++ b/l1-contracts/test/fees/FeeRollup.t.sol @@ -236,6 +236,8 @@ contract FeeRollupTest is FeeModelTestPoints, DecoderBase { previousArchive: rollup.getCheckpoint(_start).archive, endArchive: endCheckpoint.archive, outHash: endCheckpoint.outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: address(0) }); diff --git a/l1-contracts/test/fixtures/empty_checkpoint_1.json b/l1-contracts/test/fixtures/empty_checkpoint_1.json index a59c66145db8..1f829f1b819b 100644 --- a/l1-contracts/test/fixtures/empty_checkpoint_1.json +++ b/l1-contracts/test/fixtures/empty_checkpoint_1.json @@ -35,6 +35,7 @@ "blockHeadersHash": "0x2e3e0911389bc48fa8126a93273d016cc7dc08019f8ffc5f1f5ae7d90745eaa2", "blobsHash": "0x00e5b752fe6bc2154155ff3a979c4c5fa91d3ac0d716169ac521e1560fd83b2b", "inHash": "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223", + "inboxRollingHash": "0x00cad6497cf81748167158f149ba70c31f34c68b0ae1b156117de63e073d14b5", "outHash": "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093", "slotNumber": 99, "timestamp": 1776857814, @@ -47,7 +48,7 @@ "totalManaUsed": 0, "accumulatedFees": 0 }, - "headerHash": "0x0069eb49ccf7b0dd2902a19712dd167fd3b5d890df7f0711fdcfe4d2987838ad", + "headerHash": "0x0002fc455005d993521be4e6f8ed92d1e0b50e58b21445881c87d02ed51a1e4c", "numTxs": 0 } -} \ No newline at end of file +} diff --git a/l1-contracts/test/fixtures/empty_checkpoint_2.json b/l1-contracts/test/fixtures/empty_checkpoint_2.json index 52323cc08975..d2dcd961b92f 100644 --- a/l1-contracts/test/fixtures/empty_checkpoint_2.json +++ b/l1-contracts/test/fixtures/empty_checkpoint_2.json @@ -35,6 +35,7 @@ "blockHeadersHash": "0x0b3bda1754ca30707b8c0bbe72760c68e574cf23309e7e4fd7cabea36b4078da", "blobsHash": "0x000e9acabf609c9c113078ecb383ba6310573ce246958b605452132617d2c960", "inHash": "0x006504de282a40084bb8098456a915c645d53482d351db52fa9433b6cd638763", + "inboxRollingHash": "0x0080dbf2bd9576e81fd99fc0f9d35bfd7fc15a6221d0b6e1e92a1884f14d0c84", "outHash": "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093", "slotNumber": 102, "timestamp": 1776858030, @@ -47,7 +48,7 @@ "totalManaUsed": 0, "accumulatedFees": 0 }, - "headerHash": "0x0004d4907090fd10f0c7fa759b7ce89c3b7055385423b585c5f7e959c17290ef", + "headerHash": "0x00120ecaf7a72f61adf3c8ee180acd930401221668a4792a8f91584755840d16", "numTxs": 0 } -} \ No newline at end of file +} diff --git a/l1-contracts/test/fixtures/mixed_checkpoint_1.json b/l1-contracts/test/fixtures/mixed_checkpoint_1.json index 6e47dc89c331..b1604aceb038 100644 --- a/l1-contracts/test/fixtures/mixed_checkpoint_1.json +++ b/l1-contracts/test/fixtures/mixed_checkpoint_1.json @@ -68,6 +68,7 @@ "blockHeadersHash": "0x087b6f59388fa4207876ee1b50521ff838d6eed422d0ad07ff996393f32a77e6", "blobsHash": "0x001bef3ff3f657c565ff86d5072186f7f2bfddb8a31ca0714562c164fe954d84", "inHash": "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223", + "inboxRollingHash": "0x00cad6497cf81748167158f149ba70c31f34c68b0ae1b156117de63e073d14b5", "outHash": "0x00cffdbb0e7f5e164d314d781d38ae31230910a3bae4c34e7df6222df71b1539", "slotNumber": 99, "timestamp": 1776857848, @@ -80,7 +81,7 @@ "totalManaUsed": 0, "accumulatedFees": 0 }, - "headerHash": "0x003ce6d2bb91ea8852841510f5485595dfbddbaa0420e083caf37f182be2140a", + "headerHash": "0x00c1431d117825d25f8169e35eb70ed4b16c0fc4b3cac85506852c240d03740e", "numTxs": 4 } -} \ No newline at end of file +} diff --git a/l1-contracts/test/fixtures/mixed_checkpoint_2.json b/l1-contracts/test/fixtures/mixed_checkpoint_2.json index 577e335441eb..d2125d5786a4 100644 --- a/l1-contracts/test/fixtures/mixed_checkpoint_2.json +++ b/l1-contracts/test/fixtures/mixed_checkpoint_2.json @@ -68,6 +68,7 @@ "blockHeadersHash": "0x144dbe32a03df9ccc672207c93cd22099eb91e44a71e1676148cd3c6c6c98b9e", "blobsHash": "0x008bd0b669b942b57ccf85d3401214db65cde3608afa0b2ae0e57f35ec60d72e", "inHash": "0x006504de282a40084bb8098456a915c645d53482d351db52fa9433b6cd638763", + "inboxRollingHash": "0x0080dbf2bd9576e81fd99fc0f9d35bfd7fc15a6221d0b6e1e92a1884f14d0c84", "outHash": "0x008a85da85a596471f2e5fe402fde332723da8d24b6e7affd60d16c7cb7e9020", "slotNumber": 102, "timestamp": 1776858064, @@ -80,7 +81,7 @@ "totalManaUsed": 0, "accumulatedFees": 0 }, - "headerHash": "0x00eb0f37a51d2df835ea48d6cdde28398df86078d8507d467f34434dac062456", + "headerHash": "0x00ab5faa05cb38faa2cd1fc62c40007f64594c9fdc3bb8b7b478a351a7c7dc5a", "numTxs": 4 } -} \ No newline at end of file +} diff --git a/l1-contracts/test/fixtures/single_tx_checkpoint_1.json b/l1-contracts/test/fixtures/single_tx_checkpoint_1.json index 83aa2756dd96..6d409f05d521 100644 --- a/l1-contracts/test/fixtures/single_tx_checkpoint_1.json +++ b/l1-contracts/test/fixtures/single_tx_checkpoint_1.json @@ -44,6 +44,7 @@ "blockHeadersHash": "0x07db5c24565ad9a2c9d39ef7d9a4446e9742d6090567ff28aef9a45f4738a5cb", "blobsHash": "0x00ec2400a7cfc9d975cb0802980d49387588738160a0cf0301f07e1abad6456c", "inHash": "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223", + "inboxRollingHash": "0x00cad6497cf81748167158f149ba70c31f34c68b0ae1b156117de63e073d14b5", "outHash": "0x007c92c6cf05665e1c02a305370a4d38bcb8b555261c6b39c862f8c067d6bcb7", "slotNumber": 99, "timestamp": 1776857833, @@ -56,7 +57,7 @@ "totalManaUsed": 0, "accumulatedFees": 0 }, - "headerHash": "0x00628120df9716928e25a69ca7b1ac2497f22fdaab439f64315ad4daf7bc5191", + "headerHash": "0x0072a35395a79027db315321cbdaba5bc0b070979c3395b7369ec902ca48d9b2", "numTxs": 1 } -} \ No newline at end of file +} diff --git a/l1-contracts/test/fixtures/single_tx_checkpoint_2.json b/l1-contracts/test/fixtures/single_tx_checkpoint_2.json index b4b8e0a60a51..dc1244dcd73c 100644 --- a/l1-contracts/test/fixtures/single_tx_checkpoint_2.json +++ b/l1-contracts/test/fixtures/single_tx_checkpoint_2.json @@ -44,6 +44,7 @@ "blockHeadersHash": "0x12813725f2d16ce92088d2401ffa4a53ce6061bf75b77320ca7b8ef6c5145adf", "blobsHash": "0x002b8ae4c9f405529e2b689b829852ad52f77acdac57d1dbac3dabea1760affc", "inHash": "0x006504de282a40084bb8098456a915c645d53482d351db52fa9433b6cd638763", + "inboxRollingHash": "0x0080dbf2bd9576e81fd99fc0f9d35bfd7fc15a6221d0b6e1e92a1884f14d0c84", "outHash": "0x0007eac1d76cddf92b28b8f11cd292f199f35dfc588376092986575cef487f59", "slotNumber": 102, "timestamp": 1776858049, @@ -56,7 +57,7 @@ "totalManaUsed": 0, "accumulatedFees": 0 }, - "headerHash": "0x00f2d5075ed8fdbb50bc0171790cb495308b229325c0aa3e1c3fadd5772d11f4", + "headerHash": "0x000b3c0bf27d3123a81b66570e4b63734cb06bbfd260a70fabbbfd41dec13255", "numTxs": 1 } -} \ No newline at end of file +} diff --git a/l1-contracts/test/validator-selection/ValidatorSelection.t.sol b/l1-contracts/test/validator-selection/ValidatorSelection.t.sol index 0062c9b6e58f..722e97dc320a 100644 --- a/l1-contracts/test/validator-selection/ValidatorSelection.t.sol +++ b/l1-contracts/test/validator-selection/ValidatorSelection.t.sol @@ -745,6 +745,8 @@ contract ValidatorSelectionTest is ValidatorSelectionTestBase { previousArchive: parentCheckpointLog.archive, endArchive: endFull.checkpoint.archive, outHash: endFull.checkpoint.header.outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: prover }); diff --git a/l1-contracts/test/validator-selection/tmnt207.t.sol b/l1-contracts/test/validator-selection/tmnt207.t.sol index 89bd948f5541..85a34b8f84a1 100644 --- a/l1-contracts/test/validator-selection/tmnt207.t.sol +++ b/l1-contracts/test/validator-selection/tmnt207.t.sol @@ -230,6 +230,8 @@ contract Tmnt207Test is RollupBase { previousArchive: rollup.getCheckpoint(0).archive, endArchive: rollup.getCheckpoint(1).archive, outHash: rollup.getCheckpoint(1).outHash, + previousInboxRollingHash: 0, + endInboxRollingHash: 0, proverId: address(0) }), headers: headers, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml index ff8e2241fea7..9a4ebcf5a395 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-merge/Prover.toml @@ -484,17 +484,19 @@ proof = [ [inputs.previous_rollups.public_inputs] timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" - block_headers_hash = "0x2d20c84b28eb1c002d4a7c32cbd9d9c82f386c10fa7dcff89fa5b5da3b7a120c" - in_hash = "0x00b0e02949c7c042e780651385688dcec114af3dbb3892bab1a9cd8e2bbafdc5" - out_hash = "0x0018febbd74d861e38064a4ff9d3b5ed7a39b398576ef75e104848700819a700" + block_headers_hash = "0x10ac9968e820ade19245b938b82453a7caaf786b0ba2c68121357b781dfff621" + in_hash = "0x00aa91330eafec1db9b1ca2e1733b213a28bfde0499aca2506acc8c00aae7ba3" + start_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_inbox_rolling_hash = "0x005b0c15d0f641e148adfec120a12eadbf8343e009d350aa593b6d78dbae9568" + out_hash = "0x006bd7618b0cf7b40e3f107022eee2d411bcc5850fbb774dacc46a15957659c4" accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" + accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000006b6c0" [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" @@ -513,7 +515,7 @@ proof = [ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x042887699673b67dcd1637565b3f0211f2a64a713bee2e34990451125850f8fc" + root = "0x26ea10e74f3f1251e702c6bc7436e8e20b01c2d0bfd088af17dccf41fee45fee" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollups.public_inputs.start_state.l1_to_l2_message_tree] @@ -533,20 +535,20 @@ root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.end_state.l1_to_l2_message_tree] -root = "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" +root = "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" [inputs.previous_rollups.public_inputs.end_state.partial.note_hash_tree] -root = "0x24543462563d01f3fa7d2995feb0568f0868807616f9135cbcec47610a688576" +root = "0x01612d24a146efc2df9d815a2f733c17486304424577ffb4232fe4cb0c94e1e7" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000040" [inputs.previous_rollups.public_inputs.end_state.partial.nullifier_tree] -root = "0x0d5183688b388e23b4fe243d466e4d50acaf63d7afa00ca046fe2bf2e83db99d" +root = "0x2d9141720c810b831246b0e50c0ad9d4b935418ba2ae8a06c395bb80340ee684" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000c0" [inputs.previous_rollups.public_inputs.end_state.partial.public_data_tree] -root = "0x27b8cdfd5211a289e0aa40da120fa969649354b3a0084d32d1ba1aca6b16f5b9" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000bf" +root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.start_sponge_blob] num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -567,19 +569,19 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000552" + num_absorbed_fields = "0x00000000000000000000000000000000000000000000000000000000000004d4" [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ - "0x0d5183688b388e23b4fe243d466e4d50acaf63d7afa00ca046fe2bf2e83db99d", - "0x27b8cdfd5211a289e0aa40da120fa969649354b3a0084d32d1ba1aca6b16f5b9", - "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" + "0x2d9141720c810b831246b0e50c0ad9d4b935418ba2ae8a06c395bb80340ee684", + "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9", + "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" ] state = [ - "0x102f5ffd941111f191d3ed6071b93c08a59262ef14b38bc1badca402258f676e", - "0x21a4bcddc5797e8ce65bf754b276b138ac34218b73c2b9895afe1c64d51d270e", - "0x22b90d6d69d0def96f24f21d837e44e96d22de4f9f9b6256751f51f1c0d9a0e1", - "0x2f039f2381c25e4ecbafb49bee642d70df2808854e936b6e6f8cc2e55f117a0e" + "0x1b434bb5b3a33de24db8af6e1a453ff9de5d17cf247d17a949450cf5ba91045a", + "0x06e89b94977453bd3938b31b12b80b39ed67122f6e3d621e86734f09e2d5f7e0", + "0x17ef9c8b88991191060a96fe3105b6ae2b828038117ca7991c03569a06da68b6", + "0x27f43da54bf2009d9d3f9e61d2664319cada964f492307f87e6b8af925190adc" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false @@ -587,11 +589,11 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000b" sibling_path = [ - "0x1276688c1c8f1024c963d35957328b73153c55580532254f0676c26e2ad55993", - "0x1323009262fe069f1f7f62f2cf8e8135b27028b8bdb7fc1b8e99e145deb5a23b", - "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x011456fad1796174e1658f702f07521d4464d00fb76f0ad599352cdf34aec4d1", - "0x0b96ac97088e29b87f5cd854aa1ff5c1b518a7845a3404916b468d5730444fd0", + "0x0fb3f40087730491971e9bb0cf3fe43bd4dbc71b92554ec8cb9d95a5ff2bd73f", + "0x2bcbfd2ace3467d92572d8c6f115a6f14527c97c7a0e1a08d20ca37c956dc021", + "0x057ed09233daee54f5a1b9d9f82dc961a51d4a298c62d3d0967edac6857ee043", + "0x2d425e446b233c409ab688f27e6a8d41e20b06b8b769f68be61d032ba6cba44a", + "0x2ee9953b5b298d73efa51c84799edd8c318088ed161eb0404afbec8d88e5cf1a", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -599,96 +601,96 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000015", - "0x0000000000000000000000000000000000000000000000000000000000000046", + "0x0000000000000000000000000000000000000000000000000000000000000048", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x000000000000000000000000000000ea6e74a6fa43b4810edc310e2d2b66dab4", - "0x000000000000000000000000000000000015c12f6f69bff32654e403b8e9a2b8", - "0x00000000000000000000000000000010f1d77dfb1e9178bab79124490d92915a", - "0x00000000000000000000000000000000000a9b89b1676b31989664a34260314d", - "0x000000000000000000000000000000a2d8941fda778834590a006f995557ff4c", - "0x00000000000000000000000000000000002dadd9e8063bfbee06194004949394", - "0x0000000000000000000000000000002036fe67ff22643d06461e1c8edcbc2dc9", - "0x000000000000000000000000000000000021c85b69f65f83d6cf1854a9563213", - "0x000000000000000000000000000000b19756d6156d0300b3ecb9be77605be1a8", - "0x0000000000000000000000000000000000014a4064a3b551e9b75fa13659629b", - "0x0000000000000000000000000000003491c66acf5693a16ec1f7241609c18f45", - "0x000000000000000000000000000000000023b0ed5030538c865d72cb8908352a", - "0x000000000000000000000000000000efedf593c1cfc28146ff68d9dcb1070ca7", - "0x00000000000000000000000000000000002a8174a5153b946abe57e2ed06d454", - "0x0000000000000000000000000000009c3212d084550b683558797af1477ceb8f", - "0x00000000000000000000000000000000002c32c65b02e59d9aae5b8a57ec27e4", - "0x0000000000000000000000000000007b88e113308893f906561837b9edc3baa5", - "0x00000000000000000000000000000000001a45b642b5e649f033eca82a810b8b", - "0x00000000000000000000000000000068591e612a0127878f63e7923f17854d2a", - "0x00000000000000000000000000000000001d50690ef0dd775e7f4fc0f17281bf", - "0x000000000000000000000000000000eece658386d09783fcc2d61a622eb6b121", - "0x00000000000000000000000000000000001d5b3af11c73d93414e18accc31071", - "0x0000000000000000000000000000007b1ee7fea7dfabee7dad1a5e3e816c2a2e", - "0x00000000000000000000000000000000000a5f02160bfa014a46b329f3618dc8", + "0x0000000000000000000000000000003043e9812950f120a6e6c285da82917bfe", + "0x00000000000000000000000000000000001a2573ea6bb1fb0ee00987539e0444", + "0x00000000000000000000000000000016538d82fdcd2ba79be545255aabb50621", + "0x0000000000000000000000000000000000285e6254f9f545a01eff2bdb01c422", + "0x0000000000000000000000000000006298932956b11ed805a75384e553d13617", + "0x0000000000000000000000000000000000104062d211ff01bcdabb1566b88c99", + "0x0000000000000000000000000000009691dfafdbc0ed197053d49539c6c49c19", + "0x00000000000000000000000000000000002f95646688c2a3c93047439e60ddb8", + "0x0000000000000000000000000000009ad01a9d7df12464c8df8304e6c1fa3990", + "0x00000000000000000000000000000000002499b30c5ea13f559ca12b8ade4cc1", + "0x000000000000000000000000000000ecadb56fd9844d345e12cf54abcdafdffc", + "0x00000000000000000000000000000000002f97df3064817395376ce5e4acd6b9", + "0x000000000000000000000000000000a324ac19256fbb906f40fc0277af285dbc", + "0x000000000000000000000000000000000024195cb171463a59cd4acbb0db3b3d", + "0x00000000000000000000000000000018e8920103c5479867d5f4b2519f03094f", + "0x000000000000000000000000000000000003831cd2f7021de135fcef580a7ea3", + "0x0000000000000000000000000000008aada8c264a40ddaa9470f04a1869f6c8e", + "0x00000000000000000000000000000000001e7963edb7096f4140f4a445fa27b8", + "0x0000000000000000000000000000000417c595c0ad040616092969d6a1b7f2f6", + "0x00000000000000000000000000000000001a640575ac9692f6bd724a7b2ad507", + "0x0000000000000000000000000000005b0870efa7c3bda6b2a9bc55c0a68cfbbd", + "0x0000000000000000000000000000000000261c7510aea015caf6785993e41607", + "0x0000000000000000000000000000001bb6b459401f6b22cd5e6664e5b78ab37d", + "0x00000000000000000000000000000000002571728f48ec7aeacca081a8f6346e", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000043bda12a99877a984942e29d821cd37870", - "0x000000000000000000000000000000000020b1906b429f07ca51070221399472", - "0x000000000000000000000000000000c185af02499653794e9d4c7fa1a6c5751c", - "0x00000000000000000000000000000000002927f8b050e657021afb2f572e0f84", - "0x000000000000000000000000000000ceda688bdd2aea1e5253ea0d86743abebd", - "0x00000000000000000000000000000000000072f93e3607e4ac8c369fb92fe33a", - "0x000000000000000000000000000000eaff91f9cc05f03c6d8546358d580ef17a", - "0x0000000000000000000000000000000000225d5df5771e53084f6e364ad8e3da", + "0x000000000000000000000000000000911efacfe6b2a6cc3516463c92b243b54c", + "0x00000000000000000000000000000000001186d041d6e35bf2322be030b36450", + "0x0000000000000000000000000000001e45c99eb6c030c541fffb1a3e7f21e953", + "0x000000000000000000000000000000000004bbb2ed010bfac77e84e0b712cc6d", + "0x000000000000000000000000000000caf2d1bcc34be6a357cedc9af6c9d118d8", + "0x00000000000000000000000000000000002c40af59bb27805be8410a03db8047", + "0x00000000000000000000000000000003b9c5da3687beac0d2cc6d22a4af6aeb0", + "0x00000000000000000000000000000000002848d34b3ce12e2b8e2a989c7381e8", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000002218617f23e467fecd2e3c938179a2b578", - "0x00000000000000000000000000000000002497b7dd7eec4e260f8ca521f1109e", - "0x000000000000000000000000000000914e208f9621734ce56985cdd29d01a78b", - "0x00000000000000000000000000000000001092e497a21b124b279b86e029a993", - "0x0000000000000000000000000000002ef4ddf310bee1f74f655cbb0ceb9315d0", - "0x0000000000000000000000000000000000270b81bec5e6b0f455065b02f68a0f", - "0x000000000000000000000000000000ef21188ec62b59040e4f1b89dfa23be48e", - "0x000000000000000000000000000000000009ced6e0108e8e67b299d9e3bad9a9", - "0x000000000000000000000000000000f61d5b8425740d0df669b875491e615449", - "0x0000000000000000000000000000000000064a6a9bbcefc6ad4b2d4e1e03985f", - "0x000000000000000000000000000000d004ad7846785bcb0db2672f6e5292f7c2", - "0x00000000000000000000000000000000002114c1fc4a3c39cbc96baf3ba693af", - "0x0000000000000000000000000000005cc5465cd9391ce8e7799e91bf9aac8039", - "0x00000000000000000000000000000000001c59b40d18b5d06d88617f2ed5c568", - "0x0000000000000000000000000000008134581657d125ca542477d684313ad999", - "0x0000000000000000000000000000000000259435f2950ead4bad62f0635944d8", - "0x0000000000000000000000000000008e3beb4333afb6a1db12c0889130b8f7f7", - "0x00000000000000000000000000000000002d022d695e566dd0ddfd15b59ad6f6", - "0x00000000000000000000000000000019ac6e38521a0144c3d1abe706030d643e", - "0x00000000000000000000000000000000000961e2643f9317a4d6144abb77cae4", - "0x000000000000000000000000000000827e5482f658cec2661f8cf88c4558800d", - "0x00000000000000000000000000000000002bcc1992b1410cdd05f32c2148a800", - "0x000000000000000000000000000000049c1604c9e61fe1eb1a4e6c0044a88607", - "0x00000000000000000000000000000000001a50aafae1419fae00770a64d75a52", - "0x0000000000000000000000000000003a404091304c1a4935267fb66a90af706f", - "0x0000000000000000000000000000000000175f69e34efe02635c0450ff14d814", - "0x00000000000000000000000000000056a7488e33d23f5a7e31e8c24c4d32feb9", - "0x0000000000000000000000000000000000152b125831f20c0046084a92a3a01d", - "0x0000000000000000000000000000001bd75185387ebcf04a2d1541b418c93962", - "0x000000000000000000000000000000000007d44e382095a4ddb6c84d676f975b", - "0x000000000000000000000000000000e37e00ccdd16f0cfb118365311a964e475", - "0x00000000000000000000000000000000001c3ba17a670cdeca7019e1d2c17e93", - "0x000000000000000000000000000000ef2f893fc357863e53675b8dfdace77275", - "0x000000000000000000000000000000000013a4df076b371985ff93656b8e4483", - "0x0000000000000000000000000000007adddc444f0c602af7efaa9c977e9ab80f", - "0x0000000000000000000000000000000000138e76ae51938924778a06f02de461", - "0x000000000000000000000000000000f63ec082d951768fe05e6d3bc9d50bc72d", - "0x00000000000000000000000000000000002ac3a11527579ccbe6c1966976f6ad", - "0x00000000000000000000000000000066d0ea63d8dd4511ec55e666f7bf6d6c3d", - "0x00000000000000000000000000000000001fe7a9cb68d795240eaec0b6efe451", - "0x0000000000000000000000000000005309c6e2db27d4be273a758a178e1af682", - "0x00000000000000000000000000000000000962316a08cadc097d50603d1606c4", - "0x000000000000000000000000000000ab5c17e93d31a1c79c62d8597447920f36", - "0x000000000000000000000000000000000019ede1992f131cdd105f8afcde56a5", - "0x000000000000000000000000000000b03aa7f0563671be6a98678d8dac3ed963", - "0x00000000000000000000000000000000002c9acda51c7b3e6e04e82aaf0bbe35", - "0x000000000000000000000000000000b7eceb60b962a8108199e7506d967bf042", - "0x00000000000000000000000000000000000ab8ec69e3b26d13207351e2be7d7d", + "0x00000000000000000000000000000048126fe93ac2dc85e87cf14eafff30573b", + "0x0000000000000000000000000000000000217e0baed10b7d67ac79954201a03e", + "0x000000000000000000000000000000cfb137a03c7778ebc9c51f28006ebc9470", + "0x0000000000000000000000000000000000006068c0d40f8b57e70f9f36d412e5", + "0x00000000000000000000000000000051e5e701d2d73acdd32570a19c73fe982c", + "0x00000000000000000000000000000000002e27f173d18f1b0c64e98510e25f94", + "0x00000000000000000000000000000055cd1346a4b1815c27068bba883652efb9", + "0x000000000000000000000000000000000015d4e00399c7ab654e0f3662255571", + "0x0000000000000000000000000000004999476dd687ee949dfc1d7c184a1cc821", + "0x00000000000000000000000000000000001b9e4276ae9f74448fbc69a6866ac8", + "0x000000000000000000000000000000abf6f786d247b993de06af16f2cbf5555f", + "0x0000000000000000000000000000000000011aa9cef19e7a59ad5f93f7952a5e", + "0x000000000000000000000000000000057076dd8dd4ebdf309552c3a503a98bfa", + "0x0000000000000000000000000000000000215b957f54434e8c82a88347d7daca", + "0x00000000000000000000000000000089b3eb81591a2f7c622c52bfec39b3d7fa", + "0x00000000000000000000000000000000002fe174a75055d56cd80ea11d5c4702", + "0x0000000000000000000000000000002d748a5af296ba2686b7b6fc62ddba6ec0", + "0x00000000000000000000000000000000002afdc48610541670c315f099971b8e", + "0x00000000000000000000000000000090b89fc5bc8323e7b2852b14bf3a8f973b", + "0x000000000000000000000000000000000024aeceed892d5c4be14248fd2d1de6", + "0x000000000000000000000000000000ee445feee316bf2ee3cb732818fd04e29a", + "0x0000000000000000000000000000000000286ec3fb5265743bf1535e00806d9f", + "0x00000000000000000000000000000060c63ce66c106a20aee0c0b0953a65cdf7", + "0x00000000000000000000000000000000002f3b0451d824d0095c1dba98e17020", + "0x000000000000000000000000000000cc74ef39905486269cd551e760012f9d20", + "0x000000000000000000000000000000000011f859e390af456cc9875f9a130b61", + "0x0000000000000000000000000000009098ec5242bcf88fc784d286cf2c276b08", + "0x000000000000000000000000000000000014a2621a7d90a4b83c1f55173a9c4e", + "0x0000000000000000000000000000001fc6a7d0c56898670355913f390f5f87d4", + "0x000000000000000000000000000000000028566edf32e9860b8231e3ca4cc98e", + "0x0000000000000000000000000000007cfe714292eb2f79fc9f239462fa67e98d", + "0x00000000000000000000000000000000001f5362645fe464e276beadd85c12b5", + "0x000000000000000000000000000000f4ac795b86e16f3da5b3fe7c29a0c99d17", + "0x0000000000000000000000000000000000252a2b12fa36a0bbbada38ac0e236d", + "0x00000000000000000000000000000006763c3179a715ecd3a040dc8c6cc90c2b", + "0x000000000000000000000000000000000004a18e48736056571627d0521fa751", + "0x0000000000000000000000000000002593d541824718cb345ca3046fe25658bb", + "0x00000000000000000000000000000000001bf11159b5459f84e7cee477aa330c", + "0x000000000000000000000000000000ca11db3bab4377f94a9673568029afb7a5", + "0x00000000000000000000000000000000001122aad712c59eb5ebb4a05876e102", + "0x0000000000000000000000000000005b3e971dc4d30556167b3bd8a2c428cc9b", + "0x0000000000000000000000000000000000062caf8b868574e5375adeafb40f66", + "0x0000000000000000000000000000007888b3daf77bad6418aab3ec7880840287", + "0x0000000000000000000000000000000000168e659d7911524ac3be5886f16bcd", + "0x000000000000000000000000000000d3f5902478448e69fc197d86cc786872a5", + "0x0000000000000000000000000000000000239334e7c06314734f56bc739b65b9", + "0x000000000000000000000000000000fe402a65f7911021b2fd8ccd01988cf1e9", + "0x000000000000000000000000000000000012b538b37bcfd5fab10163ac52e353", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -709,12 +711,12 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000ab626198b0ffe754ee7a00134867d6524b", - "0x0000000000000000000000000000000000016d89d36083b0f55dba4523be0aff", - "0x00000000000000000000000000000081d7c7a641b523d79569cb352fd7652081", - "0x000000000000000000000000000000000023fdf5ec3df2b078ebe39feac15b55" + "0x000000000000000000000000000000a3840380da0eb33e22aee58928e7f257b0", + "0x000000000000000000000000000000000009743ced63f280b962a6a77b318111", + "0x000000000000000000000000000000819f669dd8f6ac4a99657d338ee490e4f7", + "0x000000000000000000000000000000000000b8728a1d214782fa603071a6d60a" ] - hash = "0x1cd81d6249bfece0299cdfaff8344081684997c787276db4fb5cdb25a0d6822d" + hash = "0x14526565e309d912b3fa74d28e4f9166b6c89eb950bce5ee2f25f2db47e753dd" [[inputs.previous_rollups]] proof = [ @@ -1202,8 +1204,10 @@ proof = [ [inputs.previous_rollups.public_inputs] timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" - block_headers_hash = "0x017a8fa57ea20218720c82151fb04f9d1ef0c355b9303db711a3e7759cde125c" + block_headers_hash = "0x22a6ac5a2bf77cc476041d1430abc7168dd93bbda7c4ecf605dd9c30f3986802" in_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + start_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" out_hash = "0x00abb50b8989a7f19fd4526d43e15a1ab5d2a43af413cc8ca91e82a3c8828625" accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1211,8 +1215,8 @@ proof = [ [inputs.previous_rollups.public_inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" @@ -1227,77 +1231,77 @@ proof = [ fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x042887699673b67dcd1637565b3f0211f2a64a713bee2e34990451125850f8fc" + root = "0x26ea10e74f3f1251e702c6bc7436e8e20b01c2d0bfd088af17dccf41fee45fee" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x2cbba27d037d916f06741116db5eb8fd1ddf4baec698dc5b875b359dfd3a193d" + root = "0x1ed3c58c164083b6019c39260232f19131a613a6b5ff4146de6db15827acb126" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" [inputs.previous_rollups.public_inputs.start_state.l1_to_l2_message_tree] -root = "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" +root = "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" [inputs.previous_rollups.public_inputs.start_state.partial.note_hash_tree] -root = "0x24543462563d01f3fa7d2995feb0568f0868807616f9135cbcec47610a688576" +root = "0x01612d24a146efc2df9d815a2f733c17486304424577ffb4232fe4cb0c94e1e7" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000040" [inputs.previous_rollups.public_inputs.start_state.partial.nullifier_tree] -root = "0x0d5183688b388e23b4fe243d466e4d50acaf63d7afa00ca046fe2bf2e83db99d" +root = "0x2d9141720c810b831246b0e50c0ad9d4b935418ba2ae8a06c395bb80340ee684" next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000c0" [inputs.previous_rollups.public_inputs.start_state.partial.public_data_tree] -root = "0x27b8cdfd5211a289e0aa40da120fa969649354b3a0084d32d1ba1aca6b16f5b9" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000bf" +root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.end_state.l1_to_l2_message_tree] -root = "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" +root = "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" [inputs.previous_rollups.public_inputs.end_state.partial.note_hash_tree] -root = "0x092658df33d4badeaa54da3bee987ed4b7a973d285a96229bbd71c564cad7449" +root = "0x2326bf220c6839c1856478f0c082f0c5883b2baed0bc222a1fa5e1244184c82b" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.end_state.partial.nullifier_tree] -root = "0x2fd0dfe2f0d0f4977a6c6d880237e4462686a8caf9e3eacf34b6a5159feac6f8" +root = "0x1e1c597744057b88e39a9780ed087c39b1fc42864e05ef03a59ebd9e96b70b00" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000100" [inputs.previous_rollups.public_inputs.end_state.partial.public_data_tree] -root = "0x1e18fe9a8c877ed096fe353567b6aef5b3dd4bbd987fec03c759c7cde4b3be5f" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000fe" +root = "0x2306af8b455a9cbf87331182183be8c0759fd5e1a4f606cea8a9e24efa461759" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000bf" [inputs.previous_rollups.public_inputs.start_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000552" + num_absorbed_fields = "0x00000000000000000000000000000000000000000000000000000000000004d4" [inputs.previous_rollups.public_inputs.start_sponge_blob.sponge] cache = [ - "0x0d5183688b388e23b4fe243d466e4d50acaf63d7afa00ca046fe2bf2e83db99d", - "0x27b8cdfd5211a289e0aa40da120fa969649354b3a0084d32d1ba1aca6b16f5b9", - "0x2077efe63b8c3de3bfdbc1e1be837185a8f1d817c8321418fcfe110cd518a922" + "0x2d9141720c810b831246b0e50c0ad9d4b935418ba2ae8a06c395bb80340ee684", + "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9", + "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" ] state = [ - "0x102f5ffd941111f191d3ed6071b93c08a59262ef14b38bc1badca402258f676e", - "0x21a4bcddc5797e8ce65bf754b276b138ac34218b73c2b9895afe1c64d51d270e", - "0x22b90d6d69d0def96f24f21d837e44e96d22de4f9f9b6256751f51f1c0d9a0e1", - "0x2f039f2381c25e4ecbafb49bee642d70df2808854e936b6e6f8cc2e55f117a0e" + "0x1b434bb5b3a33de24db8af6e1a453ff9de5d17cf247d17a949450cf5ba91045a", + "0x06e89b94977453bd3938b31b12b80b39ed67122f6e3d621e86734f09e2d5f7e0", + "0x17ef9c8b88991191060a96fe3105b6ae2b828038117ca7991c03569a06da68b6", + "0x27f43da54bf2009d9d3f9e61d2664319cada964f492307f87e6b8af925190adc" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000aa3" + num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000a25" [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ - "0x2fd0dfe2f0d0f4977a6c6d880237e4462686a8caf9e3eacf34b6a5159feac6f8", - "0x1e18fe9a8c877ed096fe353567b6aef5b3dd4bbd987fec03c759c7cde4b3be5f", - "0x092658df33d4badeaa54da3bee987ed4b7a973d285a96229bbd71c564cad7449" + "0x1e1c597744057b88e39a9780ed087c39b1fc42864e05ef03a59ebd9e96b70b00", + "0x2306af8b455a9cbf87331182183be8c0759fd5e1a4f606cea8a9e24efa461759", + "0x2326bf220c6839c1856478f0c082f0c5883b2baed0bc222a1fa5e1244184c82b" ] state = [ - "0x2c37510dc62566fd82a384d246dde3758364a4d2fe832e7f74b2694d3801c57c", - "0x0196b568131127a94a89ca69ebe09fba3653164329a5aeaf3e49fa9a4e2a2be9", - "0x157f91a83834e6394c2327aa6830703d4e5bd808095dbe7e60c1f6a9f9550bd3", - "0x0c688ed39ff9ad58247a36c811494fc5f8ed009c455609b0083f4148b2ce8811" + "0x197466e5a1e1b2d5de465a616d8768588441011097057b052fe809e80b0492bf", + "0x23ad7093f1dc6e10f5c59abb6e9df1edc82248af4f061ef4b27efe7e2113e13e", + "0x0e4b59354cefa0a3a23c35b8d3941f80d8e9b150f68495afb83235cb6a74c298", + "0x29828b2b388e3a99660b942b34caf6b88f1217f99479c21d632a2df9f3c4a684" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false @@ -1305,11 +1309,11 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data] leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000e" sibling_path = [ - "0x2781192850bee4946aa72958703bc69fec3ab04ecffc00c34abcb81befd3c88f", - "0x2a4b8973bfb7d252bd970f41d74702d12b8bc7f63b15188bc79d78bda4a9413d", - "0x09459c17095a4c49142bfb5d7383b902eef2b72152f1b0fcd6096749b0eb0026", - "0x011456fad1796174e1658f702f07521d4464d00fb76f0ad599352cdf34aec4d1", - "0x0b96ac97088e29b87f5cd854aa1ff5c1b518a7845a3404916b468d5730444fd0", + "0x126637a6f782ba5ac067ca07dbac2fbaf21900317bd41df66447e2fb0d7739ca", + "0x21843e41341bb83b7a0fb2f1424f8def8b5305f9fb769f7debbe14d9fcbd37fa", + "0x0d18c69d7eac0b0f133dace948a38713d204853da538b40cbb13e304dc7deeb5", + "0x2d425e446b233c409ab688f27e6a8d41e20b06b8b769f68be61d032ba6cba44a", + "0x2ee9953b5b298d73efa51c84799edd8c318088ed161eb0404afbec8d88e5cf1a", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -1317,96 +1321,96 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000014", - "0x0000000000000000000000000000000000000000000000000000000000000046", + "0x0000000000000000000000000000000000000000000000000000000000000048", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x000000000000000000000000000000161e5bb10fa2b7c7380009239b649b4734", - "0x00000000000000000000000000000000000badbf533a087faffe865010dc5b37", - "0x000000000000000000000000000000381bfa95df551e67c494b29f07bfc5149c", - "0x00000000000000000000000000000000001bf4738c48442b6d952222d821547f", - "0x000000000000000000000000000000cdf67a2562ab96b4917ea73217efafd3b3", - "0x00000000000000000000000000000000001b0666d4bc44552a2ffc0223345a23", - "0x00000000000000000000000000000052e280645ffe873ef1e2cce244d3b23265", - "0x000000000000000000000000000000000029365e95dc11f595f23b37d9c475db", - "0x000000000000000000000000000000e0546cf49094bcd8d9e4a0e2f0b0d21d73", - "0x00000000000000000000000000000000001dd314bca6a6ded1a4a64266a516ce", - "0x000000000000000000000000000000c529043942840056e63f2fcffad4221afd", - "0x000000000000000000000000000000000011c2731f6fe0cb9f3c7d88d710950d", - "0x0000000000000000000000000000000dccca0374b5478a2414205ee24ca83668", - "0x000000000000000000000000000000000007e95f7cd90c21519b280c7c007fcc", - "0x00000000000000000000000000000004de3a9f180f0a4f01dab186eba8530269", - "0x00000000000000000000000000000000001372faf74b763ba502d7cc0845a54c", - "0x0000000000000000000000000000008aa4681b00633c2a5a63702641a6d36041", - "0x00000000000000000000000000000000002dc7f4ccd6922fc4b6654e175f2a80", - "0x000000000000000000000000000000d0d4f6ecbd8ee863fa3160211931061e33", - "0x0000000000000000000000000000000000263cb61cd13a131bdb313fa1159c3c", - "0x000000000000000000000000000000739ca3af1ec76a87a037f25bca5447ee69", - "0x0000000000000000000000000000000000065132cc73a764a9958eaf16937aac", - "0x0000000000000000000000000000004f397550e79074d0c4d3108fe675be5a4e", - "0x000000000000000000000000000000000012a58f58ab7bd421ca8f0fdf7990ed", + "0x0000000000000000000000000000001d50749a3b77b36861972442eab2806ec5", + "0x00000000000000000000000000000000001ff0de964eb7adb807097d09a67f94", + "0x000000000000000000000000000000a2c0955ec926e180220859426e8718ff64", + "0x00000000000000000000000000000000002656e361ff7f72dcbd0ab0a5d99747", + "0x00000000000000000000000000000050678432afaf4d736a212650e4a5662bb3", + "0x000000000000000000000000000000000026f7bb463e1a96f781e53caba93b27", + "0x00000000000000000000000000000007a710a7934796dcd9eb03e82312c01236", + "0x000000000000000000000000000000000022f6d7308e7ba9ce730bf387308710", + "0x000000000000000000000000000000aa49e82a0e592cd429f5cbc575d2b973f3", + "0x00000000000000000000000000000000000bf8ef1863000c55fda50e5a303ebf", + "0x000000000000000000000000000000088cbe7d346cbd7a98f9d8d5b422a57486", + "0x00000000000000000000000000000000002a03850d1a2cd7064c873f91ad3d2d", + "0x000000000000000000000000000000e20c0e645c614f058e2c9555fa298fc64d", + "0x00000000000000000000000000000000001a3f93f9c75cb0a0647dee8bbd1d45", + "0x0000000000000000000000000000009f23cb33f7552f3f47d4a4b1fe774c73c4", + "0x000000000000000000000000000000000004f1055175910d0e8fa043e46fb72d", + "0x0000000000000000000000000000000c3cda0d9bc4605a5f1e1a914bded1fea2", + "0x000000000000000000000000000000000027f42f2a98712e2929c63dad7b16f2", + "0x0000000000000000000000000000000fe51b33a0826e317b6270fb9655d20b80", + "0x00000000000000000000000000000000001205669c1b6c1d1e6ed427962e0578", + "0x00000000000000000000000000000080b4048982fd6f3b8cf09cd3ed4b9884fe", + "0x000000000000000000000000000000000026acde57f1487904f9e0e11621e6e5", + "0x0000000000000000000000000000002216a25dbc8c2426f77d66edba8154baeb", + "0x0000000000000000000000000000000000000b815ac0d509f5558d7e315e3508", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000dbe8bffec86d9a9c4e194450aafe44569a", - "0x00000000000000000000000000000000001ad711549791cb4bfb26753da71976", - "0x000000000000000000000000000000eef413cdd499365c5aff81234c29a8e9c8", - "0x00000000000000000000000000000000001c1a2f7052492deb0bf3831f1d659f", - "0x000000000000000000000000000000a430987c325c792662db95707eeb73bcda", - "0x00000000000000000000000000000000001fc6620d5b4b91a2bb7e967e4ca0a0", - "0x000000000000000000000000000000d3010833f9a0a6df8b842d2e94c7443271", - "0x00000000000000000000000000000000002b34c8b03764d6438d76005e33f136", + "0x000000000000000000000000000000e232078405baa86c0f3d51eaeaf948c748", + "0x00000000000000000000000000000000001827bf55a520fedbce1d029f95793a", + "0x000000000000000000000000000000159c1c41c0f36d6708ee303457391304d5", + "0x00000000000000000000000000000000000d14f74bae219260629e6bda1380aa", + "0x00000000000000000000000000000007d46a20b0e5466edaa35b8ce887b1acaf", + "0x0000000000000000000000000000000000168b55095a332f18c3f29a2efef98b", + "0x00000000000000000000000000000007f1fe12e35298ac0ea96c48b433de7741", + "0x000000000000000000000000000000000020253ea92b24ed3d0e891abef5c1f8", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000090eb905a6ce8fdcfb3ad69b20f37b471a0", - "0x000000000000000000000000000000000015411f1068f3c41c0f03f763abc15a", - "0x000000000000000000000000000000afca164bedcee548eecb0590ec5abf1127", - "0x0000000000000000000000000000000000145ea9d00e643079977aa78cd2c109", - "0x000000000000000000000000000000854f1c53b1fafeaae64bc08161c77048b7", - "0x00000000000000000000000000000000001e235518c5c034960eec5fc45a716e", - "0x00000000000000000000000000000035145365e610d44ef42fa8ea613a9df4aa", - "0x00000000000000000000000000000000000f949d81fe0404cba9da3dbe012bd7", - "0x000000000000000000000000000000c5f55c78208dcda151683ee8cf95e8bc47", - "0x000000000000000000000000000000000012b17b8f64a8606a7817da004b71c1", - "0x0000000000000000000000000000007359e5ac4a48e1c4cf0e5665c6c059d99b", - "0x00000000000000000000000000000000001d7a0474a2bb254bf932f10146b961", - "0x00000000000000000000000000000024e0b7c596516bb0b5a2e8d6cb248b56a2", - "0x000000000000000000000000000000000012e9c9b3e8143abd574124134a05c8", - "0x000000000000000000000000000000dbc92535cff5ca03ba09ca111642d39fda", - "0x00000000000000000000000000000000002043571f43cad61de3a5e4328a4aee", - "0x00000000000000000000000000000079d599186f46e769fcc207b0cd6cbdc01e", - "0x00000000000000000000000000000000000c5c2f9466df09ea80f0ec14870034", - "0x0000000000000000000000000000005f94f587b12643ff51063a28353833f770", - "0x00000000000000000000000000000000000cf56aa28ed4b4beb7ff157d7da3ef", - "0x000000000000000000000000000000de4b43f87ff9317c8e9d9c4588fc2eef2d", - "0x000000000000000000000000000000000012d0aa842859d2ee838f5510f9bc22", - "0x0000000000000000000000000000006f2fdb4213da0129f8365bc86a01f6164d", - "0x00000000000000000000000000000000000bdc73bc5280a4afc7e65947531e51", - "0x000000000000000000000000000000f14874ba0df22c460d8352ca030bd9a861", - "0x00000000000000000000000000000000000885382903e5ffbd837b5e0e4bbf06", - "0x00000000000000000000000000000066e80b7e34ebe3899a4d07dea4f62cc7df", - "0x000000000000000000000000000000000013f829d0878ad53de418679f370067", - "0x0000000000000000000000000000002980ae9f85fad098e5a76ca9e6bdac5779", - "0x00000000000000000000000000000000001a774ae589e96cfbefb418dddcdaa2", - "0x000000000000000000000000000000327c44b0ed90d01976c32c94f04ef2cea8", - "0x0000000000000000000000000000000000225d757cb4f2bfbf6d13b8114d7b16", - "0x000000000000000000000000000000bdc629840f4a9d071f9fb1384008254135", - "0x000000000000000000000000000000000004e75cee70f3e11a2402faef92a73b", - "0x000000000000000000000000000000f40c508a906897027558980610fc4df4f2", - "0x00000000000000000000000000000000001f959d41e40d111d021ab23b4ef843", - "0x000000000000000000000000000000587fcafd86184e71ec3d650b3ba85f03fa", - "0x00000000000000000000000000000000000610c97af06081281e7404f44aee4b", - "0x0000000000000000000000000000007b029cc296434696323f9c37b5e4c9cf55", - "0x00000000000000000000000000000000000614733fbf8d375012614cce5e4aa0", - "0x000000000000000000000000000000bc102f5fba012ade36bbf671474a9afae2", - "0x00000000000000000000000000000000000d2b78d31298fc946624e482d61850", - "0x000000000000000000000000000000c1c26c3fbdd4fb7de13c6af78b90063442", - "0x00000000000000000000000000000000002da9dd34c453f3d5a99691ba052769", - "0x000000000000000000000000000000a788520d601038b7bcb1ef241547ddc5e1", - "0x00000000000000000000000000000000002a280445997573df993f3eaa9cc9bd", - "0x000000000000000000000000000000ec4d9274437dc457e7da9ee9f5d57b0825", - "0x000000000000000000000000000000000029454eff7f180c04c3dccd1d762531", + "0x000000000000000000000000000000bc9e91f3f4e958fb2b9428cfac49b76336", + "0x000000000000000000000000000000000026ef3293ac3e11d5930cefacf6ed4d", + "0x00000000000000000000000000000094ea9e8c87948082e9790738a74b69f936", + "0x00000000000000000000000000000000002197b3b4be53530d2394b62e9dc59f", + "0x000000000000000000000000000000dbb299e8e210c35cb68d98dbd66cc38e53", + "0x000000000000000000000000000000000021c3f88ceae8526dcdcf7e75877d40", + "0x000000000000000000000000000000b1c38655854104fbf3e3bd298c578e9d20", + "0x000000000000000000000000000000000026eabfcb4431c62bcf2d4cc7d23aa0", + "0x0000000000000000000000000000003c334425184d238d6752337a180929cc5a", + "0x000000000000000000000000000000000005fcc2749fd694a0f9a15d945892e9", + "0x0000000000000000000000000000008781bbc2bd771f69b20e719d9d05eca3db", + "0x0000000000000000000000000000000000232a32430d339681677cf6132d7b50", + "0x000000000000000000000000000000df53360a9c3095d0c88cd1e295af7b22ac", + "0x000000000000000000000000000000000010946835a0dd7cf07091c69b5e6826", + "0x000000000000000000000000000000fa4a5e76e55414860aeea393af4b4dce5a", + "0x0000000000000000000000000000000000042c89e9b83d8e851a0bb8a2c99671", + "0x00000000000000000000000000000029ff75da0fe39f95c8fd3db9fa76170a0a", + "0x0000000000000000000000000000000000086c6d97c513f6bda71f7ec48ffa73", + "0x000000000000000000000000000000b9dfc65f7e96b23c0323beed022dbd0e8b", + "0x00000000000000000000000000000000000da840ca460d337304fdddc51ccdcb", + "0x0000000000000000000000000000009779e676ddb0d2cbe60cd3f0e8420a5a24", + "0x000000000000000000000000000000000019afb9063aed27311575e60935b381", + "0x000000000000000000000000000000a4ab96653b7ca440de630786c9d39a64a6", + "0x000000000000000000000000000000000017c67f2f6f488fecf1f30423b686d7", + "0x000000000000000000000000000000668236044746c1278fd58ae8fd1cdb9b1d", + "0x00000000000000000000000000000000000693b7157bc3142f0ba447fdae7f76", + "0x000000000000000000000000000000df791ed1b79f2d35217b623f5e71121a8d", + "0x00000000000000000000000000000000000dbeb84a9e790de21b2381485f540d", + "0x0000000000000000000000000000009100f77b7a0304a12ee387a752320cd125", + "0x00000000000000000000000000000000001318dc95ea1c022ece5373ccf7df54", + "0x000000000000000000000000000000e9455bfe09dda4706c3020f9601f526956", + "0x0000000000000000000000000000000000184342de9798913fa7ddb8f20cea4a", + "0x0000000000000000000000000000001e246d9dd80fba8aa4bb26d1e59f02f0ad", + "0x00000000000000000000000000000000002835d5768a1c5dd9b91c6510a4c011", + "0x00000000000000000000000000000048b28701736d41d0710bee749891695caa", + "0x00000000000000000000000000000000001b6ed4773bd088a38c7ccb9dd35d5c", + "0x000000000000000000000000000000ba00cde1db125b5d6990634bc54c952f5b", + "0x00000000000000000000000000000000001beaf45bf6de53dd804aec4ff34450", + "0x00000000000000000000000000000077c00cd22e29f969ccbbf53873320f3f27", + "0x0000000000000000000000000000000000110049318e30a630b71ad3ffa23043", + "0x00000000000000000000000000000042998e5fcbf58213ea440d4415ba28daa9", + "0x000000000000000000000000000000000029977aeb175d37f209de8873cb8797", + "0x0000000000000000000000000000008f7af48fbc2f8b3f36ecefe45f1df8fba5", + "0x000000000000000000000000000000000010e5b26915df027752d135e4f20836", + "0x0000000000000000000000000000004d0b78a8b604e876d3ac0d420c106a4b3b", + "0x0000000000000000000000000000000000275a10f1c228cab72c443bc3826d81", + "0x000000000000000000000000000000045a123c9bd9ddfc89c83612a867b9c82c", + "0x000000000000000000000000000000000017830a83188f5596c7f41b8e99b2db", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1427,9 +1431,9 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x0000000000000000000000000000007cf4b5713ad71efb2e02fe45bb7fc9507f", - "0x000000000000000000000000000000000026cf1fe248bb52d3e86b9f64b3c2d3", - "0x0000000000000000000000000000000e590349a07b67f041c3c615e4f436aeab", - "0x000000000000000000000000000000000015a097ca4d6bfa82e4dd755b3ebb59" + "0x00000000000000000000000000000086e0f26bae0b12b2492a2eacb87790a5f0", + "0x00000000000000000000000000000000002b72d4557801466ab903b2968ebadf", + "0x000000000000000000000000000000a489d918a7378177c2b6cced7845608b27", + "0x0000000000000000000000000000000000203cfbd538f1d30214fd33c57861bf" ] - hash = "0x0b292d3b888b2793be2b844d85cf1ee4c10e4646758de66819a7d9483c294c05" + hash = "0x23b5ccfa74f13f2d7cc134002879dcc0d01788486f4adfe7a49aaf0c328e921a" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml index cbddbee65b9b..f8742700b1ca 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-empty-tx/Prover.toml @@ -476,19 +476,22 @@ new_archive_sibling_path = [ ] [inputs.parity_root.public_inputs] - sha_root = "0x00b0e02949c7c042e780651385688dcec114af3dbb3892bab1a9cd8e2bbafdc5" - converted_root = "0x2f7247450c6d856804ef9fade0d5af92e4b87b1576f07ec88359012bf4c21abf" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" + sha_root = "0x00aa91330eafec1db9b1ca2e1733b213a28bfde0499aca2506acc8c00aae7ba3" + converted_root = "0x2c7fea674d2d40f18ffc3f161020dcd660472023bdc7774ae7cdf7b250153f4d" + start_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_rolling_hash = "0x005b0c15d0f641e148adfec120a12eadbf8343e009d350aa593b6d78dbae9568" + num_msgs = "0x0000000000000000000000000000000000000000000000000000000000000400" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ "0x2232a08163cdece776b52f4e83935659e922a56096b3e3282b416cc3900e2c5d", - "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", - "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", + "0x0c19c20b2f788ab636f270c9b37bc22d1dfe0aef1cc71a58437e4251967e4eb8", + "0x23b1515141fce42785df97797e7f1de2b1a3b52da8c859779d2bb535156f769f", "0x20738d93e695096c6290e7c275252b87c3fc8a419bd4d9991368484bcbd446a7", - "0x20322f3a005b50fbc197e0b2ed3d57ce178831e828a359e0d8ae74802888a8f4", + "0x20e63bab1f1aa35d6c7d0ffa0f2df4e44a7f9a9d7531dbacc2f286b8bedd6626", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -496,122 +499,122 @@ new_archive_sibling_path = [ [inputs.parity_root.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000000f", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000004f85c893bf8b1e843f2dffc48dc074f196", - "0x0000000000000000000000000000000000215339c99786f23abf06aa628e2bb5", - "0x00000000000000000000000000000021f56f1fd166b444f6945fef45a4260c98", - "0x000000000000000000000000000000000029832f088b0a8c0ed5fb1876da60ee", - "0x000000000000000000000000000000683bd852b0d5317d3104e00d57a7ff12fe", - "0x00000000000000000000000000000000000d2eb234e163af0321005edbadf074", - "0x00000000000000000000000000000043d1d78f4556dca95ed3ae27b1bb967956", - "0x00000000000000000000000000000000002406ce5529e27d341a34d8c9a819d2", - "0x000000000000000000000000000000d2bb936edd0bcb9cf33e24855aa3095d1e", - "0x000000000000000000000000000000000016629d2674b560633c3db0a21598ea", - "0x00000000000000000000000000000092c8bd15ab345a54468aba584a6f16e2b5", - "0x00000000000000000000000000000000001fbbe74a5bb8bad495a22f4a0384dd", - "0x000000000000000000000000000000d7dbc1eca647580a4a952821d02d282259", - "0x00000000000000000000000000000000002d68b4713f14d3be50ddb099e2b736", - "0x000000000000000000000000000000d4dfc475729d110ffc01eac27a1bb07187", - "0x000000000000000000000000000000000015026e1e1768366175d180725092cd", - "0x000000000000000000000000000000d799d0753526bf23193f9ab8f73c1c7307", - "0x0000000000000000000000000000000000052dcf1d1d89071ecfbfe34de96dff", - "0x0000000000000000000000000000008a7f1c8955fef499a04d57fa057c30e66a", - "0x00000000000000000000000000000000001fedcb5a5fb32238adaca91e2be32f", - "0x00000000000000000000000000000047c5bb126a6e6c788dec340b858f577f7d", - "0x000000000000000000000000000000000013e3b742ca471a245262fb2ecee07a", - "0x000000000000000000000000000000b6284febc7d58cc5491fee7334064865ef", - "0x00000000000000000000000000000000000038ae53da7215a286ebd0649136a1", - "0x0000000000000000000000000000006eed465622852dce8a0702c5327cff0583", - "0x000000000000000000000000000000000022b0941f412859d1cc37a757ca4375", - "0x0000000000000000000000000000008bef872c634b8c03bfe7ff37c00a727192", - "0x000000000000000000000000000000000004906c8767a040a562b166a360c43b", - "0x0000000000000000000000000000001770bcd5e95d6ed8c6299af5208e594351", - "0x00000000000000000000000000000000001170f991d5a8c2cece25a2eec45ac2", - "0x000000000000000000000000000000dd2567c65087f4413c4a68442f7838d361", - "0x00000000000000000000000000000000002b2e2b9fa7017ed5b534b950976cfb", - "0x00000000000000000000000000000060445810cd95870d181367a860937116e0", - "0x00000000000000000000000000000000000171fcd0debd9f9966aa439dafa69c", - "0x00000000000000000000000000000036d276aef0f30fea87630c34381ff63a36", - "0x000000000000000000000000000000000029a01a7f04aa1c5fc36c458ab5f806", + "0x000000000000000000000000000000f6c296809d71cf5f44782230d0a7115efb", + "0x00000000000000000000000000000000001a90515e337e6e0a5539462b8ab34d", + "0x00000000000000000000000000000047b85fd7801b79955297abcf5ce24db12d", + "0x000000000000000000000000000000000013798219bb3844866cc63e778abaea", + "0x0000000000000000000000000000006b9092b7acd9d573529c86dadcb4df24d6", + "0x00000000000000000000000000000000000e445c39ae711dc84fe534afcec0ff", + "0x000000000000000000000000000000de447fa4a8b05d59ccb370de1a57860cb1", + "0x00000000000000000000000000000000002141b0059ca2d847a575552a64012d", + "0x00000000000000000000000000000072a6ab935d12afda9dfb39638d5fd95d83", + "0x00000000000000000000000000000000000addab454462a18b4c4f8792f9aa0a", + "0x000000000000000000000000000000929c0f0cb40063bd56dfbf49abbc664a42", + "0x000000000000000000000000000000000004e717e51b6a225c2d46ee80f1754d", + "0x0000000000000000000000000000004b328a768f63905de64a821aa6b20e6267", + "0x000000000000000000000000000000000003a8e6360a98031c7e6c4b415459e8", + "0x0000000000000000000000000000006922006600c17a80984deae0ce576fc1fc", + "0x0000000000000000000000000000000000157d9fb37940789877e1160593106e", + "0x000000000000000000000000000000c76c180e2a8a15d1e735285c992729a624", + "0x00000000000000000000000000000000002e8e13494a8d686f5a91ca766199b0", + "0x000000000000000000000000000000a43b63e48e512f382a137b77c85060eeff", + "0x00000000000000000000000000000000001dee67bf45dadfa88ab38dc9c36fdf", + "0x000000000000000000000000000000e7577d6e8e7b618704b8c3f696a8bcf401", + "0x000000000000000000000000000000000008ccc6905ac784cbf701588ada53e3", + "0x00000000000000000000000000000028fd2ae7311a4ae1b0335b3a4de073955d", + "0x00000000000000000000000000000000000a55a32dcfd56cf457ceba1e8c4b98", + "0x00000000000000000000000000000087ac26a54fc0e135fc1321669329e5453f", + "0x000000000000000000000000000000000000da0d745fc91f4107c9598705f5b4", + "0x000000000000000000000000000000b89c19351ffb67bcc61f39dc18374f1ba1", + "0x000000000000000000000000000000000029aafdcb77c52cbb12d0ca3bcb3955", + "0x0000000000000000000000000000003d426e6227cb5d340f93d6e151db7368d0", + "0x00000000000000000000000000000000003035d97c8a7b55788cb73274754553", + "0x00000000000000000000000000000015980ce2360cb2b9c954f0d42271819a4e", + "0x00000000000000000000000000000000001eb0de3373fe30473605d8cee1780c", + "0x0000000000000000000000000000007da9c2ecf906864ab558a8d03e60013a0f", + "0x00000000000000000000000000000000000b446fd2e19f791517168ab970dc08", + "0x00000000000000000000000000000030d901a11462b1577415a836412609d2b9", + "0x00000000000000000000000000000000001b78e93d52bd6bccf42c66af7e323d", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000441c338c655b7e22f91724c986ec2a7d0a", - "0x00000000000000000000000000000000000988f7c276931907f533dfa99ae0ad", - "0x000000000000000000000000000000555d1bf8e49259a2b77c8e0caae5b13feb", - "0x00000000000000000000000000000000000716aa5a6148a8455d44f8759f22f5", - "0x0000000000000000000000000000006400f037f61c707f2729c70c5d912ce9d3", - "0x0000000000000000000000000000000000116682196031717f5d1cc4d903aafe", - "0x0000000000000000000000000000006459e7ac42c142260295108e744e33a0c1", - "0x000000000000000000000000000000000009228de1a4fbd3de4d757390f162da", - "0x00000000000000000000000000000067656846b7e2309e7c18c1cce38675bb00", - "0x000000000000000000000000000000000029e7406191ce46a9babc6ac5ff12cf", - "0x00000000000000000000000000000032e79eca379410f7ec358f9da21bac9fa9", - "0x00000000000000000000000000000000002c817548c195702d46fafe6ccd4faf", - "0x0000000000000000000000000000004fbb48b68f274f27d30cdcb82ee7cac9b2", - "0x0000000000000000000000000000000000068f9a71089873a24f8351d1e70d97", - "0x000000000000000000000000000000795c4af1416754d9625f084be947a93c64", - "0x000000000000000000000000000000000024e4ffd72d451203c5bc7d04a27116", - "0x0000000000000000000000000000008ca18e089457f9cceb58c823a944b03f26", - "0x00000000000000000000000000000000000422b4f22af36e628698a6865ddecd", - "0x000000000000000000000000000000fb52c4f612125db4012ed8a2e84e1d2c6c", - "0x000000000000000000000000000000000019dc534f8dd81d19f72590c6e1fb8e", - "0x000000000000000000000000000000fa01f84fdc11a5d03b14bee3a99a680c37", - "0x000000000000000000000000000000000022dad727328995272891d530216d61", - "0x000000000000000000000000000000b5f4bf23591d8b2447d60d61737c2c36bf", - "0x000000000000000000000000000000000002e2a075eaa9f4dd89c257af6cbab0", - "0x0000000000000000000000000000003561668a93cb72e95a340771ddc66e9c1a", - "0x00000000000000000000000000000000000026940a62997474ab260b2841eafb", - "0x00000000000000000000000000000075c66b2eeb9c27b8611335bafd53ed5e6b", - "0x000000000000000000000000000000000020720351df147e866486a5db6e8bf9", - "0x000000000000000000000000000000fa65c2574867f702f76ee91bf9721891f4", - "0x00000000000000000000000000000000000550d2b73072fe8ebb458db32bc272", - "0x0000000000000000000000000000005e45bf32b04d43d7d9e082552a7c6e3aab", - "0x0000000000000000000000000000000000156b9320b1c02a5ae4d5245079ef93", - "0x0000000000000000000000000000007dd31f38bd2d2529ea3d3537bddc4c2d8d", - "0x00000000000000000000000000000000001460b51e2428e23b3d5f0e0623a2a5", - "0x0000000000000000000000000000009973429339ccb353bf51ed2d258ab0c734", - "0x00000000000000000000000000000000002675f20f2783781dae8b8ceee4b947", - "0x000000000000000000000000000000f19f97ae0fa6b47d95ce8c99deff02825f", - "0x000000000000000000000000000000000008ac106283f7faa2a9523d6d3b6a65", - "0x000000000000000000000000000000ece35a6af0338418a01080dc9e20d76e8c", - "0x0000000000000000000000000000000000223186953dd9de4ffdf175c62fe17b", - "0x0000000000000000000000000000002cdb64ca6e6e3ae04f48e894d029463405", - "0x00000000000000000000000000000000002934e04d3c42257882836e1cd3c909", - "0x00000000000000000000000000000010928865f0c2b283d43e700debac484ce4", - "0x00000000000000000000000000000000001267fc086b1485e85ea3a8d0cd75de", - "0x000000000000000000000000000000f9cdf1ac824371f6761a75f1208a9ddfad", - "0x00000000000000000000000000000000000e0fdaaebe67864d0d5e9eadb9efc5", - "0x00000000000000000000000000000017a6567e4f95497a889a7d72f19789b322", - "0x0000000000000000000000000000000000288f112dfaacee642430e19b6959db", - "0x000000000000000000000000000000a16e293e7727181d85a1c007ac038f36fb", - "0x00000000000000000000000000000000000dd700294b3714e9f7b0e14b5d532b", - "0x0000000000000000000000000000008ac20e1e987aa4c40027fd4f9efd59fa05", - "0x0000000000000000000000000000000000154ef731c875ef2164785e8ff31c30", - "0x0000000000000000000000000000001911ff084795513c823a4fda7a38335e8c", - "0x0000000000000000000000000000000000302c54e62b85bc435230433f081725", - "0x000000000000000000000000000000c4779e7986fcf2ef065416576329f1c47c", - "0x00000000000000000000000000000000001ebeffb4dbaac41852670eeb9ede9d", - "0x000000000000000000000000000000f030e0b5c911d86aef1ef86fff6c540d91", - "0x00000000000000000000000000000000000bae7a5c23fa083c7231387cf8d78a", - "0x0000000000000000000000000000001942fc1702b7a2afec85c9a8473d44c487", - "0x000000000000000000000000000000000000210966c79a864b7f987cf31ab127", - "0x000000000000000000000000000000f77fcafc38ec30e711c06c5755d04144d6", - "0x00000000000000000000000000000000002db7460ea7c5e17383e5d1b8affeb4", - "0x0000000000000000000000000000007f430ccebae1fa38c07b989cb9ac4ccb2d", - "0x00000000000000000000000000000000001d815d190889cb37cacc2ccf4cfc96", + "0x0000000000000000000000000000004250f6426b0efb654a2e878d9c3ff23c6e", + "0x00000000000000000000000000000000002bfd8f4382900b8345f239cda795e7", + "0x000000000000000000000000000000ba728fcdfa1ef4340ac62b3c719a69cca1", + "0x0000000000000000000000000000000000077655cd6bf818dc84a955cf473e79", + "0x000000000000000000000000000000fc44e5f9270084b2dc12ef190f4ca26bd5", + "0x00000000000000000000000000000000001ccebf6e27b5d5095ca1b790f8139d", + "0x000000000000000000000000000000e7a212b1488ec7ae5879f55227181fea10", + "0x000000000000000000000000000000000014aba53fbfe5d793d153c6df20f423", + "0x00000000000000000000000000000043841a89c4b6827d9ae2d05213ce9e50bc", + "0x00000000000000000000000000000000001d2cb7ae1aac3816357471123f1163", + "0x00000000000000000000000000000097dfdee439b1565be6efc0773bf4a0bcb9", + "0x00000000000000000000000000000000001c2eaa8500a8367ddb4b62266f6924", + "0x0000000000000000000000000000007ad4e621cd0601cce24b27acceff8799f6", + "0x0000000000000000000000000000000000291f4b3b27535dd93a27d0896b987b", + "0x000000000000000000000000000000d76180c25e1c2dc496c983a3dcc8ab9d97", + "0x00000000000000000000000000000000002dd0f3dc30d16bd1cb42116273cba5", + "0x0000000000000000000000000000009b1fe844214230e9baaa510e975e80f51c", + "0x000000000000000000000000000000000005c87fb0cd37141ffbe267f5dcabec", + "0x00000000000000000000000000000005ebc9fb1e97c816de73c19dad72845b84", + "0x0000000000000000000000000000000000150db8f5887a532beee680adb748d2", + "0x0000000000000000000000000000000c4ba88f129310f3552fa13630febe9cec", + "0x00000000000000000000000000000000002cfc740679297c37ccf9113c0f85c1", + "0x0000000000000000000000000000005a8652c1ec43aa6c1217d14cfdd521680a", + "0x00000000000000000000000000000000000cfdab6b00b809560041b4629813ad", + "0x00000000000000000000000000000014fd28cff8a4ed2297d27f894a1f9600e4", + "0x00000000000000000000000000000000000ca2f7ff16e5314334f827942a4292", + "0x000000000000000000000000000000c89a4f3d5ffac04c1cfeb4d09ef199ee48", + "0x000000000000000000000000000000000005ea78f1eca3bc3b5a611b4f749df0", + "0x000000000000000000000000000000d1f08b173eb07958a08b2426de41834b2f", + "0x000000000000000000000000000000000017c32cc885074be4862eff377bc659", + "0x000000000000000000000000000000c17eb945dd0ff429716ceb2b6aa7bc8b51", + "0x0000000000000000000000000000000000134609a12038270e1ee036f4a98102", + "0x000000000000000000000000000000dbed9ddb9119022eaa382153b555087fb7", + "0x00000000000000000000000000000000001cff20144005ad526e356ed9e23a76", + "0x00000000000000000000000000000061ba423f482aa73459dd4296ecf9d3c146", + "0x00000000000000000000000000000000001bdcd6744fda53ab44f59ac9d57abd", + "0x000000000000000000000000000000d0faa474ffa63d9ff106d1dff276beb804", + "0x00000000000000000000000000000000000f16e8cf0caa87891fd2cf97dcf6cf", + "0x000000000000000000000000000000e2f0237a7722976d9edeb5f2da3ac02699", + "0x00000000000000000000000000000000001fdb03311172bf1bf36ed308e07c84", + "0x000000000000000000000000000000791b8a2b60ca324b9bf498d2542fc0cc14", + "0x00000000000000000000000000000000000696b3a715e43e3eed592b9f1f8f22", + "0x0000000000000000000000000000003002e0cdafa4c05dcbf24f05284ecd89ba", + "0x00000000000000000000000000000000000196998cb2840021068cb5844cc4c2", + "0x00000000000000000000000000000008232c4db5d61c991542d66b7f9a06ca9f", + "0x000000000000000000000000000000000023fa036216c753966700559f154121", + "0x00000000000000000000000000000006c5c3dd5a296f4ecef5336886ea74b352", + "0x0000000000000000000000000000000000299d4861002065f6446664f0353241", + "0x000000000000000000000000000000808821f6ef96cdb0fb3e425e1d290ab434", + "0x0000000000000000000000000000000000059dbb2a3bd709e33d5aec1bbbc770", + "0x000000000000000000000000000000e832d84f327527a2d87cf09e48ed645e44", + "0x0000000000000000000000000000000000110b3bac89b975b1218a0036d65951", + "0x00000000000000000000000000000089d8fce004e77c3fd855e247764bc55fba", + "0x0000000000000000000000000000000000098defdf405b0b4248b3cee86501a0", + "0x0000000000000000000000000000003b81c04d831584c715c3e6d0fef0750ac7", + "0x00000000000000000000000000000000002952dcfe1b15620761d9fe280fa0ea", + "0x00000000000000000000000000000066389af526aa59706131b8ef604cc7d266", + "0x000000000000000000000000000000000025240014d4f1ac5a17827ead4aed1a", + "0x00000000000000000000000000000053b38877dbb6cfbe0fece6b1a9e4c40240", + "0x000000000000000000000000000000000025fec6b1fdff6b20c0a26b968bcd0d", + "0x0000000000000000000000000000007e57f27d7dca724ac98315c80223f9d1ba", + "0x000000000000000000000000000000000029009b95640911ef235061d50e7754", + "0x000000000000000000000000000000591aa57eee2939d348e5101ad5c385f8e0", + "0x00000000000000000000000000000000001506c612940b1c75b094e89961d371", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x0000000000000000000000000000003ef880305f8c4beb28f1f80f7cc0e7d3f2", - "0x00000000000000000000000000000000000483fb33808b70b4a034dca390e659", - "0x0000000000000000000000000000003d66a145da1b03e8dc9914efd105dac5e6", - "0x00000000000000000000000000000000002a25301cc6f9e024e87f0b58047b1e" + "0x0000000000000000000000000000005445417fe0bac619f76c6fa2e391830a69", + "0x0000000000000000000000000000000000186e451126813a338415e670ae8ed9", + "0x0000000000000000000000000000008394b1364e2f2685eb9500f29dd439be67", + "0x000000000000000000000000000000000004a58e8752bc2afb7f5fd5f9f50e60" ] - hash = "0x17df297aed2208dd702c20c31bd85e54e0984ff5f2e4c2032f507c647b261849" + hash = "0x12df7b0998c5749280dcfd3ac20941b9aafa83dca07c6de242a8b0de1d18982a" [inputs.previous_archive] root = "0x0fb2945d3438d906d88a216364dbfe9760e96001343468610e01d18182d493d0" @@ -636,8 +639,8 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.constants] chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" version = "0x0000000000000000000000000000000000000000000000000000000000000000" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml index b50e5986cebd..5e9db409698e 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first-single-tx/Prover.toml @@ -28,11 +28,11 @@ new_l1_to_l2_message_subtree_root_sibling_path = [ "0x0aced6fe68143f4c7acd16345a8c1bb50c51a0692b760eb48728feb923d90757" ] new_archive_sibling_path = [ - "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x03f4c32538d42652fb32a5cb2aee4307443fe38382028580e7aa46e43182df55", "0x19f1a0c09db4cd026f686e9c8fb45501a9fefb4eb1b4c6c328a51343a0094eeb", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", "0x30105bad22ddcc508b739b7c9ad87a561c569ff5cb0098a853c1c4ac21b7a037", - "0x15301c4de82716fbf5a4a15272d63e7a2ef90c83c17b2333b88d7b242ae41a4d", + "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", "0x221cf368938c74e4fced9dfb2a8e37cd8a6c57d21385c249f0b5c2412341287f", @@ -475,19 +475,22 @@ new_archive_sibling_path = [ ] [inputs.parity_root.public_inputs] - sha_root = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" - converted_root = "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + sha_root = "0x00aa91330eafec1db9b1ca2e1733b213a28bfde0499aca2506acc8c00aae7ba3" + converted_root = "0x2c7fea674d2d40f18ffc3f161020dcd660472023bdc7774ae7cdf7b250153f4d" + start_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_rolling_hash = "0x005b0c15d0f641e148adfec120a12eadbf8343e009d350aa593b6d78dbae9568" + num_msgs = "0x0000000000000000000000000000000000000000000000000000000000000400" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ "0x2232a08163cdece776b52f4e83935659e922a56096b3e3282b416cc3900e2c5d", - "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", - "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", + "0x0c19c20b2f788ab636f270c9b37bc22d1dfe0aef1cc71a58437e4251967e4eb8", + "0x23b1515141fce42785df97797e7f1de2b1a3b52da8c859779d2bb535156f769f", "0x20738d93e695096c6290e7c275252b87c3fc8a419bd4d9991368484bcbd446a7", - "0x20322f3a005b50fbc197e0b2ed3d57ce178831e828a359e0d8ae74802888a8f4", + "0x20e63bab1f1aa35d6c7d0ffa0f2df4e44a7f9a9d7531dbacc2f286b8bedd6626", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -495,122 +498,122 @@ new_archive_sibling_path = [ [inputs.parity_root.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000000f", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000004f85c893bf8b1e843f2dffc48dc074f196", - "0x0000000000000000000000000000000000215339c99786f23abf06aa628e2bb5", - "0x00000000000000000000000000000021f56f1fd166b444f6945fef45a4260c98", - "0x000000000000000000000000000000000029832f088b0a8c0ed5fb1876da60ee", - "0x000000000000000000000000000000683bd852b0d5317d3104e00d57a7ff12fe", - "0x00000000000000000000000000000000000d2eb234e163af0321005edbadf074", - "0x00000000000000000000000000000043d1d78f4556dca95ed3ae27b1bb967956", - "0x00000000000000000000000000000000002406ce5529e27d341a34d8c9a819d2", - "0x000000000000000000000000000000d2bb936edd0bcb9cf33e24855aa3095d1e", - "0x000000000000000000000000000000000016629d2674b560633c3db0a21598ea", - "0x00000000000000000000000000000092c8bd15ab345a54468aba584a6f16e2b5", - "0x00000000000000000000000000000000001fbbe74a5bb8bad495a22f4a0384dd", - "0x000000000000000000000000000000d7dbc1eca647580a4a952821d02d282259", - "0x00000000000000000000000000000000002d68b4713f14d3be50ddb099e2b736", - "0x000000000000000000000000000000d4dfc475729d110ffc01eac27a1bb07187", - "0x000000000000000000000000000000000015026e1e1768366175d180725092cd", - "0x000000000000000000000000000000d799d0753526bf23193f9ab8f73c1c7307", - "0x0000000000000000000000000000000000052dcf1d1d89071ecfbfe34de96dff", - "0x0000000000000000000000000000008a7f1c8955fef499a04d57fa057c30e66a", - "0x00000000000000000000000000000000001fedcb5a5fb32238adaca91e2be32f", - "0x00000000000000000000000000000047c5bb126a6e6c788dec340b858f577f7d", - "0x000000000000000000000000000000000013e3b742ca471a245262fb2ecee07a", - "0x000000000000000000000000000000b6284febc7d58cc5491fee7334064865ef", - "0x00000000000000000000000000000000000038ae53da7215a286ebd0649136a1", - "0x0000000000000000000000000000006eed465622852dce8a0702c5327cff0583", - "0x000000000000000000000000000000000022b0941f412859d1cc37a757ca4375", - "0x0000000000000000000000000000008bef872c634b8c03bfe7ff37c00a727192", - "0x000000000000000000000000000000000004906c8767a040a562b166a360c43b", - "0x0000000000000000000000000000001770bcd5e95d6ed8c6299af5208e594351", - "0x00000000000000000000000000000000001170f991d5a8c2cece25a2eec45ac2", - "0x000000000000000000000000000000dd2567c65087f4413c4a68442f7838d361", - "0x00000000000000000000000000000000002b2e2b9fa7017ed5b534b950976cfb", - "0x00000000000000000000000000000060445810cd95870d181367a860937116e0", - "0x00000000000000000000000000000000000171fcd0debd9f9966aa439dafa69c", - "0x00000000000000000000000000000036d276aef0f30fea87630c34381ff63a36", - "0x000000000000000000000000000000000029a01a7f04aa1c5fc36c458ab5f806", + "0x000000000000000000000000000000f6c296809d71cf5f44782230d0a7115efb", + "0x00000000000000000000000000000000001a90515e337e6e0a5539462b8ab34d", + "0x00000000000000000000000000000047b85fd7801b79955297abcf5ce24db12d", + "0x000000000000000000000000000000000013798219bb3844866cc63e778abaea", + "0x0000000000000000000000000000006b9092b7acd9d573529c86dadcb4df24d6", + "0x00000000000000000000000000000000000e445c39ae711dc84fe534afcec0ff", + "0x000000000000000000000000000000de447fa4a8b05d59ccb370de1a57860cb1", + "0x00000000000000000000000000000000002141b0059ca2d847a575552a64012d", + "0x00000000000000000000000000000072a6ab935d12afda9dfb39638d5fd95d83", + "0x00000000000000000000000000000000000addab454462a18b4c4f8792f9aa0a", + "0x000000000000000000000000000000929c0f0cb40063bd56dfbf49abbc664a42", + "0x000000000000000000000000000000000004e717e51b6a225c2d46ee80f1754d", + "0x0000000000000000000000000000004b328a768f63905de64a821aa6b20e6267", + "0x000000000000000000000000000000000003a8e6360a98031c7e6c4b415459e8", + "0x0000000000000000000000000000006922006600c17a80984deae0ce576fc1fc", + "0x0000000000000000000000000000000000157d9fb37940789877e1160593106e", + "0x000000000000000000000000000000c76c180e2a8a15d1e735285c992729a624", + "0x00000000000000000000000000000000002e8e13494a8d686f5a91ca766199b0", + "0x000000000000000000000000000000a43b63e48e512f382a137b77c85060eeff", + "0x00000000000000000000000000000000001dee67bf45dadfa88ab38dc9c36fdf", + "0x000000000000000000000000000000e7577d6e8e7b618704b8c3f696a8bcf401", + "0x000000000000000000000000000000000008ccc6905ac784cbf701588ada53e3", + "0x00000000000000000000000000000028fd2ae7311a4ae1b0335b3a4de073955d", + "0x00000000000000000000000000000000000a55a32dcfd56cf457ceba1e8c4b98", + "0x00000000000000000000000000000087ac26a54fc0e135fc1321669329e5453f", + "0x000000000000000000000000000000000000da0d745fc91f4107c9598705f5b4", + "0x000000000000000000000000000000b89c19351ffb67bcc61f39dc18374f1ba1", + "0x000000000000000000000000000000000029aafdcb77c52cbb12d0ca3bcb3955", + "0x0000000000000000000000000000003d426e6227cb5d340f93d6e151db7368d0", + "0x00000000000000000000000000000000003035d97c8a7b55788cb73274754553", + "0x00000000000000000000000000000015980ce2360cb2b9c954f0d42271819a4e", + "0x00000000000000000000000000000000001eb0de3373fe30473605d8cee1780c", + "0x0000000000000000000000000000007da9c2ecf906864ab558a8d03e60013a0f", + "0x00000000000000000000000000000000000b446fd2e19f791517168ab970dc08", + "0x00000000000000000000000000000030d901a11462b1577415a836412609d2b9", + "0x00000000000000000000000000000000001b78e93d52bd6bccf42c66af7e323d", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000441c338c655b7e22f91724c986ec2a7d0a", - "0x00000000000000000000000000000000000988f7c276931907f533dfa99ae0ad", - "0x000000000000000000000000000000555d1bf8e49259a2b77c8e0caae5b13feb", - "0x00000000000000000000000000000000000716aa5a6148a8455d44f8759f22f5", - "0x0000000000000000000000000000006400f037f61c707f2729c70c5d912ce9d3", - "0x0000000000000000000000000000000000116682196031717f5d1cc4d903aafe", - "0x0000000000000000000000000000006459e7ac42c142260295108e744e33a0c1", - "0x000000000000000000000000000000000009228de1a4fbd3de4d757390f162da", - "0x00000000000000000000000000000067656846b7e2309e7c18c1cce38675bb00", - "0x000000000000000000000000000000000029e7406191ce46a9babc6ac5ff12cf", - "0x00000000000000000000000000000032e79eca379410f7ec358f9da21bac9fa9", - "0x00000000000000000000000000000000002c817548c195702d46fafe6ccd4faf", - "0x0000000000000000000000000000004fbb48b68f274f27d30cdcb82ee7cac9b2", - "0x0000000000000000000000000000000000068f9a71089873a24f8351d1e70d97", - "0x000000000000000000000000000000795c4af1416754d9625f084be947a93c64", - "0x000000000000000000000000000000000024e4ffd72d451203c5bc7d04a27116", - "0x0000000000000000000000000000008ca18e089457f9cceb58c823a944b03f26", - "0x00000000000000000000000000000000000422b4f22af36e628698a6865ddecd", - "0x000000000000000000000000000000fb52c4f612125db4012ed8a2e84e1d2c6c", - "0x000000000000000000000000000000000019dc534f8dd81d19f72590c6e1fb8e", - "0x000000000000000000000000000000fa01f84fdc11a5d03b14bee3a99a680c37", - "0x000000000000000000000000000000000022dad727328995272891d530216d61", - "0x000000000000000000000000000000b5f4bf23591d8b2447d60d61737c2c36bf", - "0x000000000000000000000000000000000002e2a075eaa9f4dd89c257af6cbab0", - "0x0000000000000000000000000000003561668a93cb72e95a340771ddc66e9c1a", - "0x00000000000000000000000000000000000026940a62997474ab260b2841eafb", - "0x00000000000000000000000000000075c66b2eeb9c27b8611335bafd53ed5e6b", - "0x000000000000000000000000000000000020720351df147e866486a5db6e8bf9", - "0x000000000000000000000000000000fa65c2574867f702f76ee91bf9721891f4", - "0x00000000000000000000000000000000000550d2b73072fe8ebb458db32bc272", - "0x0000000000000000000000000000005e45bf32b04d43d7d9e082552a7c6e3aab", - "0x0000000000000000000000000000000000156b9320b1c02a5ae4d5245079ef93", - "0x0000000000000000000000000000007dd31f38bd2d2529ea3d3537bddc4c2d8d", - "0x00000000000000000000000000000000001460b51e2428e23b3d5f0e0623a2a5", - "0x0000000000000000000000000000009973429339ccb353bf51ed2d258ab0c734", - "0x00000000000000000000000000000000002675f20f2783781dae8b8ceee4b947", - "0x000000000000000000000000000000f19f97ae0fa6b47d95ce8c99deff02825f", - "0x000000000000000000000000000000000008ac106283f7faa2a9523d6d3b6a65", - "0x000000000000000000000000000000ece35a6af0338418a01080dc9e20d76e8c", - "0x0000000000000000000000000000000000223186953dd9de4ffdf175c62fe17b", - "0x0000000000000000000000000000002cdb64ca6e6e3ae04f48e894d029463405", - "0x00000000000000000000000000000000002934e04d3c42257882836e1cd3c909", - "0x00000000000000000000000000000010928865f0c2b283d43e700debac484ce4", - "0x00000000000000000000000000000000001267fc086b1485e85ea3a8d0cd75de", - "0x000000000000000000000000000000f9cdf1ac824371f6761a75f1208a9ddfad", - "0x00000000000000000000000000000000000e0fdaaebe67864d0d5e9eadb9efc5", - "0x00000000000000000000000000000017a6567e4f95497a889a7d72f19789b322", - "0x0000000000000000000000000000000000288f112dfaacee642430e19b6959db", - "0x000000000000000000000000000000a16e293e7727181d85a1c007ac038f36fb", - "0x00000000000000000000000000000000000dd700294b3714e9f7b0e14b5d532b", - "0x0000000000000000000000000000008ac20e1e987aa4c40027fd4f9efd59fa05", - "0x0000000000000000000000000000000000154ef731c875ef2164785e8ff31c30", - "0x0000000000000000000000000000001911ff084795513c823a4fda7a38335e8c", - "0x0000000000000000000000000000000000302c54e62b85bc435230433f081725", - "0x000000000000000000000000000000c4779e7986fcf2ef065416576329f1c47c", - "0x00000000000000000000000000000000001ebeffb4dbaac41852670eeb9ede9d", - "0x000000000000000000000000000000f030e0b5c911d86aef1ef86fff6c540d91", - "0x00000000000000000000000000000000000bae7a5c23fa083c7231387cf8d78a", - "0x0000000000000000000000000000001942fc1702b7a2afec85c9a8473d44c487", - "0x000000000000000000000000000000000000210966c79a864b7f987cf31ab127", - "0x000000000000000000000000000000f77fcafc38ec30e711c06c5755d04144d6", - "0x00000000000000000000000000000000002db7460ea7c5e17383e5d1b8affeb4", - "0x0000000000000000000000000000007f430ccebae1fa38c07b989cb9ac4ccb2d", - "0x00000000000000000000000000000000001d815d190889cb37cacc2ccf4cfc96", + "0x0000000000000000000000000000004250f6426b0efb654a2e878d9c3ff23c6e", + "0x00000000000000000000000000000000002bfd8f4382900b8345f239cda795e7", + "0x000000000000000000000000000000ba728fcdfa1ef4340ac62b3c719a69cca1", + "0x0000000000000000000000000000000000077655cd6bf818dc84a955cf473e79", + "0x000000000000000000000000000000fc44e5f9270084b2dc12ef190f4ca26bd5", + "0x00000000000000000000000000000000001ccebf6e27b5d5095ca1b790f8139d", + "0x000000000000000000000000000000e7a212b1488ec7ae5879f55227181fea10", + "0x000000000000000000000000000000000014aba53fbfe5d793d153c6df20f423", + "0x00000000000000000000000000000043841a89c4b6827d9ae2d05213ce9e50bc", + "0x00000000000000000000000000000000001d2cb7ae1aac3816357471123f1163", + "0x00000000000000000000000000000097dfdee439b1565be6efc0773bf4a0bcb9", + "0x00000000000000000000000000000000001c2eaa8500a8367ddb4b62266f6924", + "0x0000000000000000000000000000007ad4e621cd0601cce24b27acceff8799f6", + "0x0000000000000000000000000000000000291f4b3b27535dd93a27d0896b987b", + "0x000000000000000000000000000000d76180c25e1c2dc496c983a3dcc8ab9d97", + "0x00000000000000000000000000000000002dd0f3dc30d16bd1cb42116273cba5", + "0x0000000000000000000000000000009b1fe844214230e9baaa510e975e80f51c", + "0x000000000000000000000000000000000005c87fb0cd37141ffbe267f5dcabec", + "0x00000000000000000000000000000005ebc9fb1e97c816de73c19dad72845b84", + "0x0000000000000000000000000000000000150db8f5887a532beee680adb748d2", + "0x0000000000000000000000000000000c4ba88f129310f3552fa13630febe9cec", + "0x00000000000000000000000000000000002cfc740679297c37ccf9113c0f85c1", + "0x0000000000000000000000000000005a8652c1ec43aa6c1217d14cfdd521680a", + "0x00000000000000000000000000000000000cfdab6b00b809560041b4629813ad", + "0x00000000000000000000000000000014fd28cff8a4ed2297d27f894a1f9600e4", + "0x00000000000000000000000000000000000ca2f7ff16e5314334f827942a4292", + "0x000000000000000000000000000000c89a4f3d5ffac04c1cfeb4d09ef199ee48", + "0x000000000000000000000000000000000005ea78f1eca3bc3b5a611b4f749df0", + "0x000000000000000000000000000000d1f08b173eb07958a08b2426de41834b2f", + "0x000000000000000000000000000000000017c32cc885074be4862eff377bc659", + "0x000000000000000000000000000000c17eb945dd0ff429716ceb2b6aa7bc8b51", + "0x0000000000000000000000000000000000134609a12038270e1ee036f4a98102", + "0x000000000000000000000000000000dbed9ddb9119022eaa382153b555087fb7", + "0x00000000000000000000000000000000001cff20144005ad526e356ed9e23a76", + "0x00000000000000000000000000000061ba423f482aa73459dd4296ecf9d3c146", + "0x00000000000000000000000000000000001bdcd6744fda53ab44f59ac9d57abd", + "0x000000000000000000000000000000d0faa474ffa63d9ff106d1dff276beb804", + "0x00000000000000000000000000000000000f16e8cf0caa87891fd2cf97dcf6cf", + "0x000000000000000000000000000000e2f0237a7722976d9edeb5f2da3ac02699", + "0x00000000000000000000000000000000001fdb03311172bf1bf36ed308e07c84", + "0x000000000000000000000000000000791b8a2b60ca324b9bf498d2542fc0cc14", + "0x00000000000000000000000000000000000696b3a715e43e3eed592b9f1f8f22", + "0x0000000000000000000000000000003002e0cdafa4c05dcbf24f05284ecd89ba", + "0x00000000000000000000000000000000000196998cb2840021068cb5844cc4c2", + "0x00000000000000000000000000000008232c4db5d61c991542d66b7f9a06ca9f", + "0x000000000000000000000000000000000023fa036216c753966700559f154121", + "0x00000000000000000000000000000006c5c3dd5a296f4ecef5336886ea74b352", + "0x0000000000000000000000000000000000299d4861002065f6446664f0353241", + "0x000000000000000000000000000000808821f6ef96cdb0fb3e425e1d290ab434", + "0x0000000000000000000000000000000000059dbb2a3bd709e33d5aec1bbbc770", + "0x000000000000000000000000000000e832d84f327527a2d87cf09e48ed645e44", + "0x0000000000000000000000000000000000110b3bac89b975b1218a0036d65951", + "0x00000000000000000000000000000089d8fce004e77c3fd855e247764bc55fba", + "0x0000000000000000000000000000000000098defdf405b0b4248b3cee86501a0", + "0x0000000000000000000000000000003b81c04d831584c715c3e6d0fef0750ac7", + "0x00000000000000000000000000000000002952dcfe1b15620761d9fe280fa0ea", + "0x00000000000000000000000000000066389af526aa59706131b8ef604cc7d266", + "0x000000000000000000000000000000000025240014d4f1ac5a17827ead4aed1a", + "0x00000000000000000000000000000053b38877dbb6cfbe0fece6b1a9e4c40240", + "0x000000000000000000000000000000000025fec6b1fdff6b20c0a26b968bcd0d", + "0x0000000000000000000000000000007e57f27d7dca724ac98315c80223f9d1ba", + "0x000000000000000000000000000000000029009b95640911ef235061d50e7754", + "0x000000000000000000000000000000591aa57eee2939d348e5101ad5c385f8e0", + "0x00000000000000000000000000000000001506c612940b1c75b094e89961d371", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x0000000000000000000000000000003ef880305f8c4beb28f1f80f7cc0e7d3f2", - "0x00000000000000000000000000000000000483fb33808b70b4a034dca390e659", - "0x0000000000000000000000000000003d66a145da1b03e8dc9914efd105dac5e6", - "0x00000000000000000000000000000000002a25301cc6f9e024e87f0b58047b1e" + "0x0000000000000000000000000000005445417fe0bac619f76c6fa2e391830a69", + "0x0000000000000000000000000000000000186e451126813a338415e670ae8ed9", + "0x0000000000000000000000000000008394b1364e2f2685eb9500f29dd439be67", + "0x000000000000000000000000000000000004a58e8752bc2afb7f5fd5f9f50e60" ] - hash = "0x17df297aed2208dd702c20c31bd85e54e0984ff5f2e4c2032f507c647b261849" + hash = "0x12df7b0998c5749280dcfd3ac20941b9aafa83dca07c6de242a8b0de1d18982a" [inputs.previous_rollup] proof = [ @@ -1098,63 +1101,63 @@ new_archive_sibling_path = [ [inputs.previous_rollup.public_inputs] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" - out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x00000000000000000000000000000000000000000000000000025a22f5a46180" - accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000008992c" + out_hash = "0x006bd7618b0cf7b40e3f107022eee2d411bcc5850fbb774dacc46a15957659c4" + accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" + accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000006b6c0" [inputs.previous_rollup.public_inputs.constants] - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.constants.last_archive] - root = "0x1a0ad70d8882ca087efc368f5bf03aff36233ea5565c355b422edbe23230bb54" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000010" + root = "0x0fb2945d3438d906d88a216364dbfe9760e96001343468610e01d18182d493d0" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollup.public_inputs.constants.l1_to_l2_tree_snapshot] - root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000004000" + root = "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" [inputs.previous_rollup.public_inputs.constants.global_variables] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000b5668f8c" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000010" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000044" - timestamp = "0x000000000000000000000000000000000000000000000000000000006a19e834" + chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" + version = "0x0000000000000000000000000000000000000000000000000000000000000000" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000001" + slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" + timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" [inputs.previous_rollup.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.constants.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000046078d20" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x270f0e53352d9b00c624108d3cc047fd350ea0b72933a171e2efa1d3d10b124c" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000240" +root = "0x2590f2aab19dd791700b4a43d3f52bb88ef2409a3731da8e848663559202e4c6" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollup.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x192211ad2f3e6ccdcbbbf4f29b8b3fc3cbf648c83756035031acae99e54b0059" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000002c0" +root = "0x18935581a8ed73d08ffd00386fba55ba6c89f3ab848a76b8fedfa9034cee0454" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollup.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x0b5c82d7bffef1ad54f453ea289be1f760a91f28833683a3c201a5a6138be962" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollup.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x270f0e53352d9b00c624108d3cc047fd350ea0b72933a171e2efa1d3d10b124c" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000280" +root = "0x01612d24a146efc2df9d815a2f733c17486304424577ffb4232fe4cb0c94e1e7" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000040" [inputs.previous_rollup.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x2071b91a56d954cbf864e05d7fc3c670d5116e27bd5c1577b9e743969ad48a60" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" +root = "0x2d9141720c810b831246b0e50c0ad9d4b935418ba2ae8a06c395bb80340ee684" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000c0" [inputs.previous_rollup.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x0d0104f21a63ccebcdb137fcbb3cf44e773d905280c8f1fac1f2b259a55068d9" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollup.public_inputs.start_sponge_blob] num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1175,31 +1178,31 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 squeeze_mode = false [inputs.previous_rollup.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000085" + num_absorbed_fields = "0x00000000000000000000000000000000000000000000000000000000000004cd" [inputs.previous_rollup.public_inputs.end_sponge_blob.sponge] cache = [ - "0x0003052600000000000000000000000000000000000000000000000000000000", - "0x000100000304092d00030a2d00050b2300000c222d010a082d04080b00000a02", - "0x000a00000b020b0c000a090c2400000c00000c1027010504012300000c3d2d00" + "0x00000000000000000000000000000000000000000000000000000000b7d1b44d", + "0x00000000000000000000000000000000000000000000000000000000b7d1b44e", + "0x00000000000000000000000000000000000000000000000000000000b7d1b44c" ] state = [ - "0x0bc05b9b8a67712c2de2a8b4638809c0cbb55a743aa0134f6f3f3f8812e31322", - "0x258ee00282dfa17daf2239232e4e3412c23a61f4b1ef5369125a1be9ea6dcc83", - "0x096498f2714a32fb3fabe9ec20919c53a6dc56e670b97a79f23b5053798c8cb9", - "0x2cadaa5ecb09dafb6377501549317878b4f886b5678eb26b2101a8a65a68d59a" + "0x0fee9e1b584678e2a8a35f16686a54e807ebd2cc8fd4c2c7ea03e515f5cd0a64", + "0x0d4d07eb9a391486b0d1ce29ea41d2ce8a79e4c9d01998c415957ebc22fa3081", + "0x1003a74f5d7845c6ea7f1455fc07c4dbf4bd253a55755ce8ef257a09a1c7bd58", + "0x21b40f6e82906553ed8bced8fa1fff078232d026e3f9eb05ce46c92d786e9b6e" ] - cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" + cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false [inputs.previous_rollup.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000007" sibling_path = [ - "0x1ef80142d10a45fb61f3a4192d352f1d813530777b10ca6db9613ccf5d025640", + "0x1afeab54b4686d62191a8f0c826b71c2b5b6aa65543b8df98662bacb99d93b43", "0x0a2d5d1c88992fa153310bc96af4c750c81353526f8c7dfe2b069ed57136e696", "0x14504afd38f5b621163f09ccf2f7b1e09bd735785a0e5601c72674b46e883003", - "0x2973e5ec48ee239e069ec1ec648ff54c1e516c943eab48a6fbc979ccd79e4d18", - "0x0b96ac97088e29b87f5cd854aa1ff5c1b518a7845a3404916b468d5730444fd0", + "0x1ef0a62bd82a38ab2d47568b10a9de48c4983e546346b82af8a6fb2862592a98", + "0x2ee9953b5b298d73efa51c84799edd8c318088ed161eb0404afbec8d88e5cf1a", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -1213,10 +1216,10 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000001a4c7c79f45cd9c3b2730b1014fb2c", "0x000000000000000000000000000000a0758982a879da262fb5d4a283eb0b2fbd", "0x00000000000000000000000000000000001cd980c7d658817fc07f56422786c8", - "0x0000000000000000000000000000001116c0ef394a159d7d04035e2d2b1df210", - "0x00000000000000000000000000000000001fc719cba8f7ef0eec1facb64807b8", - "0x00000000000000000000000000000030ae5b7a71f6a3350eb91e843430327027", - "0x000000000000000000000000000000000010623eeba8739fad768943b6a32cd7", + "0x000000000000000000000000000000ad8e1411b04ae1b0cccbeada5de1aef99e", + "0x00000000000000000000000000000000000c032e5ca933e153dc05ea96b3f9a7", + "0x00000000000000000000000000000025579ed09d568475f6a9ea541ffc1aa06e", + "0x0000000000000000000000000000000000070a014593ec2611c76610a7ac31e9", "0x00000000000000000000000000000075f511068970271dc3805b753a601ff6bf", "0x0000000000000000000000000000000000087d083bd0a030d3e8d20a44cac510", "0x0000000000000000000000000000008a1d365a7e9c0cdce156eefc77f82c324b", @@ -1322,8 +1325,8 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x000000000000000000000000000000ed074fc7f9cd09872a83d8c368c93a0725", "0x00000000000000000000000000000000002621701db780a70b161ef185f06af9" ] - hash = "0x1ade3720cbbe9e0e7e072126148d01bed74c9bdaaa8e0b885ac795a6766c0e4f" + hash = "0x0ce359dde10cdbdebf123dbbd5a8f6b061ab6e6ee29b39d2d91896a111a05957" [inputs.previous_l1_to_l2] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000003c00" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml index da91c08d5c43..6ce459f30e36 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-block-root-first/Prover.toml @@ -28,11 +28,11 @@ new_l1_to_l2_message_subtree_root_sibling_path = [ "0x0aced6fe68143f4c7acd16345a8c1bb50c51a0692b760eb48728feb923d90757" ] new_archive_sibling_path = [ - "0x265b8f22f052c2a4e1147592cbe9c5e172aeaa67e9f3ad47bb5245fddd10254a", - "0x2b8d8b4f91fc9e90021f912f310275a34047d147e7706f0a062dd5e6e715c999", + "0x03f4c32538d42652fb32a5cb2aee4307443fe38382028580e7aa46e43182df55", + "0x19f1a0c09db4cd026f686e9c8fb45501a9fefb4eb1b4c6c328a51343a0094eeb", "0x14e4b977b2203b70e6ee1c2456eb7114d090fe4b907f631eecd0919fed432e7d", "0x30105bad22ddcc508b739b7c9ad87a561c569ff5cb0098a853c1c4ac21b7a037", - "0x15301c4de82716fbf5a4a15272d63e7a2ef90c83c17b2333b88d7b242ae41a4d", + "0x1e20ad4181460cbfdc74ca773502c59b890f184efe300ebad895956d318422da", "0x1434e6e2d5db1053ab8a3be58704509c799ee17e109c77f441f7bf1755400249", "0x119f56a2e8423a7feaab49b9b5dcbadec0648dfa4096b61b6774ea33ae29dc7f", "0x221cf368938c74e4fced9dfb2a8e37cd8a6c57d21385c249f0b5c2412341287f", @@ -475,19 +475,22 @@ new_archive_sibling_path = [ ] [inputs.parity_root.public_inputs] - sha_root = "0x00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d468223" - converted_root = "0x0d04c63f36bd168215c9b09a227c7e8d3ad48e2f11b8202fd07c524bd30ee88f" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + sha_root = "0x00aa91330eafec1db9b1ca2e1733b213a28bfde0499aca2506acc8c00aae7ba3" + converted_root = "0x2c7fea674d2d40f18ffc3f161020dcd660472023bdc7774ae7cdf7b250153f4d" + start_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_rolling_hash = "0x005b0c15d0f641e148adfec120a12eadbf8343e009d350aa593b6d78dbae9568" + num_msgs = "0x0000000000000000000000000000000000000000000000000000000000000400" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.parity_root.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000016" sibling_path = [ "0x2232a08163cdece776b52f4e83935659e922a56096b3e3282b416cc3900e2c5d", - "0x2ba2de2d2cb820a66a273f2ba930d43a4469119ad58fe01eaed0e0d615ffb426", - "0x18f1abfe1a07005f35a20c06b468f7a4d3b68ecc2c025c88271b6550a827d41b", + "0x0c19c20b2f788ab636f270c9b37bc22d1dfe0aef1cc71a58437e4251967e4eb8", + "0x23b1515141fce42785df97797e7f1de2b1a3b52da8c859779d2bb535156f769f", "0x20738d93e695096c6290e7c275252b87c3fc8a419bd4d9991368484bcbd446a7", - "0x20322f3a005b50fbc197e0b2ed3d57ce178831e828a359e0d8ae74802888a8f4", + "0x20e63bab1f1aa35d6c7d0ffa0f2df4e44a7f9a9d7531dbacc2f286b8bedd6626", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -495,122 +498,122 @@ new_archive_sibling_path = [ [inputs.parity_root.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000000f", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000004f85c893bf8b1e843f2dffc48dc074f196", - "0x0000000000000000000000000000000000215339c99786f23abf06aa628e2bb5", - "0x00000000000000000000000000000021f56f1fd166b444f6945fef45a4260c98", - "0x000000000000000000000000000000000029832f088b0a8c0ed5fb1876da60ee", - "0x000000000000000000000000000000683bd852b0d5317d3104e00d57a7ff12fe", - "0x00000000000000000000000000000000000d2eb234e163af0321005edbadf074", - "0x00000000000000000000000000000043d1d78f4556dca95ed3ae27b1bb967956", - "0x00000000000000000000000000000000002406ce5529e27d341a34d8c9a819d2", - "0x000000000000000000000000000000d2bb936edd0bcb9cf33e24855aa3095d1e", - "0x000000000000000000000000000000000016629d2674b560633c3db0a21598ea", - "0x00000000000000000000000000000092c8bd15ab345a54468aba584a6f16e2b5", - "0x00000000000000000000000000000000001fbbe74a5bb8bad495a22f4a0384dd", - "0x000000000000000000000000000000d7dbc1eca647580a4a952821d02d282259", - "0x00000000000000000000000000000000002d68b4713f14d3be50ddb099e2b736", - "0x000000000000000000000000000000d4dfc475729d110ffc01eac27a1bb07187", - "0x000000000000000000000000000000000015026e1e1768366175d180725092cd", - "0x000000000000000000000000000000d799d0753526bf23193f9ab8f73c1c7307", - "0x0000000000000000000000000000000000052dcf1d1d89071ecfbfe34de96dff", - "0x0000000000000000000000000000008a7f1c8955fef499a04d57fa057c30e66a", - "0x00000000000000000000000000000000001fedcb5a5fb32238adaca91e2be32f", - "0x00000000000000000000000000000047c5bb126a6e6c788dec340b858f577f7d", - "0x000000000000000000000000000000000013e3b742ca471a245262fb2ecee07a", - "0x000000000000000000000000000000b6284febc7d58cc5491fee7334064865ef", - "0x00000000000000000000000000000000000038ae53da7215a286ebd0649136a1", - "0x0000000000000000000000000000006eed465622852dce8a0702c5327cff0583", - "0x000000000000000000000000000000000022b0941f412859d1cc37a757ca4375", - "0x0000000000000000000000000000008bef872c634b8c03bfe7ff37c00a727192", - "0x000000000000000000000000000000000004906c8767a040a562b166a360c43b", - "0x0000000000000000000000000000001770bcd5e95d6ed8c6299af5208e594351", - "0x00000000000000000000000000000000001170f991d5a8c2cece25a2eec45ac2", - "0x000000000000000000000000000000dd2567c65087f4413c4a68442f7838d361", - "0x00000000000000000000000000000000002b2e2b9fa7017ed5b534b950976cfb", - "0x00000000000000000000000000000060445810cd95870d181367a860937116e0", - "0x00000000000000000000000000000000000171fcd0debd9f9966aa439dafa69c", - "0x00000000000000000000000000000036d276aef0f30fea87630c34381ff63a36", - "0x000000000000000000000000000000000029a01a7f04aa1c5fc36c458ab5f806", + "0x000000000000000000000000000000f6c296809d71cf5f44782230d0a7115efb", + "0x00000000000000000000000000000000001a90515e337e6e0a5539462b8ab34d", + "0x00000000000000000000000000000047b85fd7801b79955297abcf5ce24db12d", + "0x000000000000000000000000000000000013798219bb3844866cc63e778abaea", + "0x0000000000000000000000000000006b9092b7acd9d573529c86dadcb4df24d6", + "0x00000000000000000000000000000000000e445c39ae711dc84fe534afcec0ff", + "0x000000000000000000000000000000de447fa4a8b05d59ccb370de1a57860cb1", + "0x00000000000000000000000000000000002141b0059ca2d847a575552a64012d", + "0x00000000000000000000000000000072a6ab935d12afda9dfb39638d5fd95d83", + "0x00000000000000000000000000000000000addab454462a18b4c4f8792f9aa0a", + "0x000000000000000000000000000000929c0f0cb40063bd56dfbf49abbc664a42", + "0x000000000000000000000000000000000004e717e51b6a225c2d46ee80f1754d", + "0x0000000000000000000000000000004b328a768f63905de64a821aa6b20e6267", + "0x000000000000000000000000000000000003a8e6360a98031c7e6c4b415459e8", + "0x0000000000000000000000000000006922006600c17a80984deae0ce576fc1fc", + "0x0000000000000000000000000000000000157d9fb37940789877e1160593106e", + "0x000000000000000000000000000000c76c180e2a8a15d1e735285c992729a624", + "0x00000000000000000000000000000000002e8e13494a8d686f5a91ca766199b0", + "0x000000000000000000000000000000a43b63e48e512f382a137b77c85060eeff", + "0x00000000000000000000000000000000001dee67bf45dadfa88ab38dc9c36fdf", + "0x000000000000000000000000000000e7577d6e8e7b618704b8c3f696a8bcf401", + "0x000000000000000000000000000000000008ccc6905ac784cbf701588ada53e3", + "0x00000000000000000000000000000028fd2ae7311a4ae1b0335b3a4de073955d", + "0x00000000000000000000000000000000000a55a32dcfd56cf457ceba1e8c4b98", + "0x00000000000000000000000000000087ac26a54fc0e135fc1321669329e5453f", + "0x000000000000000000000000000000000000da0d745fc91f4107c9598705f5b4", + "0x000000000000000000000000000000b89c19351ffb67bcc61f39dc18374f1ba1", + "0x000000000000000000000000000000000029aafdcb77c52cbb12d0ca3bcb3955", + "0x0000000000000000000000000000003d426e6227cb5d340f93d6e151db7368d0", + "0x00000000000000000000000000000000003035d97c8a7b55788cb73274754553", + "0x00000000000000000000000000000015980ce2360cb2b9c954f0d42271819a4e", + "0x00000000000000000000000000000000001eb0de3373fe30473605d8cee1780c", + "0x0000000000000000000000000000007da9c2ecf906864ab558a8d03e60013a0f", + "0x00000000000000000000000000000000000b446fd2e19f791517168ab970dc08", + "0x00000000000000000000000000000030d901a11462b1577415a836412609d2b9", + "0x00000000000000000000000000000000001b78e93d52bd6bccf42c66af7e323d", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000000000441c338c655b7e22f91724c986ec2a7d0a", - "0x00000000000000000000000000000000000988f7c276931907f533dfa99ae0ad", - "0x000000000000000000000000000000555d1bf8e49259a2b77c8e0caae5b13feb", - "0x00000000000000000000000000000000000716aa5a6148a8455d44f8759f22f5", - "0x0000000000000000000000000000006400f037f61c707f2729c70c5d912ce9d3", - "0x0000000000000000000000000000000000116682196031717f5d1cc4d903aafe", - "0x0000000000000000000000000000006459e7ac42c142260295108e744e33a0c1", - "0x000000000000000000000000000000000009228de1a4fbd3de4d757390f162da", - "0x00000000000000000000000000000067656846b7e2309e7c18c1cce38675bb00", - "0x000000000000000000000000000000000029e7406191ce46a9babc6ac5ff12cf", - "0x00000000000000000000000000000032e79eca379410f7ec358f9da21bac9fa9", - "0x00000000000000000000000000000000002c817548c195702d46fafe6ccd4faf", - "0x0000000000000000000000000000004fbb48b68f274f27d30cdcb82ee7cac9b2", - "0x0000000000000000000000000000000000068f9a71089873a24f8351d1e70d97", - "0x000000000000000000000000000000795c4af1416754d9625f084be947a93c64", - "0x000000000000000000000000000000000024e4ffd72d451203c5bc7d04a27116", - "0x0000000000000000000000000000008ca18e089457f9cceb58c823a944b03f26", - "0x00000000000000000000000000000000000422b4f22af36e628698a6865ddecd", - "0x000000000000000000000000000000fb52c4f612125db4012ed8a2e84e1d2c6c", - "0x000000000000000000000000000000000019dc534f8dd81d19f72590c6e1fb8e", - "0x000000000000000000000000000000fa01f84fdc11a5d03b14bee3a99a680c37", - "0x000000000000000000000000000000000022dad727328995272891d530216d61", - "0x000000000000000000000000000000b5f4bf23591d8b2447d60d61737c2c36bf", - "0x000000000000000000000000000000000002e2a075eaa9f4dd89c257af6cbab0", - "0x0000000000000000000000000000003561668a93cb72e95a340771ddc66e9c1a", - "0x00000000000000000000000000000000000026940a62997474ab260b2841eafb", - "0x00000000000000000000000000000075c66b2eeb9c27b8611335bafd53ed5e6b", - "0x000000000000000000000000000000000020720351df147e866486a5db6e8bf9", - "0x000000000000000000000000000000fa65c2574867f702f76ee91bf9721891f4", - "0x00000000000000000000000000000000000550d2b73072fe8ebb458db32bc272", - "0x0000000000000000000000000000005e45bf32b04d43d7d9e082552a7c6e3aab", - "0x0000000000000000000000000000000000156b9320b1c02a5ae4d5245079ef93", - "0x0000000000000000000000000000007dd31f38bd2d2529ea3d3537bddc4c2d8d", - "0x00000000000000000000000000000000001460b51e2428e23b3d5f0e0623a2a5", - "0x0000000000000000000000000000009973429339ccb353bf51ed2d258ab0c734", - "0x00000000000000000000000000000000002675f20f2783781dae8b8ceee4b947", - "0x000000000000000000000000000000f19f97ae0fa6b47d95ce8c99deff02825f", - "0x000000000000000000000000000000000008ac106283f7faa2a9523d6d3b6a65", - "0x000000000000000000000000000000ece35a6af0338418a01080dc9e20d76e8c", - "0x0000000000000000000000000000000000223186953dd9de4ffdf175c62fe17b", - "0x0000000000000000000000000000002cdb64ca6e6e3ae04f48e894d029463405", - "0x00000000000000000000000000000000002934e04d3c42257882836e1cd3c909", - "0x00000000000000000000000000000010928865f0c2b283d43e700debac484ce4", - "0x00000000000000000000000000000000001267fc086b1485e85ea3a8d0cd75de", - "0x000000000000000000000000000000f9cdf1ac824371f6761a75f1208a9ddfad", - "0x00000000000000000000000000000000000e0fdaaebe67864d0d5e9eadb9efc5", - "0x00000000000000000000000000000017a6567e4f95497a889a7d72f19789b322", - "0x0000000000000000000000000000000000288f112dfaacee642430e19b6959db", - "0x000000000000000000000000000000a16e293e7727181d85a1c007ac038f36fb", - "0x00000000000000000000000000000000000dd700294b3714e9f7b0e14b5d532b", - "0x0000000000000000000000000000008ac20e1e987aa4c40027fd4f9efd59fa05", - "0x0000000000000000000000000000000000154ef731c875ef2164785e8ff31c30", - "0x0000000000000000000000000000001911ff084795513c823a4fda7a38335e8c", - "0x0000000000000000000000000000000000302c54e62b85bc435230433f081725", - "0x000000000000000000000000000000c4779e7986fcf2ef065416576329f1c47c", - "0x00000000000000000000000000000000001ebeffb4dbaac41852670eeb9ede9d", - "0x000000000000000000000000000000f030e0b5c911d86aef1ef86fff6c540d91", - "0x00000000000000000000000000000000000bae7a5c23fa083c7231387cf8d78a", - "0x0000000000000000000000000000001942fc1702b7a2afec85c9a8473d44c487", - "0x000000000000000000000000000000000000210966c79a864b7f987cf31ab127", - "0x000000000000000000000000000000f77fcafc38ec30e711c06c5755d04144d6", - "0x00000000000000000000000000000000002db7460ea7c5e17383e5d1b8affeb4", - "0x0000000000000000000000000000007f430ccebae1fa38c07b989cb9ac4ccb2d", - "0x00000000000000000000000000000000001d815d190889cb37cacc2ccf4cfc96", + "0x0000000000000000000000000000004250f6426b0efb654a2e878d9c3ff23c6e", + "0x00000000000000000000000000000000002bfd8f4382900b8345f239cda795e7", + "0x000000000000000000000000000000ba728fcdfa1ef4340ac62b3c719a69cca1", + "0x0000000000000000000000000000000000077655cd6bf818dc84a955cf473e79", + "0x000000000000000000000000000000fc44e5f9270084b2dc12ef190f4ca26bd5", + "0x00000000000000000000000000000000001ccebf6e27b5d5095ca1b790f8139d", + "0x000000000000000000000000000000e7a212b1488ec7ae5879f55227181fea10", + "0x000000000000000000000000000000000014aba53fbfe5d793d153c6df20f423", + "0x00000000000000000000000000000043841a89c4b6827d9ae2d05213ce9e50bc", + "0x00000000000000000000000000000000001d2cb7ae1aac3816357471123f1163", + "0x00000000000000000000000000000097dfdee439b1565be6efc0773bf4a0bcb9", + "0x00000000000000000000000000000000001c2eaa8500a8367ddb4b62266f6924", + "0x0000000000000000000000000000007ad4e621cd0601cce24b27acceff8799f6", + "0x0000000000000000000000000000000000291f4b3b27535dd93a27d0896b987b", + "0x000000000000000000000000000000d76180c25e1c2dc496c983a3dcc8ab9d97", + "0x00000000000000000000000000000000002dd0f3dc30d16bd1cb42116273cba5", + "0x0000000000000000000000000000009b1fe844214230e9baaa510e975e80f51c", + "0x000000000000000000000000000000000005c87fb0cd37141ffbe267f5dcabec", + "0x00000000000000000000000000000005ebc9fb1e97c816de73c19dad72845b84", + "0x0000000000000000000000000000000000150db8f5887a532beee680adb748d2", + "0x0000000000000000000000000000000c4ba88f129310f3552fa13630febe9cec", + "0x00000000000000000000000000000000002cfc740679297c37ccf9113c0f85c1", + "0x0000000000000000000000000000005a8652c1ec43aa6c1217d14cfdd521680a", + "0x00000000000000000000000000000000000cfdab6b00b809560041b4629813ad", + "0x00000000000000000000000000000014fd28cff8a4ed2297d27f894a1f9600e4", + "0x00000000000000000000000000000000000ca2f7ff16e5314334f827942a4292", + "0x000000000000000000000000000000c89a4f3d5ffac04c1cfeb4d09ef199ee48", + "0x000000000000000000000000000000000005ea78f1eca3bc3b5a611b4f749df0", + "0x000000000000000000000000000000d1f08b173eb07958a08b2426de41834b2f", + "0x000000000000000000000000000000000017c32cc885074be4862eff377bc659", + "0x000000000000000000000000000000c17eb945dd0ff429716ceb2b6aa7bc8b51", + "0x0000000000000000000000000000000000134609a12038270e1ee036f4a98102", + "0x000000000000000000000000000000dbed9ddb9119022eaa382153b555087fb7", + "0x00000000000000000000000000000000001cff20144005ad526e356ed9e23a76", + "0x00000000000000000000000000000061ba423f482aa73459dd4296ecf9d3c146", + "0x00000000000000000000000000000000001bdcd6744fda53ab44f59ac9d57abd", + "0x000000000000000000000000000000d0faa474ffa63d9ff106d1dff276beb804", + "0x00000000000000000000000000000000000f16e8cf0caa87891fd2cf97dcf6cf", + "0x000000000000000000000000000000e2f0237a7722976d9edeb5f2da3ac02699", + "0x00000000000000000000000000000000001fdb03311172bf1bf36ed308e07c84", + "0x000000000000000000000000000000791b8a2b60ca324b9bf498d2542fc0cc14", + "0x00000000000000000000000000000000000696b3a715e43e3eed592b9f1f8f22", + "0x0000000000000000000000000000003002e0cdafa4c05dcbf24f05284ecd89ba", + "0x00000000000000000000000000000000000196998cb2840021068cb5844cc4c2", + "0x00000000000000000000000000000008232c4db5d61c991542d66b7f9a06ca9f", + "0x000000000000000000000000000000000023fa036216c753966700559f154121", + "0x00000000000000000000000000000006c5c3dd5a296f4ecef5336886ea74b352", + "0x0000000000000000000000000000000000299d4861002065f6446664f0353241", + "0x000000000000000000000000000000808821f6ef96cdb0fb3e425e1d290ab434", + "0x0000000000000000000000000000000000059dbb2a3bd709e33d5aec1bbbc770", + "0x000000000000000000000000000000e832d84f327527a2d87cf09e48ed645e44", + "0x0000000000000000000000000000000000110b3bac89b975b1218a0036d65951", + "0x00000000000000000000000000000089d8fce004e77c3fd855e247764bc55fba", + "0x0000000000000000000000000000000000098defdf405b0b4248b3cee86501a0", + "0x0000000000000000000000000000003b81c04d831584c715c3e6d0fef0750ac7", + "0x00000000000000000000000000000000002952dcfe1b15620761d9fe280fa0ea", + "0x00000000000000000000000000000066389af526aa59706131b8ef604cc7d266", + "0x000000000000000000000000000000000025240014d4f1ac5a17827ead4aed1a", + "0x00000000000000000000000000000053b38877dbb6cfbe0fece6b1a9e4c40240", + "0x000000000000000000000000000000000025fec6b1fdff6b20c0a26b968bcd0d", + "0x0000000000000000000000000000007e57f27d7dca724ac98315c80223f9d1ba", + "0x000000000000000000000000000000000029009b95640911ef235061d50e7754", + "0x000000000000000000000000000000591aa57eee2939d348e5101ad5c385f8e0", + "0x00000000000000000000000000000000001506c612940b1c75b094e89961d371", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x0000000000000000000000000000003ef880305f8c4beb28f1f80f7cc0e7d3f2", - "0x00000000000000000000000000000000000483fb33808b70b4a034dca390e659", - "0x0000000000000000000000000000003d66a145da1b03e8dc9914efd105dac5e6", - "0x00000000000000000000000000000000002a25301cc6f9e024e87f0b58047b1e" + "0x0000000000000000000000000000005445417fe0bac619f76c6fa2e391830a69", + "0x0000000000000000000000000000000000186e451126813a338415e670ae8ed9", + "0x0000000000000000000000000000008394b1364e2f2685eb9500f29dd439be67", + "0x000000000000000000000000000000000004a58e8752bc2afb7f5fd5f9f50e60" ] - hash = "0x17df297aed2208dd702c20c31bd85e54e0984ff5f2e4c2032f507c647b261849" + hash = "0x12df7b0998c5749280dcfd3ac20941b9aafa83dca07c6de242a8b0de1d18982a" [[inputs.previous_rollups]] proof = [ @@ -1097,64 +1100,64 @@ new_archive_sibling_path = [ ] [inputs.previous_rollups.public_inputs] - num_txs = "0x0000000000000000000000000000000000000000000000000000000000000002" - out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x000000000000000000000000000000000000000000000000000178e8d90a7e40" - accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000013d76e" + num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" + out_hash = "0x006bd7618b0cf7b40e3f107022eee2d411bcc5850fbb774dacc46a15957659c4" + accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" + accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000006b6c0" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.last_archive] - root = "0x1e35a5f0880d3f9c06160e3cec0b592b4d5578dc26ba20825c74d25febd9d373" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000013" + root = "0x0fb2945d3438d906d88a216364dbfe9760e96001343468610e01d18182d493d0" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.constants.l1_to_l2_tree_snapshot] - root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000004c00" + root = "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" [inputs.previous_rollups.public_inputs.constants.global_variables] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000b5668f8c" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000013" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000047" - timestamp = "0x000000000000000000000000000000000000000000000000000000006a19e858" + chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" + version = "0x0000000000000000000000000000000000000000000000000000000000000000" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000001" + slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" + timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" [inputs.previous_rollups.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000012fef9e0" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x179cedf1253f333366bf5b349856f2027e8a808b3db82e9037d28c32cd2a83ba" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000300" +root = "0x2590f2aab19dd791700b4a43d3f52bb88ef2409a3731da8e848663559202e4c6" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x1d4c8d23eba008917eb4d7ef6d2c72d05ca944782d3cdd1a1872661a15077f50" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" +root = "0x18935581a8ed73d08ffd00386fba55ba6c89f3ab848a76b8fedfa9034cee0454" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x00155e9f0ca61e80b9881cbc383e52877b3a62ddff6d27f95eeb18c27af4506d" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x179cedf1253f333366bf5b349856f2027e8a808b3db82e9037d28c32cd2a83ba" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" +root = "0x01612d24a146efc2df9d815a2f733c17486304424577ffb4232fe4cb0c94e1e7" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000040" [inputs.previous_rollups.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x2993430b5b47e128ac52d136a44c16befac869fbf71fb324f1388484f25a61dd" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" +root = "0x2d9141720c810b831246b0e50c0ad9d4b935418ba2ae8a06c395bb80340ee684" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000c0" [inputs.previous_rollups.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x13dd5ee524544a9c39b0239fa48d14a2a0c1ffbc64277d99c6fb392d96309d49" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.start_sponge_blob] num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1175,128 +1178,128 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000012" + num_absorbed_fields = "0x00000000000000000000000000000000000000000000000000000000000004cd" [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ - "0x000000000000000000000000000000000000000000000000000000000000076c", - "0x2892e48f90bbb2a64243dd7e151e1ac6b4aef84147b068f41d996362443d84fc", - "0x00000000000000000000000000000000000000000000021e0ee2c8f625a11940" + "0x00000000000000000000000000000000000000000000000000000000b7d1b44d", + "0x00000000000000000000000000000000000000000000000000000000b7d1b44e", + "0x00000000000000000000000000000000000000000000000000000000b7d1b44c" ] state = [ - "0x21a73f6cd682954d563d9865127273411fd0f914a77fd538a6fb35bb105f7afa", - "0x10cffee3f27382cdb8511cfe4a57d5ad07e7dd839af93a85dd48bc5d09c79800", - "0x27e13d15a389eacebc1c4293454737c93fa843896f74e15a937310c6d66a3816", - "0x2418e6cdc89d3a9ed130bc4e14cafe4cf785d37aafe98c196c1e4531f49e0ab5" + "0x2fa83d6c5d881ad9b0086a5463244c0a72da72ed8f009de9a5fe486317c47e23", + "0x04f903aae0f52fce085744c5e4614ff42045b25f18752f07474127bd11f94433", + "0x1b4f10fed2a97159755abdbc1a1519717ca0a06f7f9267c25a621ab01e0921a6", + "0x2d85c39ec02ff05b117a9ebaed609a388d9a2f9cf404aed6990df98bf604ee07" ] - cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" + cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false [inputs.previous_rollups.vk_data] - leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000009" + leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000007" sibling_path = [ - "0x031dc675c1e1a56fdd2bd6a46a5ad855ad0f2ae1e69b0b99c6f7dcb45367d435", - "0x2136af42d41c58f3fd528f4e88c2de5152c2bb251a3c4d8950d4401a0c8ae6ff", - "0x02d4017a1d1c142d1fdf34bf701748bd9db29906e0114ac657648a51d10b6799", - "0x011456fad1796174e1658f702f07521d4464d00fb76f0ad599352cdf34aec4d1", - "0x0b96ac97088e29b87f5cd854aa1ff5c1b518a7845a3404916b468d5730444fd0", + "0x1afeab54b4686d62191a8f0c826b71c2b5b6aa65543b8df98662bacb99d93b43", + "0x0a2d5d1c88992fa153310bc96af4c750c81353526f8c7dfe2b069ed57136e696", + "0x14504afd38f5b621163f09ccf2f7b1e09bd735785a0e5601c72674b46e883003", + "0x1ef0a62bd82a38ab2d47568b10a9de48c4983e546346b82af8a6fb2862592a98", + "0x2ee9953b5b298d73efa51c84799edd8c318088ed161eb0404afbec8d88e5cf1a", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] [inputs.previous_rollups.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000000015", + "0x0000000000000000000000000000000000000000000000000000000000000016", "0x0000000000000000000000000000000000000000000000000000000000000042", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000004a89413217aa26a02d1673611c718e3f40", - "0x00000000000000000000000000000000002a74011d7b1576ee63e514f36d2ca7", - "0x000000000000000000000000000000fc6ccc829e509138e5ecaf67c0a21ae3ea", - "0x000000000000000000000000000000000025ff9c29534f6fc12896ca920730a7", - "0x0000000000000000000000000000002709461b8a6badd93121132b357506ad42", - "0x000000000000000000000000000000000018979b97518955d80ea51e8795dd65", - "0x0000000000000000000000000000002086ceef11774f164dc1826039e29a08b2", - "0x000000000000000000000000000000000002706e4d78635695a83b8ee7fe2852", - "0x000000000000000000000000000000f48fa484144b68aabb48f3c67447f619c4", - "0x00000000000000000000000000000000002c00e7b78d2dbb440843c2b8bb9d5c", - "0x000000000000000000000000000000de8ddbcaefce22d2dd0f1a9cf8505ad74c", - "0x00000000000000000000000000000000001d75f1ae876350f117464d47581ea3", - "0x0000000000000000000000000000004bbb761087bee09db612cd1683c9991da0", - "0x00000000000000000000000000000000000a1f0b2bc8f3940a7767ca70f869dc", - "0x000000000000000000000000000000e4d6e66fe44086d4e95043082d7660511d", - "0x00000000000000000000000000000000002857e0d300379ee0a5657b0628ac68", - "0x000000000000000000000000000000377899dd24559db542bb2da421c7aa5b2e", - "0x00000000000000000000000000000000000f954842d0809f870031c014244349", - "0x0000000000000000000000000000004500fe7e27caadb3185ec74d1d8c9c23c6", - "0x000000000000000000000000000000000011e0156211bae38b72e70774aad837", - "0x000000000000000000000000000000d64abf570d80329272f3ac73e763a56074", - "0x00000000000000000000000000000000002221eb3028e13e02824a2cdbebb343", - "0x000000000000000000000000000000e6ac6ff13cde0a60ccaefe09ee9f6e4951", - "0x000000000000000000000000000000000000042f684a98fd028e51ed457fb6d2", - "0x000000000000000000000000000000b1795305b34f2f47e00fefef8e3ff03117", - "0x0000000000000000000000000000000000219d203b492d7debf5d8e7df9d2059", - "0x000000000000000000000000000000bfa96395c8478bacb512c36590c5b7b901", - "0x00000000000000000000000000000000001088537efb9ccd4bbaf4c519fb15ef", - "0x000000000000000000000000000000a63a7e103f77ddd62d4a2aca5a18595bc2", - "0x00000000000000000000000000000000000ffe27c096d9d37613d28524ee24bb", - "0x0000000000000000000000000000008b2aa8f75dabd90ee7f9d45da83109530f", - "0x000000000000000000000000000000000029197cfde9aa521758643b088ca6d9", - "0x0000000000000000000000000000000c60bc3c5493f56066aeaf379eff701730", - "0x0000000000000000000000000000000000045592a6815997cad253c4d4360857", - "0x000000000000000000000000000000fe9bb200d66804b00fe6af2cbd06b90be1", - "0x00000000000000000000000000000000002dfca6770dcd191d2cdcd25959b927", - "0x000000000000000000000000000000d638a6a9b28e4cda3be3200ca416f090a6", - "0x00000000000000000000000000000000002912073cf985c4e403f2e81c78f0c4", - "0x00000000000000000000000000000017b813b81461e0af074adb3ee3a06a2dbd", - "0x0000000000000000000000000000000000193d82b9851cb7b79be69631dbed9d", - "0x000000000000000000000000000000585192fdba2a34dfe3cf05bc74f14aa04b", - "0x000000000000000000000000000000000019c364971252aebd3f848754f68cc0", - "0x000000000000000000000000000000d6c225cba31833473b544e439b76525948", - "0x0000000000000000000000000000000000172a802a4ccf4f87a056c01096e603", - "0x0000000000000000000000000000008a86fac91395708a05f2bf567c42624355", - "0x00000000000000000000000000000000001c5122e5aa5acc0563a65f2fadb548", - "0x000000000000000000000000000000c7ba316af264f3d0c9ffdfa37abe8449af", - "0x00000000000000000000000000000000001e4e1e04112cc99e43eaa819700377", - "0x000000000000000000000000000000171f9151f102c97ebaf8155f92f2818ad4", - "0x00000000000000000000000000000000002b9c517d5a5ca458d9a42ae50a21e3", - "0x000000000000000000000000000000a9ab641f6b11aa7b449f9d162ee4b41c4a", - "0x0000000000000000000000000000000000083f917d6f05453ad4449a07cb2db9", - "0x0000000000000000000000000000000fd8ba5a6cbe569669fa504b146a11e1c2", - "0x00000000000000000000000000000000002d96c1b0fb6b92bbdf9028c918ab12", - "0x00000000000000000000000000000001b66bc49279fdcee016dc50f445385e2b", - "0x00000000000000000000000000000000002b27073221dc103e65d22ef60f7565", - "0x000000000000000000000000000000d9f07543a10843697cb26aeb1e0fa41864", - "0x00000000000000000000000000000000001af76ea4d294fd82e82426b2247091", - "0x000000000000000000000000000000c95c82ccbed1535404379be4d37b661a7b", - "0x000000000000000000000000000000000004c2eb0e09fa417808cf776e09d9bd", - "0x000000000000000000000000000000f7ecd4caac36af30f57c88f8aa8758994f", - "0x000000000000000000000000000000000007a8712e54abef6a5800fb6c9f797d", - "0x00000000000000000000000000000032261b0e19195842c9e13efbf6677d3e7b", - "0x00000000000000000000000000000000001a77dd002f088f48be1c495240a4f4", - "0x0000000000000000000000000000007a9784569003accf3b18631652c41efd9c", - "0x00000000000000000000000000000000001a3bc8c8561c039ee8dd33dcf97bfb", - "0x0000000000000000000000000000008a638165173e41c0baef2a580cca67198a", - "0x00000000000000000000000000000000000ecceac0ea7acc23801d0b99315ed8", - "0x0000000000000000000000000000009c864dd9c99b9871c3cfb939d4197834ef", - "0x0000000000000000000000000000000000131aac5ec5b228a425c6a1d954f41a", - "0x00000000000000000000000000000011cae94a9b789855cde56a72734268be61", - "0x000000000000000000000000000000000015c8120597f6b5302046b58b445198", - "0x00000000000000000000000000000058f4333384b72ecdfc0a66a3b34a9870b9", - "0x000000000000000000000000000000000013db543b79ebed9f63c95904240a6e", - "0x000000000000000000000000000000c71b7fdef4cdc241adcddb23c473ad222c", - "0x00000000000000000000000000000000001823079555cf386247dbe609c2fd06", - "0x000000000000000000000000000000e46930d371eafddab0c6053b1ae159c463", - "0x00000000000000000000000000000000000c0bc40e324750ba1c752c09daed25", - "0x000000000000000000000000000000137e3a04a63f70a2f6971ca99b7844dc67", - "0x000000000000000000000000000000000014c957a738079d071b3d181b99c0e7", - "0x000000000000000000000000000000815544c36c3b22a89d3a78b3553bec6f68", - "0x000000000000000000000000000000000009c2204fe3bd67f8872d6e75792d19", - "0x000000000000000000000000000000d3e085f947f7511f7d7f87a504e99f5546", - "0x00000000000000000000000000000000001d1e1a783d6fde70d844bc2c83c3ae", - "0x000000000000000000000000000000109b3d637fe0d1d5013b3710fc1cddf89f", - "0x000000000000000000000000000000000006101682027f56bffe9486a672801a", - "0x000000000000000000000000000000797993b995dba1e0e98de672a76a776c3f", - "0x00000000000000000000000000000000002765c3ceee9f9d0f11bd159621fa1e", + "0x0000000000000000000000000000003f557273f3723ac427671e7e0241709f42", + "0x00000000000000000000000000000000001a4c7c79f45cd9c3b2730b1014fb2c", + "0x000000000000000000000000000000a0758982a879da262fb5d4a283eb0b2fbd", + "0x00000000000000000000000000000000001cd980c7d658817fc07f56422786c8", + "0x000000000000000000000000000000ad8e1411b04ae1b0cccbeada5de1aef99e", + "0x00000000000000000000000000000000000c032e5ca933e153dc05ea96b3f9a7", + "0x00000000000000000000000000000025579ed09d568475f6a9ea541ffc1aa06e", + "0x0000000000000000000000000000000000070a014593ec2611c76610a7ac31e9", + "0x00000000000000000000000000000075f511068970271dc3805b753a601ff6bf", + "0x0000000000000000000000000000000000087d083bd0a030d3e8d20a44cac510", + "0x0000000000000000000000000000008a1d365a7e9c0cdce156eefc77f82c324b", + "0x00000000000000000000000000000000000caa3c2fe3eec6d3abba790f3fdb0f", + "0x000000000000000000000000000000226b13400df89aa52dc04c9ba11ec76d0b", + "0x00000000000000000000000000000000000f98a2766e0e9bfae8946b711ef013", + "0x0000000000000000000000000000003795e58e429596f55168217c1397f38a8a", + "0x00000000000000000000000000000000002e1f8ca27b32c2497816dd49c983e2", + "0x00000000000000000000000000000024169a17177b075798734095f9cc8daf09", + "0x0000000000000000000000000000000000221931eec1149ebc68293392b42121", + "0x000000000000000000000000000000ba47588390fa3d72b699d8b0917b7e3406", + "0x00000000000000000000000000000000000e598a4916409aaf3745b4c6185f93", + "0x000000000000000000000000000000b749616c0462fced8081f284a03518d1a8", + "0x0000000000000000000000000000000000241ceb3abe3289083ce8c8c8bc28d0", + "0x0000000000000000000000000000001d9bd025c3e2e26266d41ff2e384400b47", + "0x00000000000000000000000000000000001e259846a94808bed66227cf262eff", + "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", + "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", + "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", + "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", + "0x0000000000000000000000000000005eab99fc5c34cd0a9cf32bc53d04beea68", + "0x00000000000000000000000000000000002eea4190ba69ef934f8be916a217a9", + "0x0000000000000000000000000000005429ed84e5768b172fc483197bcfb786df", + "0x00000000000000000000000000000000000387e378a43d625a53900bde3ff4ad", + "0x0000000000000000000000000000006073a1bf82ba61c51ce96d6cb7030a22b4", + "0x00000000000000000000000000000000001ebaecf236ff2932e24e68d8e1be3b", + "0x00000000000000000000000000000006abf6369ec441190fb054e33c764fb032", + "0x00000000000000000000000000000000001bdbd38b557395b30427017524ba12", + "0x0000000000000000000000000000001d7bb00201b0efb3035f5048c3df84c772", + "0x000000000000000000000000000000000024548bcd56a9ef16c14feae610f806", + "0x000000000000000000000000000000e5655012ed18fcd1d8e339226dd0ba4078", + "0x0000000000000000000000000000000000227c2110109edbbc3955d0465bbc22", + "0x0000000000000000000000000000007bf8464ca9aa703f1e8a25d6e20221d3e9", + "0x000000000000000000000000000000000024963361ceb6d7756c3c2c42a845fe", + "0x00000000000000000000000000000048c96ec4485788f3ccdc37c4ae2a71f1a4", + "0x0000000000000000000000000000000000262b455b6cd2796327e461304e18f7", + "0x000000000000000000000000000000f750d5b7b2337529d40ced8d774f0283e6", + "0x0000000000000000000000000000000000120ef244fda086bafa6f4eccaf97fd", + "0x000000000000000000000000000000fc90ae3789baa78d1d13220b4f34c98f4e", + "0x00000000000000000000000000000000000d60e7b02c8af3cfd72fe199d6a8f6", + "0x0000000000000000000000000000000b9c9b15d9b55b4a49d449b2cd9dbf2dc2", + "0x0000000000000000000000000000000000129d1259178a85eee0f4d95edf2756", + "0x000000000000000000000000000000e8f0abccd4a45c69a68832f6ef8851f04a", + "0x00000000000000000000000000000000000b977396722d8361fecf325e0e32bc", + "0x000000000000000000000000000000645575d035dbf0dc7a5012097524a972d3", + "0x00000000000000000000000000000000001b4b534173d70982fcd6c9544d725d", + "0x0000000000000000000000000000000410cceb82ec7354128465ac80a1ffa862", + "0x00000000000000000000000000000000002acddfed4a484b2d862b4ca275b4d7", + "0x00000000000000000000000000000084b9b52eb51b2b0d05665210b6ebc7576e", + "0x0000000000000000000000000000000000107d0ac36a83cf303113a287965d49", + "0x00000000000000000000000000000001c895891c542e26e8b08d7813dd4512ca", + "0x0000000000000000000000000000000000097e0e59497ca7221fee90d4525cf2", + "0x000000000000000000000000000000f0639c87f66ace434ddb4fe65ab243bfde", + "0x00000000000000000000000000000000000c3c99921dee4f0506f5127627f327", + "0x000000000000000000000000000000aa1c283b5ed1b8b43addafd2bb63ecf30d", + "0x00000000000000000000000000000000002b9dc475b4a10275550d8b8d8fbe3b", + "0x0000000000000000000000000000005912626e15198db5a633afddf51470ad5a", + "0x0000000000000000000000000000000000002135d3d72fcdf497f299a5984448", + "0x000000000000000000000000000000167fa61cf8bb1dbda902c90466acb60a96", + "0x00000000000000000000000000000000001fa5748a7b4a4f72346a5b4b9aae32", + "0x000000000000000000000000000000cf990fc7f643af435bd552d6c21f4f12d9", + "0x0000000000000000000000000000000000170bb10fc59004dae5b55d43a9f478", + "0x00000000000000000000000000000019a1d0ed8d637f1c2afba5fdd385d5fcd2", + "0x00000000000000000000000000000000001aeb885acef6da1ab84b4be20c558c", + "0x000000000000000000000000000000a11da3a0f3c7903c1b8119a3727c1d92a6", + "0x0000000000000000000000000000000000054448cc8cc704196f0ee4b52a9d63", + "0x0000000000000000000000000000000e44ab863c917d81428b86f84af8cd1a25", + "0x000000000000000000000000000000000024d7a2087fcd46a69fd94e824dfff2", + "0x0000000000000000000000000000009f11cf3ef8d440c8e83a8eacfe48155eaf", + "0x0000000000000000000000000000000000255afe02ffbc3178db86e228039ff5", + "0x0000000000000000000000000000004a9ad3947e4b5066ad0b4a731d994fa3a4", + "0x0000000000000000000000000000000000092b00146ab98c77c752c32098468c", + "0x000000000000000000000000000000165a72693efa48c7ecebf3f1fea42db4a6", + "0x00000000000000000000000000000000002e108deabceced2338790d19ba16b2", + "0x0000000000000000000000000000001722f48e7ed1f6f73faaf4007e165811f2", + "0x00000000000000000000000000000000002d43d6af66193fced48fd6f89e74f8", + "0x000000000000000000000000000000ac5108d90de1d0e6ce3d6186c769e8b2aa", + "0x00000000000000000000000000000000000de8c8ad0bfcca457220d03c5eb698", + "0x000000000000000000000000000000ab4c7dff5c06e3ad269e8e48dcb13f0a20", + "0x0000000000000000000000000000000000139a57f59fdf3ec29554b9179adc03", "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", @@ -1317,12 +1320,12 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x0000000000000000000000000000003ac18237da8d96caddaa1c49a178b8b47d", - "0x0000000000000000000000000000000000174dfd5c124039dc6e2a38f0f99775", - "0x0000000000000000000000000000005790969811e28ed4e16d2729036649f344", - "0x00000000000000000000000000000000000f9c6e462a5b03759c42538b9b7c36" + "0x00000000000000000000000000000027dd7a7146d1c4ff9332e930ec54b6ea2e", + "0x0000000000000000000000000000000000251eb2367a907e55626a07bbea7e2b", + "0x000000000000000000000000000000ed074fc7f9cd09872a83d8c368c93a0725", + "0x00000000000000000000000000000000002621701db780a70b161ef185f06af9" ] - hash = "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa" + hash = "0x0ce359dde10cdbdebf123dbbd5a8f6b061ab6e6ee29b39d2d91896a111a05957" [[inputs.previous_rollups]] proof = [ @@ -1810,205 +1813,205 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 [inputs.previous_rollups.public_inputs] num_txs = "0x0000000000000000000000000000000000000000000000000000000000000001" - out_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" - accumulated_fees = "0x000000000000000000000000000000000000000000000000000094f4fc8c8a80" - accumulated_mana_used = "0x000000000000000000000000000000000000000000000000000000000007d76c" + out_hash = "0x00abb50b8989a7f19fd4526d43e15a1ab5d2a43af413cc8ca91e82a3c8828625" + accumulated_fees = "0x0000000000000000000000000000000000000000000000000000000000000000" + accumulated_mana_used = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants] - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.last_archive] - root = "0x1e35a5f0880d3f9c06160e3cec0b592b4d5578dc26ba20825c74d25febd9d373" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000013" + root = "0x0fb2945d3438d906d88a216364dbfe9760e96001343468610e01d18182d493d0" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.constants.l1_to_l2_tree_snapshot] - root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000004c00" + root = "0x18d6aae3ab4a271abd590cb98267825b70de1e9e5c339356e94ea5fc7feba64b" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" [inputs.previous_rollups.public_inputs.constants.global_variables] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000b5668f8c" - block_number = "0x0000000000000000000000000000000000000000000000000000000000000013" - slot_number = "0x0000000000000000000000000000000000000000000000000000000000000047" - timestamp = "0x000000000000000000000000000000000000000000000000000000006a19e858" + chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" + version = "0x0000000000000000000000000000000000000000000000000000000000000000" + block_number = "0x0000000000000000000000000000000000000000000000000000000000000001" + slot_number = "0x000000000000000000000000000000000000000000000000000000000000000f" + timestamp = "0x0000000000000000000000000000000000000000000000000000000000000186" [inputs.previous_rollups.public_inputs.constants.global_variables.coinbase] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.global_variables.fee_recipient] inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.constants.global_variables.gas_fees] fee_per_da_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" - fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000012fef9e0" + fee_per_l2_gas = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_tree_snapshots.note_hash_tree] -root = "0x179cedf1253f333366bf5b349856f2027e8a808b3db82e9037d28c32cd2a83ba" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000380" +root = "0x01612d24a146efc2df9d815a2f733c17486304424577ffb4232fe4cb0c94e1e7" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000040" [inputs.previous_rollups.public_inputs.start_tree_snapshots.nullifier_tree] -root = "0x2993430b5b47e128ac52d136a44c16befac869fbf71fb324f1388484f25a61dd" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000400" +root = "0x2d9141720c810b831246b0e50c0ad9d4b935418ba2ae8a06c395bb80340ee684" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000c0" [inputs.previous_rollups.public_inputs.start_tree_snapshots.public_data_tree] -root = "0x13dd5ee524544a9c39b0239fa48d14a2a0c1ffbc64277d99c6fb392d96309d49" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x1a90881964e28a92a419f1d8361c14ac147b6f9175c04fdf57dadf0d7ba781c9" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.end_tree_snapshots.note_hash_tree] -root = "0x0183d349e7a7df54b6278afe7f3565aeb9ff1243daaec9d3df3dd72a4a1dc892" -next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000003c0" +root = "0x2326bf220c6839c1856478f0c082f0c5883b2baed0bc222a1fa5e1244184c82b" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000080" [inputs.previous_rollups.public_inputs.end_tree_snapshots.nullifier_tree] -root = "0x08c4f1a125d1751de5d51b73d0b478f4a4aa223e504fc89ad616adc0010bf7a3" -next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000440" +root = "0x1e1c597744057b88e39a9780ed087c39b1fc42864e05ef03a59ebd9e96b70b00" +next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000100" [inputs.previous_rollups.public_inputs.end_tree_snapshots.public_data_tree] -root = "0x0fadd9436f2734ce188b1d3df2421ffea5d99ce2d7e17ad4936149e18cdd7540" -next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000008b" +root = "0x2306af8b455a9cbf87331182183be8c0759fd5e1a4f606cea8a9e24efa461759" +next_available_leaf_index = "0x00000000000000000000000000000000000000000000000000000000000000bf" [inputs.previous_rollups.public_inputs.start_sponge_blob] - num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000012" + num_absorbed_fields = "0x00000000000000000000000000000000000000000000000000000000000004cd" [inputs.previous_rollups.public_inputs.start_sponge_blob.sponge] cache = [ - "0x000000000000000000000000000000000000000000000000000000000000076c", - "0x2892e48f90bbb2a64243dd7e151e1ac6b4aef84147b068f41d996362443d84fc", - "0x00000000000000000000000000000000000000000000021e0ee2c8f625a11940" + "0x00000000000000000000000000000000000000000000000000000000b7d1b44d", + "0x00000000000000000000000000000000000000000000000000000000b7d1b44e", + "0x00000000000000000000000000000000000000000000000000000000b7d1b44c" ] state = [ - "0x21a73f6cd682954d563d9865127273411fd0f914a77fd538a6fb35bb105f7afa", - "0x10cffee3f27382cdb8511cfe4a57d5ad07e7dd839af93a85dd48bc5d09c79800", - "0x27e13d15a389eacebc1c4293454737c93fa843896f74e15a937310c6d66a3816", - "0x2418e6cdc89d3a9ed130bc4e14cafe4cf785d37aafe98c196c1e4531f49e0ab5" + "0x2fa83d6c5d881ad9b0086a5463244c0a72da72ed8f009de9a5fe486317c47e23", + "0x04f903aae0f52fce085744c5e4614ff42045b25f18752f07474127bd11f94433", + "0x1b4f10fed2a97159755abdbc1a1519717ca0a06f7f9267c25a621ab01e0921a6", + "0x2d85c39ec02ff05b117a9ebaed609a388d9a2f9cf404aed6990df98bf604ee07" ] - cache_size = "0x0000000000000000000000000000000000000000000000000000000000000003" + cache_size = "0x0000000000000000000000000000000000000000000000000000000000000002" squeeze_mode = false [inputs.previous_rollups.public_inputs.end_sponge_blob] - num_absorbed_fields = "0x000000000000000000000000000000000000000000000000000000000000004f" + num_absorbed_fields = "0x0000000000000000000000000000000000000000000000000000000000000a18" [inputs.previous_rollups.public_inputs.end_sponge_blob.sponge] cache = [ - "0x2fc872718a753eabf0fd9dcfc72be257ba03569e672e7c6dcb633dda12ccb13b", - "0x0e557e9901231e5ad4ee85beddee48bceb31ca278d74a21e20a99dcee734565e", - "0x001b084596ddd015eb1066c020a11ed5b4c2f0a7fc46e1492d4c7fb434e95511" + "0x00000000000000000000000000000000000000000000000000000000b7e5c34e", + "0x00000000000000000000000000000000000000000000000000000000b7e5c34c", + "0x00000000000000000000000000000000000000000000000000000000b7e5c34d" ] state = [ - "0x108e23b2fa850e4a6aaf41c40d1f120c45df7bbb110712e2646bf323c9f4b8ba", - "0x144ae868fc5441ef048fd13b4213e274ad6d169d39615a6e1ff20b401bda7a07", - "0x24265a12858400158c57d86398dcddb00f95521c6388d064acabadf539e3c31e", - "0x2c0eb8602546d6e602e3c768449e5bc208b49c87a0c3e5f2386fd982004128db" + "0x15ee3078a3ca97e7f80762c8aea2e4e40ce5cf897186e23d8c2e889f7ef2864a", + "0x1a681e43584e0ebb4064f66cacb426be2abf2f270909f1d7f49feea3fc7fe760", + "0x0d7b6a121d96ab1c81263b3f14cdce489bfa210116d5b06155bcc43b4f5babf6", + "0x28b0ae9ace3a5b131d40dfcd5f6bc923ba097bd81e10204783695c93fe132a8b" ] cache_size = "0x0000000000000000000000000000000000000000000000000000000000000001" squeeze_mode = false [inputs.previous_rollups.vk_data] - leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000007" + leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000008" sibling_path = [ - "0x1ef80142d10a45fb61f3a4192d352f1d813530777b10ca6db9613ccf5d025640", - "0x0a2d5d1c88992fa153310bc96af4c750c81353526f8c7dfe2b069ed57136e696", - "0x14504afd38f5b621163f09ccf2f7b1e09bd735785a0e5601c72674b46e883003", - "0x2973e5ec48ee239e069ec1ec648ff54c1e516c943eab48a6fbc979ccd79e4d18", - "0x0b96ac97088e29b87f5cd854aa1ff5c1b518a7845a3404916b468d5730444fd0", + "0x09b4bb0061881fc354c5fadf8dc55f36b0c67dc3b2f58a18406363dfa0b079fa", + "0x1845fc534e3908f5b352214dea27d815b79aeba389bcb13c42bbffb27da23560", + "0x057ed09233daee54f5a1b9d9f82dc961a51d4a298c62d3d0967edac6857ee043", + "0x2d425e446b233c409ab688f27e6a8d41e20b06b8b769f68be61d032ba6cba44a", + "0x2ee9953b5b298d73efa51c84799edd8c318088ed161eb0404afbec8d88e5cf1a", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] [inputs.previous_rollups.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000017", "0x0000000000000000000000000000000000000000000000000000000000000042", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000003f557273f3723ac427671e7e0241709f42", - "0x00000000000000000000000000000000001a4c7c79f45cd9c3b2730b1014fb2c", - "0x000000000000000000000000000000a0758982a879da262fb5d4a283eb0b2fbd", - "0x00000000000000000000000000000000001cd980c7d658817fc07f56422786c8", - "0x0000000000000000000000000000001116c0ef394a159d7d04035e2d2b1df210", - "0x00000000000000000000000000000000001fc719cba8f7ef0eec1facb64807b8", - "0x00000000000000000000000000000030ae5b7a71f6a3350eb91e843430327027", - "0x000000000000000000000000000000000010623eeba8739fad768943b6a32cd7", - "0x00000000000000000000000000000075f511068970271dc3805b753a601ff6bf", - "0x0000000000000000000000000000000000087d083bd0a030d3e8d20a44cac510", - "0x0000000000000000000000000000008a1d365a7e9c0cdce156eefc77f82c324b", - "0x00000000000000000000000000000000000caa3c2fe3eec6d3abba790f3fdb0f", - "0x000000000000000000000000000000226b13400df89aa52dc04c9ba11ec76d0b", - "0x00000000000000000000000000000000000f98a2766e0e9bfae8946b711ef013", - "0x0000000000000000000000000000003795e58e429596f55168217c1397f38a8a", - "0x00000000000000000000000000000000002e1f8ca27b32c2497816dd49c983e2", - "0x00000000000000000000000000000024169a17177b075798734095f9cc8daf09", - "0x0000000000000000000000000000000000221931eec1149ebc68293392b42121", - "0x000000000000000000000000000000ba47588390fa3d72b699d8b0917b7e3406", - "0x00000000000000000000000000000000000e598a4916409aaf3745b4c6185f93", - "0x000000000000000000000000000000b749616c0462fced8081f284a03518d1a8", - "0x0000000000000000000000000000000000241ceb3abe3289083ce8c8c8bc28d0", - "0x0000000000000000000000000000001d9bd025c3e2e26266d41ff2e384400b47", - "0x00000000000000000000000000000000001e259846a94808bed66227cf262eff", + "0x000000000000000000000000000000d3248421a702dda9638e46dad13e4b3fe0", + "0x00000000000000000000000000000000001cf21f7657453c15801d0412187397", + "0x00000000000000000000000000000058562beb63b9dc5e63b3330d0d537b6778", + "0x000000000000000000000000000000000026a12b601a8c44f61a5a260268bc24", + "0x0000000000000000000000000000007199e31f8f287da369fea128e7a3a700e2", + "0x000000000000000000000000000000000001a5f408cac6338291c55e6768df36", + "0x000000000000000000000000000000f3352f2dbe0655fd8c50d09b2b315a657c", + "0x00000000000000000000000000000000000c4a9e4bcd576ffa4c15fdd3fa0c06", + "0x000000000000000000000000000000386c3fe4644f1c7b08f65b9053f266d2f9", + "0x00000000000000000000000000000000001aa4e33366c74552b639ec236ad0fe", + "0x000000000000000000000000000000984208e3d07c5d67fc89e83318f2ce3179", + "0x000000000000000000000000000000000004157dff912c7d49b686210341d0e4", + "0x00000000000000000000000000000009ae85cb1d051a94e36518c10126db400d", + "0x00000000000000000000000000000000002075c74f0b031bbde6d1087e19a358", + "0x000000000000000000000000000000484451a7fb2ab0e9b00bd34cc56677a18e", + "0x00000000000000000000000000000000001d6822ab54078c6a70c7f64f3d02da", + "0x000000000000000000000000000000999315148d49d688b804973f0532cc503b", + "0x0000000000000000000000000000000000143cbc6d8201e6332f8e67c1a47117", + "0x000000000000000000000000000000f43d85abb6c2585c766a78bf0e3c3fad8e", + "0x00000000000000000000000000000000002a1ee278ead8e89dcf539268d6ecf2", + "0x000000000000000000000000000000dae8743c5a4312a89a6b3c2294540025f4", + "0x00000000000000000000000000000000002a364e36006a3ce8c92c4f827fdede", + "0x00000000000000000000000000000052f91dbe0243024bfa93ef62f7510d762a", + "0x0000000000000000000000000000000000038e47cdc26649e46fd1d6d9576798", "0x0000000000000000000000000000006f206a04895661d3bd004222a1f8a7fc73", "0x00000000000000000000000000000000001b12a59a820d3aa543a594a1b9d92f", "0x0000000000000000000000000000002103559842aca1e08af33bb1f714ebc02a", "0x00000000000000000000000000000000001b8936a0be628b58af9859c2a851d1", - "0x0000000000000000000000000000005eab99fc5c34cd0a9cf32bc53d04beea68", - "0x00000000000000000000000000000000002eea4190ba69ef934f8be916a217a9", - "0x0000000000000000000000000000005429ed84e5768b172fc483197bcfb786df", - "0x00000000000000000000000000000000000387e378a43d625a53900bde3ff4ad", - "0x0000000000000000000000000000006073a1bf82ba61c51ce96d6cb7030a22b4", - "0x00000000000000000000000000000000001ebaecf236ff2932e24e68d8e1be3b", - "0x00000000000000000000000000000006abf6369ec441190fb054e33c764fb032", - "0x00000000000000000000000000000000001bdbd38b557395b30427017524ba12", - "0x0000000000000000000000000000001d7bb00201b0efb3035f5048c3df84c772", - "0x000000000000000000000000000000000024548bcd56a9ef16c14feae610f806", - "0x000000000000000000000000000000e5655012ed18fcd1d8e339226dd0ba4078", - "0x0000000000000000000000000000000000227c2110109edbbc3955d0465bbc22", - "0x0000000000000000000000000000007bf8464ca9aa703f1e8a25d6e20221d3e9", - "0x000000000000000000000000000000000024963361ceb6d7756c3c2c42a845fe", - "0x00000000000000000000000000000048c96ec4485788f3ccdc37c4ae2a71f1a4", - "0x0000000000000000000000000000000000262b455b6cd2796327e461304e18f7", - "0x000000000000000000000000000000f750d5b7b2337529d40ced8d774f0283e6", - "0x0000000000000000000000000000000000120ef244fda086bafa6f4eccaf97fd", - "0x000000000000000000000000000000fc90ae3789baa78d1d13220b4f34c98f4e", - "0x00000000000000000000000000000000000d60e7b02c8af3cfd72fe199d6a8f6", - "0x0000000000000000000000000000000b9c9b15d9b55b4a49d449b2cd9dbf2dc2", - "0x0000000000000000000000000000000000129d1259178a85eee0f4d95edf2756", - "0x000000000000000000000000000000e8f0abccd4a45c69a68832f6ef8851f04a", - "0x00000000000000000000000000000000000b977396722d8361fecf325e0e32bc", - "0x000000000000000000000000000000645575d035dbf0dc7a5012097524a972d3", - "0x00000000000000000000000000000000001b4b534173d70982fcd6c9544d725d", - "0x0000000000000000000000000000000410cceb82ec7354128465ac80a1ffa862", - "0x00000000000000000000000000000000002acddfed4a484b2d862b4ca275b4d7", - "0x00000000000000000000000000000084b9b52eb51b2b0d05665210b6ebc7576e", - "0x0000000000000000000000000000000000107d0ac36a83cf303113a287965d49", - "0x00000000000000000000000000000001c895891c542e26e8b08d7813dd4512ca", - "0x0000000000000000000000000000000000097e0e59497ca7221fee90d4525cf2", - "0x000000000000000000000000000000f0639c87f66ace434ddb4fe65ab243bfde", - "0x00000000000000000000000000000000000c3c99921dee4f0506f5127627f327", - "0x000000000000000000000000000000aa1c283b5ed1b8b43addafd2bb63ecf30d", - "0x00000000000000000000000000000000002b9dc475b4a10275550d8b8d8fbe3b", - "0x0000000000000000000000000000005912626e15198db5a633afddf51470ad5a", - "0x0000000000000000000000000000000000002135d3d72fcdf497f299a5984448", - "0x000000000000000000000000000000167fa61cf8bb1dbda902c90466acb60a96", - "0x00000000000000000000000000000000001fa5748a7b4a4f72346a5b4b9aae32", - "0x000000000000000000000000000000cf990fc7f643af435bd552d6c21f4f12d9", - "0x0000000000000000000000000000000000170bb10fc59004dae5b55d43a9f478", - "0x00000000000000000000000000000019a1d0ed8d637f1c2afba5fdd385d5fcd2", - "0x00000000000000000000000000000000001aeb885acef6da1ab84b4be20c558c", - "0x000000000000000000000000000000a11da3a0f3c7903c1b8119a3727c1d92a6", - "0x0000000000000000000000000000000000054448cc8cc704196f0ee4b52a9d63", - "0x0000000000000000000000000000000e44ab863c917d81428b86f84af8cd1a25", - "0x000000000000000000000000000000000024d7a2087fcd46a69fd94e824dfff2", - "0x0000000000000000000000000000009f11cf3ef8d440c8e83a8eacfe48155eaf", - "0x0000000000000000000000000000000000255afe02ffbc3178db86e228039ff5", - "0x0000000000000000000000000000004a9ad3947e4b5066ad0b4a731d994fa3a4", - "0x0000000000000000000000000000000000092b00146ab98c77c752c32098468c", - "0x000000000000000000000000000000165a72693efa48c7ecebf3f1fea42db4a6", - "0x00000000000000000000000000000000002e108deabceced2338790d19ba16b2", - "0x0000000000000000000000000000001722f48e7ed1f6f73faaf4007e165811f2", - "0x00000000000000000000000000000000002d43d6af66193fced48fd6f89e74f8", - "0x000000000000000000000000000000ac5108d90de1d0e6ce3d6186c769e8b2aa", - "0x00000000000000000000000000000000000de8c8ad0bfcca457220d03c5eb698", - "0x000000000000000000000000000000ab4c7dff5c06e3ad269e8e48dcb13f0a20", - "0x0000000000000000000000000000000000139a57f59fdf3ec29554b9179adc03", + "0x0000000000000000000000000000008d27755558cb3710ba16596d64094de4ff", + "0x0000000000000000000000000000000000074373f0b4d8249c7c42b915679bec", + "0x000000000000000000000000000000d8492554bae0e152b90cf9bb6416989e0c", + "0x0000000000000000000000000000000000199df6e884d92d5598125c617a85bb", + "0x000000000000000000000000000000a6b879b2f1ddab5b5e7ce242cca0c2543d", + "0x00000000000000000000000000000000001a40a5c4dd7c29e969b44986deaf04", + "0x00000000000000000000000000000081d1fc35d4797feb7ec13bb5107a3043a7", + "0x00000000000000000000000000000000001efd4e895524c2e6bc052d58525fcb", + "0x0000000000000000000000000000008d15493a1fe27dacb3f1be8a833f0d30bf", + "0x00000000000000000000000000000000001783b9cd3f16a91fbeaddc38fa63b4", + "0x000000000000000000000000000000cf204b6d21df1755759850d9cdc4751e23", + "0x00000000000000000000000000000000001911a36654794227888bcbab64daa1", + "0x0000000000000000000000000000003dbca6848908f9735bad92d76c273af2e8", + "0x000000000000000000000000000000000004be075c0c505bc77471adcc959d10", + "0x000000000000000000000000000000cc31bc4a3a28f3cdc93c578f50fd0be1bb", + "0x000000000000000000000000000000000013bfef365fa9bf2883943d3e7633bf", + "0x000000000000000000000000000000f2c88581a08b8ea8f4eee9b39b033bdcba", + "0x00000000000000000000000000000000000d0d600974f7af54b5c1da49073441", + "0x000000000000000000000000000000aa89adacca551cc6716059a16ef444dcd0", + "0x00000000000000000000000000000000001880e3cea05406119eba40bc8170e1", + "0x0000000000000000000000000000000560681f4ebf50017c35bbaeb00e6612d4", + "0x00000000000000000000000000000000000c90615a2a194e7864c8a7342c033c", + "0x0000000000000000000000000000007b85e8de55c53c7f6b3366a6fa6ca8f683", + "0x00000000000000000000000000000000002c74b72a546da791721e1d1645b364", + "0x00000000000000000000000000000016912a5f1454b4c973d2f8c2394af9c609", + "0x00000000000000000000000000000000000b03c2d29b8690df87b3e8953168af", + "0x000000000000000000000000000000eb7e3619d05345751f662ed3496e12013c", + "0x00000000000000000000000000000000001da1a8b4de76a0e1413f98adb7445b", + "0x000000000000000000000000000000c8a153bcebf22098a093bc536df1f8630e", + "0x00000000000000000000000000000000001c65fc0274706f6bb54d9ef2b7f7eb", + "0x000000000000000000000000000000c28483aeef1807ff9fa4a63be47c35e9e4", + "0x000000000000000000000000000000000017a7e42b72b5dffd88eece96f70008", + "0x000000000000000000000000000000c175e2949666a56faf4cd3feedbaaa0cc6", + "0x00000000000000000000000000000000001a57d99a50ae6ed167d307fc99a5ec", + "0x000000000000000000000000000000bad372cf0ecc5a906c2005d0ce4892808c", + "0x000000000000000000000000000000000005b4284705540c2253601164a2045f", + "0x000000000000000000000000000000eec6db45fa2337f14e090e219042c3c1b1", + "0x000000000000000000000000000000000020c3734f3a96c6489ffa8312b37a05", + "0x000000000000000000000000000000dbdeff8e029adb59c3124f5f6146165e00", + "0x00000000000000000000000000000000002fbb863ad2a2d91c245272fa75cda6", + "0x0000000000000000000000000000009e2123a1906f6431e347ac437afb29f2f2", + "0x000000000000000000000000000000000008dc72ceb56e99069e3ce3d6b07b71", + "0x0000000000000000000000000000005c17a26d63af87fbf70e9786064b74a5fa", + "0x00000000000000000000000000000000000472d5a3b951a92805bf7fb2e6b291", + "0x0000000000000000000000000000003abe862b191c3722826c6a32ba328090e4", + "0x000000000000000000000000000000000007c0251a9840f9bd77761434cbdb14", + "0x0000000000000000000000000000003c37b1a4c30733468fcde82c9d5903d36c", + "0x00000000000000000000000000000000001203061efbfd20f0bd72c8160e70d5", + "0x00000000000000000000000000000060b9f44d05d871f77af09438d1f9430e83", + "0x000000000000000000000000000000000026e4b16eac5a2ef8e3cde9e54d442f", + "0x000000000000000000000000000000a1324fb48ea83326c0c4940a8d3a606c2a", + "0x0000000000000000000000000000000000167f9242450f6d106c043f74e0bed8", + "0x00000000000000000000000000000075e11296d474ed471140b6819f25926444", + "0x00000000000000000000000000000000001f075b2e0fac84213f0d9e52c45a3a", + "0x00000000000000000000000000000073fb8fbbd6c5602a91ecfd89c193f2349e", + "0x0000000000000000000000000000000000232e96f4f19d76863fad22826508e8", + "0x000000000000000000000000000000eebd5faa21cddb096bbbf14f32dece7600", + "0x000000000000000000000000000000000023ad7513ae59d6ee8163addb1173f6", + "0x00000000000000000000000000000008441f0a4c9c2dc2df1ba83c84b0734582", + "0x000000000000000000000000000000000028d6d532a69e1638095f92437320b7", "0x0000000000000000000000000000005eefcb3c6f69064ed55425945fcc74c2bc", "0x00000000000000000000000000000000001613278bd29c20c182e6f3b5e367ce", "0x0000000000000000000000000000006c39d4dd8c65752b9bc2628fcc3dbf415c", @@ -2029,13 +2032,13 @@ next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000 "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x00000000000000000000000000000027dd7a7146d1c4ff9332e930ec54b6ea2e", - "0x0000000000000000000000000000000000251eb2367a907e55626a07bbea7e2b", - "0x000000000000000000000000000000ed074fc7f9cd09872a83d8c368c93a0725", - "0x00000000000000000000000000000000002621701db780a70b161ef185f06af9" + "0x00000000000000000000000000000017c44378bd49e5d582c10280a7beac420d", + "0x00000000000000000000000000000000001e59bce0e61bed46a083641bc5cc42", + "0x000000000000000000000000000000b294078d5d657e42d17fbcae9c60bd3b47", + "0x00000000000000000000000000000000000d6089ef06717208c4997b3cad678b" ] - hash = "0x1ade3720cbbe9e0e7e072126148d01bed74c9bdaaa8e0b885ac795a6766c0e4f" + hash = "0x271ddf6bcbbd8781831cc3f9ea0e5e938d4b5169dcd747a928d7d56966adfad5" [inputs.previous_l1_to_l2] root = "0x0fef6d80d31109ddb56d6b3f607cbc9c0af0bff3ea0d43e8f278983c64c11f7a" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000004800" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml index 9ca9eb388df3..8b1426b32e05 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-checkpoint-merge/Prover.toml @@ -483,8 +483,10 @@ proof = [ ] [inputs.previous_rollups.public_inputs] + start_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" checkpoint_header_hashes = [ - "0x0052a3b1c4fd63c06e486f6a1f650652907765ba90fb8189dd247d9895c1d6ca", + "0x00946e3b774f6339b929fe221a5f6d8cd4b33c47754a07b1a442daf0957b8a7b", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -519,33 +521,33 @@ proof = [ ] [inputs.previous_rollups.public_inputs.constants] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000b5668f8c" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" + version = "0x0000000000000000000000000000000000000000000000000000000000000000" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x0343d2259bb31fcfde531994e2f5ef2bb7f4ed7984616b510993c1d0a5713b9f" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000011" + root = "0x0fb2945d3438d906d88a216364dbfe9760e96001343468610e01d18182d493d0" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x0c95264b6f0c21d668cb6d094c48140491b5798e03a33bdaad247085f03c42b7" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000012" + root = "0x25bff82f39fcab06971d8ee7948521f8c9d317a9442b254345172ea8e5ab807d" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollups.public_inputs.previous_out_hash] root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.new_out_hash] - root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" + root = "0x0003e0e323f66d29e6a69f447a88e682190ce3e0a2546cb3e7f4a3ee4a31f1f8" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x00000000000000000000000000000000000000000000000000008790cd55e980" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -734,53 +736,53 @@ proof = [ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator] - blob_commitments_hash_acc = "0x002772d5ce6026f9e2184396f666806c458be37a4d6ef54fe781ca044911fdef" - z_acc = "0x251c68b077fb4f29389c20d7cfe940a73be9cdba7181d28056e31a9bdef74bc0" - gamma_acc = "0x0056b6052df0b0799e531dcdffca942071fb86a12a8ae0317b7cfa76b3ca0ad6" + blob_commitments_hash_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" + z_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" + gamma_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0xca9a83c3ec36eb1c7bca396c272098", - "0x2211270067a0b9dd240e516a27e172", - "0x177c" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x0000" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc] - is_infinity = false + is_infinity = true [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.x] limbs = [ - "0x9582cdcc621db9fb375a1940026750", - "0xacae5d6c561cea76a4769f2460d35b", - "0xc542705924abef32601b2f49a7b3db", - "0x0b5ada" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.y] limbs = [ - "0xcac2050b45921f169a41caa710d9db", - "0x390518c0b26de6fe8f7e7375ec31bb", - "0x2123ca23621ad627e69608b5588a42", - "0x1547d5" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0x6d9779448c81eabee8d82108daacdf", - "0x10f42c39c178958513904e1e9d4b71", - "0x0047" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x0000" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x00430d8912f572c962239618ecb172c9d177cde13181305fcfcf273808c0482a" - z_acc = "0x2a6d2b476333eaf1dbc2a326f54a57603ccff8a9d6ada47e8b5b459b398df2d8" - gamma_acc = "0x0182d7b94a3580212c63f4d5d93dc8f0a52680c023e704fcb8be47cbfe1608c9" + blob_commitments_hash_acc = "0x00623adedc94cef1d6543d4553f099ca52d8f18959a1129829119e59d69ab9c2" + z_acc = "0x0f5c571bab58c15e335966ac3acb47843f8d3203bbb98f93f6f423cf83c52dd0" + gamma_acc = "0x1bc2f50f2c1404791eb50cb53120e114f4072c3f96abf558f9630be1fb5551db" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x2546cdb83f1d1d6961ffa922a7e08e", - "0x606c647b273585b2366941ed9438cc", - "0x0033" + "0xce93b72fe7fd4daaf153e7e71a5648", + "0x8c3da5cbad469d969cdda79d074576", + "0x217a" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -788,45 +790,45 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x3d63dfb8c7e9d0dda0743fbb47301f", - "0x8e9b55a6fcc4d3de7340cc84a7c5bc", - "0x2a2e2c60d41450e924cc484b4c29e3", - "0x0e7dc4" + "0x435eed77cdc394ae5868051e2ed5d7", + "0xee20ce8ccf99d380ac1ceb1789a612", + "0xee7f3930051db23e3c525ec7d3586f", + "0x119b26" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0x14bd40aa63ed91f2936b9dd0fc80a2", - "0xa06ced0828854e385d395136ab1151", - "0x38cab178ba3da6a9b67afbda5da96f", - "0x0dad19" + "0x9f99d88a42b0cacea53fcc0318f15f", + "0xafe466e772761f671bb00f634db10e", + "0xf25b6f2415750748390c9cae654071", + "0x1834cd" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0xf8ac71f0d5e2955b5847a3b920fc46", - "0x8b1fa322ecd25efe9bb54eb273c658", - "0x714b" + "0x344dd1d2bf15f37a0a4fade6f46a5d", + "0x1a52f958267690e1e6d34cc9e7f9b6", + "0x15cb" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x2966ff6275d3d12a6dda4572592738c83e207f5dc5b78b7d75dca5301cf021c6" + z = "0x0efb3c155e90ade0686814ba123168860b457e2200eef2a909f69c47c14ce688" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0xff63a27cdfb8b5433eb4c240965501", - "0x4291c92d937af41a6213e6b632b141", - "0x08be" + "0x344dd1d2bf15f37a0a4fade6f46a5d", + "0x1a52f958267690e1e6d34cc9e7f9b6", + "0x15cb" ] [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000011" sibling_path = [ - "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", - "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x0cb563600679ab6a5e2ef3ed1ab6e4e413b6b6b2df8d0f3b01c21abcacde5248", + "0x142786661d341c62a4c6db11474f516dbc6e62146dacb391fd08e485450c4525", + "0x121157fe0e38fc9db652bd52835686237090ef182f269df6fe777c5e5fd48aad", + "0x2a1815b5efead7996887211044ef4765abd48695f894abbedfb1d27d5eccab05", "0x20738d93e695096c6290e7c275252b87c3fc8a419bd4d9991368484bcbd446a7", - "0x20322f3a005b50fbc197e0b2ed3d57ce178831e828a359e0d8ae74802888a8f4", + "0x20e63bab1f1aa35d6c7d0ffa0f2df4e44a7f9a9d7531dbacc2f286b8bedd6626", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -834,122 +836,122 @@ proof = [ [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000017", - "0x00000000000000000000000000000000000000000000000000000000000000a3", + "0x00000000000000000000000000000000000000000000000000000000000000a5", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x000000000000000000000000000000302787373675614b5065e413ff7cb47635", - "0x000000000000000000000000000000000030223bf53e330987976984cbc8b777", - "0x0000000000000000000000000000005d7e3c622753bc9765188b58278de58e2b", - "0x0000000000000000000000000000000000155d33c8914989120390dd1f1b565a", - "0x000000000000000000000000000000ee6a96b509792fe4cb08ba5b690a829260", - "0x00000000000000000000000000000000002334a82c7c45a013fd6565043b3e34", - "0x000000000000000000000000000000b64df10cafd4414f4ca1cfcc9df1104b83", - "0x0000000000000000000000000000000000146a7f5eacb3170bc6517966b91c32", - "0x0000000000000000000000000000009d478f8685010a03b0c7e082a0bc36f004", - "0x000000000000000000000000000000000000ba76040d675cb33d320e90572c0b", - "0x0000000000000000000000000000003be6828a9dfcbeaf8f85587eb0e140f22c", - "0x00000000000000000000000000000000002be8cad756fc14e20e65bcdac55d84", - "0x00000000000000000000000000000060d5a42641ead1f373092743119aa3af8c", - "0x0000000000000000000000000000000000164fde87f47eecf92ee4516ec82322", - "0x000000000000000000000000000000a8a3b797a6fe3470f8e4f7869dd43c2bc7", - "0x000000000000000000000000000000000017ec5446085f31ee161d9b3aeb1dc4", - "0x00000000000000000000000000000058cb2aac262dfffdaf058bcc776cd9a491", - "0x00000000000000000000000000000000000c3392013d42001efe4b51a9f9839d", - "0x000000000000000000000000000000eccc64c49eb40425e8fe5224ccdc43c1e4", - "0x00000000000000000000000000000000001f6506bedb6d949f1f86098e65a72d", - "0x0000000000000000000000000000002dd78f1fd00370a8383fbc3ba9753685ec", - "0x00000000000000000000000000000000002162b403b60b934527df3cdf67eaeb", - "0x000000000000000000000000000000d68ea8aebfb824365dabd01f6423c18a43", - "0x00000000000000000000000000000000000e1416c2f366756eb6713a61c29e0e", - "0x000000000000000000000000000000577c33d5c10b485d8c213d16ac4664dd62", - "0x00000000000000000000000000000000001dbb32af825db919015b2f62ac527a", - "0x0000000000000000000000000000004089798ec9503f6d851e3f36c8134fffca", - "0x0000000000000000000000000000000000258c2a8625473699411a82c908b205", - "0x000000000000000000000000000000900e70ab0eb295b2339744f30290816695", - "0x00000000000000000000000000000000002b8710de153dbcb980c871c8641455", - "0x00000000000000000000000000000064c8a69e30c314b2c9f307b9859388b725", - "0x00000000000000000000000000000000000274811b6c58c4854427d143980169", - "0x000000000000000000000000000000bd95ab45995e60444bcbcf2f650df95bfb", - "0x00000000000000000000000000000000001f24b2f347e01bcdbd025ac0559c85", - "0x000000000000000000000000000000ee494e93426c721d97ae5aa62c90310e73", - "0x000000000000000000000000000000000015237248ed9e657735f540e8c7756d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000013c3bccc5388da92f5d871dfc5798c6f7d", - "0x00000000000000000000000000000000001ed1d4ff8584dd1dd72fa169b590d1", - "0x0000000000000000000000000000003de967fe48c15d8973f84a210a95dd64de", - "0x0000000000000000000000000000000000127264f024fdb1905c1b9311a69989", - "0x00000000000000000000000000000067ab29550dc70b79125476307dde9d4eb1", - "0x00000000000000000000000000000000002dc480e42e6eea643f7ceb8de96baf", - "0x000000000000000000000000000000b78c2d92f2d7d849bac283fd66764341fb", - "0x0000000000000000000000000000000000230044dfbb796950437c31b1813440", - "0x0000000000000000000000000000002864afee535c3f2025e8d4270039646e66", - "0x00000000000000000000000000000000000dc28f5cecb40979171218dd29e4fe", - "0x0000000000000000000000000000009a0ffd05fb01bef000cc4c463054f3c151", - "0x000000000000000000000000000000000021d43883eb57a05047400f4a96ef19", - "0x000000000000000000000000000000acf8cee1de7f48c4f06266c8cfbad2151e", - "0x000000000000000000000000000000000006cd8fd38f0b7cd6f9151b5ac5337e", - "0x0000000000000000000000000000005654df5102eb796e74c9de073e107a39ac", - "0x0000000000000000000000000000000000028174128b65de0f5263c0e175b23b", - "0x0000000000000000000000000000008ca702a32d860f9280e625c387f3521f13", - "0x000000000000000000000000000000000019d792292ea80445492b5514e0dddc", - "0x00000000000000000000000000000050bbf69e0ae3345cd601a80f62379ab9b2", - "0x000000000000000000000000000000000023cc9e9fb3e9cb8b7c8e06200a279b", - "0x000000000000000000000000000000c3b8f00f6e9bd29ac661c44ce1a18528a2", - "0x000000000000000000000000000000000014a93c6f48de42b23c9ac1f7dbe811", - "0x000000000000000000000000000000f5328aed500abdc6320165cddcaca4fffa", - "0x0000000000000000000000000000000000232b23c95bd3a3df804c4a93de6472", - "0x0000000000000000000000000000006676bec8a1892b306e941dcc5d4011100c", - "0x00000000000000000000000000000000001df5186ae0a33ea8836ed671a892b4", - "0x0000000000000000000000000000004bad445ac665f80bc6acf512e07e85bc38", - "0x00000000000000000000000000000000001d2cdff266585d4078e18118fa9092", - "0x0000000000000000000000000000002c610edad308e27919b035922986bc8bff", - "0x0000000000000000000000000000000000088752e898b6a27f557963cf76e0c0", - "0x0000000000000000000000000000004f28478251fd7e453b7baa9f3020a953c6", - "0x0000000000000000000000000000000000169c31849094fa7939daae18f3c5bb", - "0x0000000000000000000000000000005dc0a499195b7457c28e8736067f4aded8", - "0x000000000000000000000000000000000025d7847b139148f3fc3f063fb052f1", - "0x000000000000000000000000000000789ab89aaf1ab942d695d28b895ed5b26a", - "0x000000000000000000000000000000000001b405d8ca6f44a8937d1becbe4681", - "0x0000000000000000000000000000005d3e2c6adda13104da28bd3d0d40726903", - "0x000000000000000000000000000000000006657556bced744fca4baebc7a7a08", - "0x0000000000000000000000000000001f1e42fe306d2ed7e063bc7dcaae2d30b3", - "0x000000000000000000000000000000000029f36b235f098995d51d6825cea708", - "0x00000000000000000000000000000011de9fe4ab7736b1c511efcb2eef509918", - "0x00000000000000000000000000000000002b60e192da925f3d135e6641d4ea6e", - "0x000000000000000000000000000000f088858045a80449ef186d814d04b39f9d", - "0x0000000000000000000000000000000000153d832bdd7a9f6463622c3507f239", - "0x000000000000000000000000000000d8a9eebdce988c3fd2f0999930a15138b2", - "0x0000000000000000000000000000000000075f1ac6bf2a6b487ae46aa505d3fa", - "0x00000000000000000000000000000087ee2dbbf2a048bad137c4db1b8ebff300", - "0x000000000000000000000000000000000011cbf2a4f1f11c63d8eb9513ee53e5", - "0x000000000000000000000000000000f5e4c418c7383a63f7237510cbcbb73c14", - "0x000000000000000000000000000000000028199b65e442cc03e751b5deb448e4", - "0x000000000000000000000000000000a702cc20da20448c18d688e550e57c745c", - "0x00000000000000000000000000000000001f309a205e7f82854e940ece89372c", - "0x0000000000000000000000000000007aac52d4113e4e71f28eb47905e925a389", - "0x000000000000000000000000000000000020e9e49e102536e6956c9bae558653", - "0x00000000000000000000000000000001ba2d9676f12016903f2696eba0098b47", - "0x00000000000000000000000000000000002f61c08a9c545fd795f8433ca00c12", - "0x0000000000000000000000000000001edfe50b3721a067770f9499a6083d4c77", - "0x0000000000000000000000000000000000248065a6e53c3f8b8d3db47272f7b0", - "0x000000000000000000000000000000ae34cb14f3eb595d76a2dd9402b1b23d64", - "0x000000000000000000000000000000000017ec2c75eec02d3be50d530b2b11fa", - "0x000000000000000000000000000000b0c14b05eabc7a7ad842ef1166b9fbdd8b", - "0x00000000000000000000000000000000002e2832206b3d1167b6287b5eb53374", - "0x0000000000000000000000000000002bf99439219158d7f65fa75dea73dc9a15", - "0x00000000000000000000000000000000002149e5cd921f23b5d7de4650b9daa0", + "0x00000000000000000000000000000069e10e8ac0c5eeaf696377bf18d201382d", + "0x000000000000000000000000000000000029156363c0d97b18b5076e4826bb42", + "0x0000000000000000000000000000004914fdac107690d069ab86e48e9e1f718d", + "0x00000000000000000000000000000000001c144dd488f639e3f90ce57c0fbc51", + "0x00000000000000000000000000000094e11281a03ab23ffd5c9d65934b044c72", + "0x0000000000000000000000000000000000252b1aad27b2451bd71722eddcbec3", + "0x000000000000000000000000000000d243b83f9157d3825d17776904b2e30ce6", + "0x000000000000000000000000000000000011e4c9d1e2635bb3265c098687b4cf", + "0x000000000000000000000000000000bea404a29f0a3ec523478c4807e7721aa1", + "0x000000000000000000000000000000000016a85588062aaa1bb4bb7f8936e26c", + "0x000000000000000000000000000000d6103cdc590539d58b6b43223503d2b8e4", + "0x00000000000000000000000000000000001a3fe9ba7752c60b02f76180bf7580", + "0x000000000000000000000000000000afb76ef46473b8cd4e70fbd9f5b8cca3ab", + "0x00000000000000000000000000000000002b15aa201d6507a77b4238d357ccd7", + "0x000000000000000000000000000000191cac1c728a9f05112f0ef2a3903123f0", + "0x0000000000000000000000000000000000237aaf71c0cafed37cb5be2e647c41", + "0x000000000000000000000000000000dea16bbfa56e9fdea7e90e742f1307c4ea", + "0x0000000000000000000000000000000000289afe1373e02bbbbe7b8bf4019b0f", + "0x0000000000000000000000000000009a2a70febbe6d40df3c73d8a367a55e1e6", + "0x000000000000000000000000000000000022fad633ab5fe0737a5d0d0a83691d", + "0x0000000000000000000000000000008a4ad36b2fa0600897e26dcd4bf71ef928", + "0x0000000000000000000000000000000000288ebc352e3ae63e436ce08e521149", + "0x000000000000000000000000000000382706154643c881d64321c770ca547b86", + "0x000000000000000000000000000000000022d0e4a264c22fd0947488bd1848e9", + "0x000000000000000000000000000000dd98d271d4d16e66d61039d006fdb08dd2", + "0x00000000000000000000000000000000002646eb78d367e3ddae2ee29657e78f", + "0x0000000000000000000000000000006e859a711aa7352e651b1b48330125a03a", + "0x000000000000000000000000000000000021784c3d16da5e715233b84c49fe1b", + "0x00000000000000000000000000000005f72555f453a9217bb6e4c82977dac532", + "0x00000000000000000000000000000000002cf470240ad684e3475b9bf33b3df3", + "0x0000000000000000000000000000008d1820f3332cdb266b9fda0d5fd712a03d", + "0x00000000000000000000000000000000000634b1bd9213ff8d56c7a7b15e6e68", + "0x0000000000000000000000000000000e11fc3d99f35e8f96f606af9383dc014a", + "0x000000000000000000000000000000000021f5dd6f5545662b8b5d023c95dc4c", + "0x000000000000000000000000000000aa3554cd18b7b35adea5ad6547d603b897", + "0x00000000000000000000000000000000002782aa84be0c0aff27dbf00160a4f9", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000c259c40db2dd2e0f76c497a3b531a0c0c8", + "0x00000000000000000000000000000000001f0c16b5bffaccb7423579398dcbaf", + "0x00000000000000000000000000000020aafd939b37536a969b1b08f22bfdd4f7", + "0x000000000000000000000000000000000025ae7186e95442d468a42f2f02194b", + "0x00000000000000000000000000000064badfba2db29b1074b9673a5fad9060da", + "0x00000000000000000000000000000000002d215cf76c12dd04193776d59422df", + "0x0000000000000000000000000000005cb806968eae28f7508e9b41e5593cb55f", + "0x00000000000000000000000000000000000ca6b79edb50770058953416b1fc23", + "0x000000000000000000000000000000a85fed316b782788719ad9b751ed4e9b03", + "0x00000000000000000000000000000000001a5c136c83eda1110352dc0d2ebc52", + "0x000000000000000000000000000000978ad9abd0e4057ee8bc0bdf36996a6fb2", + "0x000000000000000000000000000000000001827c21537f7659f3a62fc50e95fc", + "0x000000000000000000000000000000b39d6e29934b38842b9dcc80670e6cd6a9", + "0x00000000000000000000000000000000002b0e89f1826987ffc4c7040a52be43", + "0x00000000000000000000000000000026e9b2cab47c770948e4fb50e22adabd5e", + "0x000000000000000000000000000000000021fb82adb8b638df65df02a825ecaf", + "0x000000000000000000000000000000fb61980f79866aaec6003b1af534b09599", + "0x00000000000000000000000000000000001398447900a4544eeae6d2db77e653", + "0x0000000000000000000000000000001b20e5d7320563442c56b2ca9f95d62679", + "0x00000000000000000000000000000000000ed78c4fccf5dd52b3299fbb438ba8", + "0x0000000000000000000000000000003f1b542e1a8aa6ece436c125601234cb36", + "0x000000000000000000000000000000000029a72d97aeb5814cbbbe930e3e365d", + "0x0000000000000000000000000000008f4788b4779e79912cdbc9ada1fabd7c08", + "0x000000000000000000000000000000000016928eb8f8c464f94e5abd98d94912", + "0x000000000000000000000000000000555ab1b9107f58946c075041f08f2b1fe9", + "0x00000000000000000000000000000000001d0f0fbafc2385bf41b55d6c66ba2a", + "0x0000000000000000000000000000004b4c80163a1e826fd8060282e7909b2e63", + "0x000000000000000000000000000000000026e56cd73c0e6cf6df7a17e619f560", + "0x00000000000000000000000000000065536372856c2fc418fb9cbab88a288a9f", + "0x00000000000000000000000000000000000c8fd7adc334b50cb479dd14a12e95", + "0x000000000000000000000000000000d4d413eeec90160fdb9108e8b53306dd5f", + "0x0000000000000000000000000000000000150ace84ed473a2c609c6114aaffde", + "0x000000000000000000000000000000ad385b6e5f06aa810b8e701c648e9cdf88", + "0x00000000000000000000000000000000000f590c5eb6107891432437ab08d064", + "0x000000000000000000000000000000eb809625979801e560b703d6c4d977e1bd", + "0x00000000000000000000000000000000000cd72d4a8cc0d63226e3d7ed4b78fa", + "0x0000000000000000000000000000007f0b64756bd847fd82a267178cf8f43acf", + "0x000000000000000000000000000000000021ddcf70fff13d14bb0453e95f7973", + "0x00000000000000000000000000000066a8662d7342eca23ae9e8bf17850cd172", + "0x000000000000000000000000000000000012750e9bac9a718961f0f8614c7c21", + "0x00000000000000000000000000000012ca2a8f4e0c24f57a9100c62c5e921ba7", + "0x00000000000000000000000000000000000492f0f5ce51b53b46ce7e2576f32f", + "0x000000000000000000000000000000b9598d418fcd3e94b1d5a3347835c35293", + "0x00000000000000000000000000000000000fe8baaec338b4e2f856ad1fe96eb1", + "0x0000000000000000000000000000002b8f3782157dcbcf587fb7290074701f2f", + "0x000000000000000000000000000000000012ef41c70f5590ee81b8c219ba0d55", + "0x000000000000000000000000000000f98d108d322d8bd8bf2aad8a1df2cb3c70", + "0x000000000000000000000000000000000003e8fb0c8b4c8c3900a1b85a5b4550", + "0x0000000000000000000000000000009f3672e356e98b3a7a3deae61a9b87dd29", + "0x0000000000000000000000000000000000301cc7d23879687ec5cbdc195436f9", + "0x00000000000000000000000000000023885c7bce9e0d10196c6f831bf4b229de", + "0x00000000000000000000000000000000001602ff1fe4f4cb70c26ad5bc16858a", + "0x000000000000000000000000000000fcf2a0c1eceb385200a0ee09c40c758fbf", + "0x0000000000000000000000000000000000253b9dd23a0982e9db87324acd9aba", + "0x00000000000000000000000000000097a1599a0f5c04ef46d89bc4be8629ed3f", + "0x00000000000000000000000000000000002ef5dbc090a304ab4d948f1e08a8de", + "0x000000000000000000000000000000691acea534b501c5d7a5984cbb56e2f677", + "0x0000000000000000000000000000000000256377fe9f1696e2316a0ede70e194", + "0x000000000000000000000000000000b1d93380e5a238c52f4d9327b8ff615f45", + "0x0000000000000000000000000000000000029f05bf11aee014fc3ca870e42dc7", + "0x00000000000000000000000000000083f400e03505d6e2e6a8d315ec5b24f54c", + "0x00000000000000000000000000000000000c031249619645a60ab26bf3069331", + "0x0000000000000000000000000000006e7016f5ace833e2821d171ef0fe2b9f8d", + "0x00000000000000000000000000000000000f8b062a1227fc7a323aed56615912", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000f6e131d6ce506eb0d3892b0c27cfe0f4a8", - "0x00000000000000000000000000000000001668301c6c961e364526eb8abf9792", - "0x0000000000000000000000000000001ace35f485f93f441c7e0a6df02303688a", - "0x000000000000000000000000000000000010adb5f7e278a58893faf2b4b3ed80" + "0x0000000000000000000000000000000a80044848d5d1d37064d3f6b42ec339c7", + "0x00000000000000000000000000000000000475fb6cd2420cf5aeb4621c6ee163", + "0x00000000000000000000000000000033cdd9ef133b9035d046aec1dbd3799fdb", + "0x000000000000000000000000000000000011310bd4c4028b1d9a46f47dabe63c" ] - hash = "0x16e2d4dba2d1561651bffffca7396ffbb146c6eea7b127f67a4b056c70bc7da3" + hash = "0x149f1a7b8aa1ad4695eaea8f60119a189321abca9fe7c33382efae3bf7bcc693" [[inputs.previous_rollups]] proof = [ @@ -1436,8 +1438,10 @@ proof = [ ] [inputs.previous_rollups.public_inputs] + start_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" checkpoint_header_hashes = [ - "0x00bb067442516f38f86ddf13e6d0f04a9911042e9391916f8985a38a84b69d40", + "0x00f9f4933c3657e8e41159fd0f6acd1ff9a6e86968d3571e931df7bb4c1e23d9", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1472,33 +1476,33 @@ proof = [ ] [inputs.previous_rollups.public_inputs.constants] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000b5668f8c" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" + version = "0x0000000000000000000000000000000000000000000000000000000000000000" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x0c95264b6f0c21d668cb6d094c48140491b5798e03a33bdaad247085f03c42b7" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000012" + root = "0x25bff82f39fcab06971d8ee7948521f8c9d317a9442b254345172ea8e5ab807d" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x1e35a5f0880d3f9c06160e3cec0b592b4d5578dc26ba20825c74d25febd9d373" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000013" + root = "0x284887920b961ad433ec5650f44d3a66f5e672b32e5523dd6f1fac1d2624df0e" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" [inputs.previous_rollups.public_inputs.previous_out_hash] - root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000003" + root = "0x0003e0e323f66d29e6a69f447a88e682190ce3e0a2546cb3e7f4a3ee4a31f1f8" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.new_out_hash] - root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" + root = "0x003b613be7a069f0b767725574398f44f0e974cf9710decbe80ad27194d6acaf" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x000000000000000000000000000000000000000000000000000094f4fc8c8a80" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1687,15 +1691,15 @@ proof = [ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator] - blob_commitments_hash_acc = "0x00430d8912f572c962239618ecb172c9d177cde13181305fcfcf273808c0482a" - z_acc = "0x2a6d2b476333eaf1dbc2a326f54a57603ccff8a9d6ada47e8b5b459b398df2d8" - gamma_acc = "0x0182d7b94a3580212c63f4d5d93dc8f0a52680c023e704fcb8be47cbfe1608c9" + blob_commitments_hash_acc = "0x00623adedc94cef1d6543d4553f099ca52d8f18959a1129829119e59d69ab9c2" + z_acc = "0x0f5c571bab58c15e335966ac3acb47843f8d3203bbb98f93f6f423cf83c52dd0" + gamma_acc = "0x1bc2f50f2c1404791eb50cb53120e114f4072c3f96abf558f9630be1fb5551db" [inputs.previous_rollups.public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0x2546cdb83f1d1d6961ffa922a7e08e", - "0x606c647b273585b2366941ed9438cc", - "0x0033" + "0xce93b72fe7fd4daaf153e7e71a5648", + "0x8c3da5cbad469d969cdda79d074576", + "0x217a" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc] @@ -1703,37 +1707,37 @@ proof = [ [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.x] limbs = [ - "0x3d63dfb8c7e9d0dda0743fbb47301f", - "0x8e9b55a6fcc4d3de7340cc84a7c5bc", - "0x2a2e2c60d41450e924cc484b4c29e3", - "0x0e7dc4" + "0x435eed77cdc394ae5868051e2ed5d7", + "0xee20ce8ccf99d380ac1ceb1789a612", + "0xee7f3930051db23e3c525ec7d3586f", + "0x119b26" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.y] limbs = [ - "0x14bd40aa63ed91f2936b9dd0fc80a2", - "0xa06ced0828854e385d395136ab1151", - "0x38cab178ba3da6a9b67afbda5da96f", - "0x0dad19" + "0x9f99d88a42b0cacea53fcc0318f15f", + "0xafe466e772761f671bb00f634db10e", + "0xf25b6f2415750748390c9cae654071", + "0x1834cd" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0xf8ac71f0d5e2955b5847a3b920fc46", - "0x8b1fa322ecd25efe9bb54eb273c658", - "0x714b" + "0x344dd1d2bf15f37a0a4fade6f46a5d", + "0x1a52f958267690e1e6d34cc9e7f9b6", + "0x15cb" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x0040e2906bda489b8d42e90ddd0250de393a8523fad5b68136a86a27897cda69" - z_acc = "0x1fad0c45ba1bbf1a3c2ef7b2716f2026f690710fb62afe7025470a84daa345cb" - gamma_acc = "0x1be4dd7e9f22b91c14866763349700329b2dcfdaa15000f013610716d203f232" + blob_commitments_hash_acc = "0x00ebd2f4e1879d244913b3c4db8d7c2060a89dd8c9b091af98772445715c4890" + z_acc = "0x122ebfab4bbceeb4adac66caafdbab1a557cf8468e902e1789cff5a8a6450f78" + gamma_acc = "0x2f4b31366acb160000b0f9034b55aaf3ce5268ac9279133910f7e85a27d186e4" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x5b82104a41a277b6f704ffa4ecbbd8", - "0x847d7273bdde235b230bb3412aff14", - "0x6b51" + "0xbf5329d48ac00e0bd1a5ebeaac2ac5", + "0xd4491c134036e04eb5b3235c882435", + "0x4f03" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -1741,45 +1745,45 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0xeef8d753977cebd18eb45c30884bb0", - "0xe59de9b91ae372d3737226a9b1c9ae", - "0x0b08fc79ef9d31e2a1d76f2a181736", - "0x141bd4" + "0x313d0dda6b449562463f2085f7befd", + "0x09747f2ffae05038d3533b1cafca8c", + "0x689ad64b63c6e9f25265b864d287ee", + "0x1969e7" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0x0c3bc4f2262ba8ec1d60c226f1e44d", - "0xf7e7fb4ff0cc56f028575d8555f008", - "0xfd8ac885351869d4672bcb8be3b7f8", - "0x026679" + "0xd46df1d2f026fa1bce23138a8c353a", + "0x671a67219cef06047fa8bde673feae", + "0x8629c06a85466029aeef6b432cbfcc", + "0x07cb04" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x319e740ff9c2214adf645cb408c916", - "0xd896e9fc0d3afbfad50663c601778b", - "0x42c7" + "0x277ce0f6292b399b7c293f1fe53e02", + "0x2e5489ccfbc6a2cf6942e9957957b5", + "0x16c4" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x2966ff6275d3d12a6dda4572592738c83e207f5dc5b78b7d75dca5301cf021c6" + z = "0x0efb3c155e90ade0686814ba123168860b457e2200eef2a909f69c47c14ce688" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0xff63a27cdfb8b5433eb4c240965501", - "0x4291c92d937af41a6213e6b632b141", - "0x08be" + "0x344dd1d2bf15f37a0a4fade6f46a5d", + "0x1a52f958267690e1e6d34cc9e7f9b6", + "0x15cb" ] [inputs.previous_rollups.vk_data] leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000011" sibling_path = [ - "0x1edc2329182e13c58f5ced1e4ca120ba845e074e81d59ee64d0bbd583ecdd429", - "0x1f502972a4bdd0353e082932afca85331d93e89c99ab3a78511939c18eb14641", - "0x0cb563600679ab6a5e2ef3ed1ab6e4e413b6b6b2df8d0f3b01c21abcacde5248", + "0x142786661d341c62a4c6db11474f516dbc6e62146dacb391fd08e485450c4525", + "0x121157fe0e38fc9db652bd52835686237090ef182f269df6fe777c5e5fd48aad", + "0x2a1815b5efead7996887211044ef4765abd48695f894abbedfb1d27d5eccab05", "0x20738d93e695096c6290e7c275252b87c3fc8a419bd4d9991368484bcbd446a7", - "0x20322f3a005b50fbc197e0b2ed3d57ce178831e828a359e0d8ae74802888a8f4", + "0x20e63bab1f1aa35d6c7d0ffa0f2df4e44a7f9a9d7531dbacc2f286b8bedd6626", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] @@ -1787,119 +1791,119 @@ proof = [ [inputs.previous_rollups.vk_data.vk] key = [ "0x0000000000000000000000000000000000000000000000000000000000000017", - "0x00000000000000000000000000000000000000000000000000000000000000a3", + "0x00000000000000000000000000000000000000000000000000000000000000a5", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x000000000000000000000000000000302787373675614b5065e413ff7cb47635", - "0x000000000000000000000000000000000030223bf53e330987976984cbc8b777", - "0x0000000000000000000000000000005d7e3c622753bc9765188b58278de58e2b", - "0x0000000000000000000000000000000000155d33c8914989120390dd1f1b565a", - "0x000000000000000000000000000000ee6a96b509792fe4cb08ba5b690a829260", - "0x00000000000000000000000000000000002334a82c7c45a013fd6565043b3e34", - "0x000000000000000000000000000000b64df10cafd4414f4ca1cfcc9df1104b83", - "0x0000000000000000000000000000000000146a7f5eacb3170bc6517966b91c32", - "0x0000000000000000000000000000009d478f8685010a03b0c7e082a0bc36f004", - "0x000000000000000000000000000000000000ba76040d675cb33d320e90572c0b", - "0x0000000000000000000000000000003be6828a9dfcbeaf8f85587eb0e140f22c", - "0x00000000000000000000000000000000002be8cad756fc14e20e65bcdac55d84", - "0x00000000000000000000000000000060d5a42641ead1f373092743119aa3af8c", - "0x0000000000000000000000000000000000164fde87f47eecf92ee4516ec82322", - "0x000000000000000000000000000000a8a3b797a6fe3470f8e4f7869dd43c2bc7", - "0x000000000000000000000000000000000017ec5446085f31ee161d9b3aeb1dc4", - "0x00000000000000000000000000000058cb2aac262dfffdaf058bcc776cd9a491", - "0x00000000000000000000000000000000000c3392013d42001efe4b51a9f9839d", - "0x000000000000000000000000000000eccc64c49eb40425e8fe5224ccdc43c1e4", - "0x00000000000000000000000000000000001f6506bedb6d949f1f86098e65a72d", - "0x0000000000000000000000000000002dd78f1fd00370a8383fbc3ba9753685ec", - "0x00000000000000000000000000000000002162b403b60b934527df3cdf67eaeb", - "0x000000000000000000000000000000d68ea8aebfb824365dabd01f6423c18a43", - "0x00000000000000000000000000000000000e1416c2f366756eb6713a61c29e0e", - "0x000000000000000000000000000000577c33d5c10b485d8c213d16ac4664dd62", - "0x00000000000000000000000000000000001dbb32af825db919015b2f62ac527a", - "0x0000000000000000000000000000004089798ec9503f6d851e3f36c8134fffca", - "0x0000000000000000000000000000000000258c2a8625473699411a82c908b205", - "0x000000000000000000000000000000900e70ab0eb295b2339744f30290816695", - "0x00000000000000000000000000000000002b8710de153dbcb980c871c8641455", - "0x00000000000000000000000000000064c8a69e30c314b2c9f307b9859388b725", - "0x00000000000000000000000000000000000274811b6c58c4854427d143980169", - "0x000000000000000000000000000000bd95ab45995e60444bcbcf2f650df95bfb", - "0x00000000000000000000000000000000001f24b2f347e01bcdbd025ac0559c85", - "0x000000000000000000000000000000ee494e93426c721d97ae5aa62c90310e73", - "0x000000000000000000000000000000000015237248ed9e657735f540e8c7756d", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000013c3bccc5388da92f5d871dfc5798c6f7d", - "0x00000000000000000000000000000000001ed1d4ff8584dd1dd72fa169b590d1", - "0x0000000000000000000000000000003de967fe48c15d8973f84a210a95dd64de", - "0x0000000000000000000000000000000000127264f024fdb1905c1b9311a69989", - "0x00000000000000000000000000000067ab29550dc70b79125476307dde9d4eb1", - "0x00000000000000000000000000000000002dc480e42e6eea643f7ceb8de96baf", - "0x000000000000000000000000000000b78c2d92f2d7d849bac283fd66764341fb", - "0x0000000000000000000000000000000000230044dfbb796950437c31b1813440", - "0x0000000000000000000000000000002864afee535c3f2025e8d4270039646e66", - "0x00000000000000000000000000000000000dc28f5cecb40979171218dd29e4fe", - "0x0000000000000000000000000000009a0ffd05fb01bef000cc4c463054f3c151", - "0x000000000000000000000000000000000021d43883eb57a05047400f4a96ef19", - "0x000000000000000000000000000000acf8cee1de7f48c4f06266c8cfbad2151e", - "0x000000000000000000000000000000000006cd8fd38f0b7cd6f9151b5ac5337e", - "0x0000000000000000000000000000005654df5102eb796e74c9de073e107a39ac", - "0x0000000000000000000000000000000000028174128b65de0f5263c0e175b23b", - "0x0000000000000000000000000000008ca702a32d860f9280e625c387f3521f13", - "0x000000000000000000000000000000000019d792292ea80445492b5514e0dddc", - "0x00000000000000000000000000000050bbf69e0ae3345cd601a80f62379ab9b2", - "0x000000000000000000000000000000000023cc9e9fb3e9cb8b7c8e06200a279b", - "0x000000000000000000000000000000c3b8f00f6e9bd29ac661c44ce1a18528a2", - "0x000000000000000000000000000000000014a93c6f48de42b23c9ac1f7dbe811", - "0x000000000000000000000000000000f5328aed500abdc6320165cddcaca4fffa", - "0x0000000000000000000000000000000000232b23c95bd3a3df804c4a93de6472", - "0x0000000000000000000000000000006676bec8a1892b306e941dcc5d4011100c", - "0x00000000000000000000000000000000001df5186ae0a33ea8836ed671a892b4", - "0x0000000000000000000000000000004bad445ac665f80bc6acf512e07e85bc38", - "0x00000000000000000000000000000000001d2cdff266585d4078e18118fa9092", - "0x0000000000000000000000000000002c610edad308e27919b035922986bc8bff", - "0x0000000000000000000000000000000000088752e898b6a27f557963cf76e0c0", - "0x0000000000000000000000000000004f28478251fd7e453b7baa9f3020a953c6", - "0x0000000000000000000000000000000000169c31849094fa7939daae18f3c5bb", - "0x0000000000000000000000000000005dc0a499195b7457c28e8736067f4aded8", - "0x000000000000000000000000000000000025d7847b139148f3fc3f063fb052f1", - "0x000000000000000000000000000000789ab89aaf1ab942d695d28b895ed5b26a", - "0x000000000000000000000000000000000001b405d8ca6f44a8937d1becbe4681", - "0x0000000000000000000000000000005d3e2c6adda13104da28bd3d0d40726903", - "0x000000000000000000000000000000000006657556bced744fca4baebc7a7a08", - "0x0000000000000000000000000000001f1e42fe306d2ed7e063bc7dcaae2d30b3", - "0x000000000000000000000000000000000029f36b235f098995d51d6825cea708", - "0x00000000000000000000000000000011de9fe4ab7736b1c511efcb2eef509918", - "0x00000000000000000000000000000000002b60e192da925f3d135e6641d4ea6e", - "0x000000000000000000000000000000f088858045a80449ef186d814d04b39f9d", - "0x0000000000000000000000000000000000153d832bdd7a9f6463622c3507f239", - "0x000000000000000000000000000000d8a9eebdce988c3fd2f0999930a15138b2", - "0x0000000000000000000000000000000000075f1ac6bf2a6b487ae46aa505d3fa", - "0x00000000000000000000000000000087ee2dbbf2a048bad137c4db1b8ebff300", - "0x000000000000000000000000000000000011cbf2a4f1f11c63d8eb9513ee53e5", - "0x000000000000000000000000000000f5e4c418c7383a63f7237510cbcbb73c14", - "0x000000000000000000000000000000000028199b65e442cc03e751b5deb448e4", - "0x000000000000000000000000000000a702cc20da20448c18d688e550e57c745c", - "0x00000000000000000000000000000000001f309a205e7f82854e940ece89372c", - "0x0000000000000000000000000000007aac52d4113e4e71f28eb47905e925a389", - "0x000000000000000000000000000000000020e9e49e102536e6956c9bae558653", - "0x00000000000000000000000000000001ba2d9676f12016903f2696eba0098b47", - "0x00000000000000000000000000000000002f61c08a9c545fd795f8433ca00c12", - "0x0000000000000000000000000000001edfe50b3721a067770f9499a6083d4c77", - "0x0000000000000000000000000000000000248065a6e53c3f8b8d3db47272f7b0", - "0x000000000000000000000000000000ae34cb14f3eb595d76a2dd9402b1b23d64", - "0x000000000000000000000000000000000017ec2c75eec02d3be50d530b2b11fa", - "0x000000000000000000000000000000b0c14b05eabc7a7ad842ef1166b9fbdd8b", - "0x00000000000000000000000000000000002e2832206b3d1167b6287b5eb53374", - "0x0000000000000000000000000000002bf99439219158d7f65fa75dea73dc9a15", - "0x00000000000000000000000000000000002149e5cd921f23b5d7de4650b9daa0", + "0x00000000000000000000000000000069e10e8ac0c5eeaf696377bf18d201382d", + "0x000000000000000000000000000000000029156363c0d97b18b5076e4826bb42", + "0x0000000000000000000000000000004914fdac107690d069ab86e48e9e1f718d", + "0x00000000000000000000000000000000001c144dd488f639e3f90ce57c0fbc51", + "0x00000000000000000000000000000094e11281a03ab23ffd5c9d65934b044c72", + "0x0000000000000000000000000000000000252b1aad27b2451bd71722eddcbec3", + "0x000000000000000000000000000000d243b83f9157d3825d17776904b2e30ce6", + "0x000000000000000000000000000000000011e4c9d1e2635bb3265c098687b4cf", + "0x000000000000000000000000000000bea404a29f0a3ec523478c4807e7721aa1", + "0x000000000000000000000000000000000016a85588062aaa1bb4bb7f8936e26c", + "0x000000000000000000000000000000d6103cdc590539d58b6b43223503d2b8e4", + "0x00000000000000000000000000000000001a3fe9ba7752c60b02f76180bf7580", + "0x000000000000000000000000000000afb76ef46473b8cd4e70fbd9f5b8cca3ab", + "0x00000000000000000000000000000000002b15aa201d6507a77b4238d357ccd7", + "0x000000000000000000000000000000191cac1c728a9f05112f0ef2a3903123f0", + "0x0000000000000000000000000000000000237aaf71c0cafed37cb5be2e647c41", + "0x000000000000000000000000000000dea16bbfa56e9fdea7e90e742f1307c4ea", + "0x0000000000000000000000000000000000289afe1373e02bbbbe7b8bf4019b0f", + "0x0000000000000000000000000000009a2a70febbe6d40df3c73d8a367a55e1e6", + "0x000000000000000000000000000000000022fad633ab5fe0737a5d0d0a83691d", + "0x0000000000000000000000000000008a4ad36b2fa0600897e26dcd4bf71ef928", + "0x0000000000000000000000000000000000288ebc352e3ae63e436ce08e521149", + "0x000000000000000000000000000000382706154643c881d64321c770ca547b86", + "0x000000000000000000000000000000000022d0e4a264c22fd0947488bd1848e9", + "0x000000000000000000000000000000dd98d271d4d16e66d61039d006fdb08dd2", + "0x00000000000000000000000000000000002646eb78d367e3ddae2ee29657e78f", + "0x0000000000000000000000000000006e859a711aa7352e651b1b48330125a03a", + "0x000000000000000000000000000000000021784c3d16da5e715233b84c49fe1b", + "0x00000000000000000000000000000005f72555f453a9217bb6e4c82977dac532", + "0x00000000000000000000000000000000002cf470240ad684e3475b9bf33b3df3", + "0x0000000000000000000000000000008d1820f3332cdb266b9fda0d5fd712a03d", + "0x00000000000000000000000000000000000634b1bd9213ff8d56c7a7b15e6e68", + "0x0000000000000000000000000000000e11fc3d99f35e8f96f606af9383dc014a", + "0x000000000000000000000000000000000021f5dd6f5545662b8b5d023c95dc4c", + "0x000000000000000000000000000000aa3554cd18b7b35adea5ad6547d603b897", + "0x00000000000000000000000000000000002782aa84be0c0aff27dbf00160a4f9", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000c259c40db2dd2e0f76c497a3b531a0c0c8", + "0x00000000000000000000000000000000001f0c16b5bffaccb7423579398dcbaf", + "0x00000000000000000000000000000020aafd939b37536a969b1b08f22bfdd4f7", + "0x000000000000000000000000000000000025ae7186e95442d468a42f2f02194b", + "0x00000000000000000000000000000064badfba2db29b1074b9673a5fad9060da", + "0x00000000000000000000000000000000002d215cf76c12dd04193776d59422df", + "0x0000000000000000000000000000005cb806968eae28f7508e9b41e5593cb55f", + "0x00000000000000000000000000000000000ca6b79edb50770058953416b1fc23", + "0x000000000000000000000000000000a85fed316b782788719ad9b751ed4e9b03", + "0x00000000000000000000000000000000001a5c136c83eda1110352dc0d2ebc52", + "0x000000000000000000000000000000978ad9abd0e4057ee8bc0bdf36996a6fb2", + "0x000000000000000000000000000000000001827c21537f7659f3a62fc50e95fc", + "0x000000000000000000000000000000b39d6e29934b38842b9dcc80670e6cd6a9", + "0x00000000000000000000000000000000002b0e89f1826987ffc4c7040a52be43", + "0x00000000000000000000000000000026e9b2cab47c770948e4fb50e22adabd5e", + "0x000000000000000000000000000000000021fb82adb8b638df65df02a825ecaf", + "0x000000000000000000000000000000fb61980f79866aaec6003b1af534b09599", + "0x00000000000000000000000000000000001398447900a4544eeae6d2db77e653", + "0x0000000000000000000000000000001b20e5d7320563442c56b2ca9f95d62679", + "0x00000000000000000000000000000000000ed78c4fccf5dd52b3299fbb438ba8", + "0x0000000000000000000000000000003f1b542e1a8aa6ece436c125601234cb36", + "0x000000000000000000000000000000000029a72d97aeb5814cbbbe930e3e365d", + "0x0000000000000000000000000000008f4788b4779e79912cdbc9ada1fabd7c08", + "0x000000000000000000000000000000000016928eb8f8c464f94e5abd98d94912", + "0x000000000000000000000000000000555ab1b9107f58946c075041f08f2b1fe9", + "0x00000000000000000000000000000000001d0f0fbafc2385bf41b55d6c66ba2a", + "0x0000000000000000000000000000004b4c80163a1e826fd8060282e7909b2e63", + "0x000000000000000000000000000000000026e56cd73c0e6cf6df7a17e619f560", + "0x00000000000000000000000000000065536372856c2fc418fb9cbab88a288a9f", + "0x00000000000000000000000000000000000c8fd7adc334b50cb479dd14a12e95", + "0x000000000000000000000000000000d4d413eeec90160fdb9108e8b53306dd5f", + "0x0000000000000000000000000000000000150ace84ed473a2c609c6114aaffde", + "0x000000000000000000000000000000ad385b6e5f06aa810b8e701c648e9cdf88", + "0x00000000000000000000000000000000000f590c5eb6107891432437ab08d064", + "0x000000000000000000000000000000eb809625979801e560b703d6c4d977e1bd", + "0x00000000000000000000000000000000000cd72d4a8cc0d63226e3d7ed4b78fa", + "0x0000000000000000000000000000007f0b64756bd847fd82a267178cf8f43acf", + "0x000000000000000000000000000000000021ddcf70fff13d14bb0453e95f7973", + "0x00000000000000000000000000000066a8662d7342eca23ae9e8bf17850cd172", + "0x000000000000000000000000000000000012750e9bac9a718961f0f8614c7c21", + "0x00000000000000000000000000000012ca2a8f4e0c24f57a9100c62c5e921ba7", + "0x00000000000000000000000000000000000492f0f5ce51b53b46ce7e2576f32f", + "0x000000000000000000000000000000b9598d418fcd3e94b1d5a3347835c35293", + "0x00000000000000000000000000000000000fe8baaec338b4e2f856ad1fe96eb1", + "0x0000000000000000000000000000002b8f3782157dcbcf587fb7290074701f2f", + "0x000000000000000000000000000000000012ef41c70f5590ee81b8c219ba0d55", + "0x000000000000000000000000000000f98d108d322d8bd8bf2aad8a1df2cb3c70", + "0x000000000000000000000000000000000003e8fb0c8b4c8c3900a1b85a5b4550", + "0x0000000000000000000000000000009f3672e356e98b3a7a3deae61a9b87dd29", + "0x0000000000000000000000000000000000301cc7d23879687ec5cbdc195436f9", + "0x00000000000000000000000000000023885c7bce9e0d10196c6f831bf4b229de", + "0x00000000000000000000000000000000001602ff1fe4f4cb70c26ad5bc16858a", + "0x000000000000000000000000000000fcf2a0c1eceb385200a0ee09c40c758fbf", + "0x0000000000000000000000000000000000253b9dd23a0982e9db87324acd9aba", + "0x00000000000000000000000000000097a1599a0f5c04ef46d89bc4be8629ed3f", + "0x00000000000000000000000000000000002ef5dbc090a304ab4d948f1e08a8de", + "0x000000000000000000000000000000691acea534b501c5d7a5984cbb56e2f677", + "0x0000000000000000000000000000000000256377fe9f1696e2316a0ede70e194", + "0x000000000000000000000000000000b1d93380e5a238c52f4d9327b8ff615f45", + "0x0000000000000000000000000000000000029f05bf11aee014fc3ca870e42dc7", + "0x00000000000000000000000000000083f400e03505d6e2e6a8d315ec5b24f54c", + "0x00000000000000000000000000000000000c031249619645a60ab26bf3069331", + "0x0000000000000000000000000000006e7016f5ace833e2821d171ef0fe2b9f8d", + "0x00000000000000000000000000000000000f8b062a1227fc7a323aed56615912", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000f6e131d6ce506eb0d3892b0c27cfe0f4a8", - "0x00000000000000000000000000000000001668301c6c961e364526eb8abf9792", - "0x0000000000000000000000000000001ace35f485f93f441c7e0a6df02303688a", - "0x000000000000000000000000000000000010adb5f7e278a58893faf2b4b3ed80" + "0x0000000000000000000000000000000a80044848d5d1d37064d3f6b42ec339c7", + "0x00000000000000000000000000000000000475fb6cd2420cf5aeb4621c6ee163", + "0x00000000000000000000000000000033cdd9ef133b9035d046aec1dbd3799fdb", + "0x000000000000000000000000000000000011310bd4c4028b1d9a46f47dabe63c" ] - hash = "0x16e2d4dba2d1561651bffffca7396ffbb146c6eea7b127f67a4b056c70bc7da3" + hash = "0x149f1a7b8aa1ad4695eaea8f60119a189321abca9fe7c33382efae3bf7bcc693" diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_rollup_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_rollup_public_inputs.nr index 9600adda08ed..5aaa1d151af8 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_rollup_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/block_rollup_public_inputs.nr @@ -43,6 +43,14 @@ pub struct BlockRollupPublicInputs { // Block root rollups that are not the first in a checkpoint will have an `in_hash` value of 0. pub in_hash: Field, + // Inbox rolling-hash chain segment consumed by this block range, set in the first block root from the parity root + // and propagated to the checkpoint root exactly like `in_hash`: the first block root carries the checkpoint's + // `(start, end)`, non-first block roots carry `(0, 0)`, merges take the left rollup's pair, and + // `validate_consecutive_block_rollups` asserts the right rollup's pair is zero. Unlike `in_hash`, the value may + // legitimately be zero (genesis / empty checkpoint), so it is not asserted nonzero at the checkpoint root. + pub start_inbox_rolling_hash: Field, + pub end_inbox_rolling_hash: Field, + // Root of the *wonky* tree composed of all tx out hashes in this block. It will be combined with the `out_hash` // values from other blocks within the same checkpoint to form a *wonky* tree. // The tx and block out hashes form a wonky tree and not an unbalanced tree because zero values are skipped. diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/checkpoint_rollup_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/checkpoint_rollup_public_inputs.nr index 9be134f81a4f..9c990d82cba9 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/checkpoint_rollup_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/checkpoint_rollup_public_inputs.nr @@ -29,6 +29,12 @@ pub struct CheckpointRollupPublicInputs { // final epoch out hash inserted into the Outbox on L1. pub new_out_hash: AppendOnlyTreeSnapshot, + // Inbox rolling-hash chain segment consumed by this checkpoint range. `start_inbox_rolling_hash` is the chain value + // before the first checkpoint's messages, `end_inbox_rolling_hash` is the value after the last checkpoint's. The end + // value is what lands in the checkpoint header. Checkpoint merges assert `right.start == left.end` for continuity. + pub start_inbox_rolling_hash: Field, + pub end_inbox_rolling_hash: Field, + // Hashes of checkpoint headers for this checkpoint range. pub checkpoint_header_hashes: [Field; MAX_CHECKPOINTS_PER_EPOCH], @@ -61,6 +67,8 @@ impl Empty for CheckpointRollupPublicInputs { new_archive: AppendOnlyTreeSnapshot::empty(), previous_out_hash: AppendOnlyTreeSnapshot::empty(), new_out_hash: AppendOnlyTreeSnapshot::empty(), + start_inbox_rolling_hash: 0, + end_inbox_rolling_hash: 0, checkpoint_header_hashes: [0; MAX_CHECKPOINTS_PER_EPOCH], fees: [FeeRecipient::empty(); MAX_CHECKPOINTS_PER_EPOCH], start_blob_accumulator: BlobAccumulator::empty(), diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/parity_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/parity_public_inputs.nr index 71fe26cdff17..da9823d0b470 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/parity_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/parity_public_inputs.nr @@ -4,12 +4,27 @@ use types::traits::{Deserialize, Empty, Serialize}; pub struct ParityPublicInputs { pub sha_root: Field, pub converted_root: Field, + // Rolling hash of the Inbox message chain before absorbing this batch of messages. + pub start_rolling_hash: Field, + // Rolling hash of the Inbox message chain after absorbing the `num_msgs` real messages in this batch. Each link is + // `sha256ToField(prev || msg)`, matching the truncated-to-field sha256 the L1 Inbox accumulates. + pub end_rolling_hash: Field, + // Number of real (non-padding) messages absorbed into the rolling hash by this batch. + pub num_msgs: u32, pub vk_tree_root: Field, pub prover_id: Field, } impl Empty for ParityPublicInputs { fn empty() -> Self { - ParityPublicInputs { sha_root: 0, converted_root: 0, vk_tree_root: 0, prover_id: 0 } + ParityPublicInputs { + sha_root: 0, + converted_root: 0, + start_rolling_hash: 0, + end_rolling_hash: 0, + num_msgs: 0, + vk_tree_root: 0, + prover_id: 0, + } } } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/root_rollup_public_inputs.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/root_rollup_public_inputs.nr index 33f5e0d2c3c8..38c930634bb7 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/root_rollup_public_inputs.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/root_rollup_public_inputs.nr @@ -17,6 +17,11 @@ pub struct RootRollupPublicInputs { // Root of the epoch out hash *balanced* tree. // The out hash of the first checkpoint in the epoch is inserted at index 0, the second at index 1, and so on. pub out_hash: Field, + // Inbox rolling-hash chain segment consumed across the epoch: the chain value before the first checkpoint's + // messages and after the last checkpoint's. Continuity within the range is enforced by the checkpoint merges; + // L1 passes both through to proof verification without validating them until the Fast Inbox flip. + pub previous_inbox_rolling_hash: Field, + pub end_inbox_rolling_hash: Field, // Checkpoint header hashes for each checkpoint in this epoch. // The header hash of the first checkpoint in the epoch is at index 0, the second at index 1, and so on. pub checkpoint_header_hashes: [Field; MAX_CHECKPOINTS_PER_EPOCH], diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/tests/mod.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/tests/mod.nr index 52d7d174f36e..0a5999647316 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/tests/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/tests/mod.nr @@ -145,6 +145,9 @@ impl TestBuilder { assert_eq(pi.in_hash, left.in_hash); + assert_eq(pi.start_inbox_rolling_hash, left.start_inbox_rolling_hash); + assert_eq(pi.end_inbox_rolling_hash, left.end_inbox_rolling_hash); + let expected_out_hash = if (left.out_hash != 0) & (right.out_hash != 0) { accumulate_sha256(left.out_hash, right.out_hash) } else if left.out_hash != 0 { diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/merge_block_rollups.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/merge_block_rollups.nr index 8adf08cb1ba3..3925830f1936 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/merge_block_rollups.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/merge_block_rollups.nr @@ -20,6 +20,11 @@ pub fn merge_block_rollups( // only. It's checked in `validate_consecutive_block_rollups` to make sure only the left rollup carries it. let in_hash = left.in_hash; + // The inbox rolling-hash pair propagates the same way: the first block root carries the checkpoint's `(start, end)`, + // so we take the left rollup's pair. `validate_consecutive_block_rollups` asserts the right rollup's pair is zero. + let start_inbox_rolling_hash = left.start_inbox_rolling_hash; + let end_inbox_rolling_hash = left.end_inbox_rolling_hash; + let out_hash = accumulate_out_hash(left.out_hash, right.out_hash); let accumulated_fees = left.accumulated_fees + right.accumulated_fees; @@ -37,6 +42,8 @@ pub fn merge_block_rollups( timestamp: left.timestamp, // Both blocks have the same timestamp. block_headers_hash, in_hash, + start_inbox_rolling_hash, + end_inbox_rolling_hash, out_hash, accumulated_fees, accumulated_mana_used, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/validate_consecutive_block_rollups.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/validate_consecutive_block_rollups.nr index d01d67845e02..f1af1be31be4 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/validate_consecutive_block_rollups.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_merge/utils/validate_consecutive_block_rollups.nr @@ -49,4 +49,14 @@ fn assert_prev_block_rollups_follow_on_from_each_other( // We prevent the right rollup from propagating a nonzero `in_hash`, so it's impossible for any // block but the first to propagate a nonzero `in_hash` up to the checkpoint root. assert_eq(right.in_hash, 0, "Right rollup must not carry in_hash"); + + // The inbox rolling-hash pair follows the same rule: only the first block root (which becomes the leftmost leaf) + // may carry it, so the right rollup's pair must always be zero. The first block's nonzero `in_hash` already pins it + // as the leftmost leaf, so the rolling hash rides along on the same block even when its value is legitimately zero. + assert_eq( + right.start_inbox_rolling_hash, + 0, + "Right rollup must not carry start_inbox_rolling_hash", + ); + assert_eq(right.end_inbox_rolling_hash, 0, "Right rollup must not carry end_inbox_rolling_hash"); } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_rollup_public_inputs_composer.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_rollup_public_inputs_composer.nr index 2d11d861b95e..312a12024c20 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_rollup_public_inputs_composer.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/components/block_rollup_public_inputs_composer.nr @@ -33,6 +33,8 @@ pub struct BlockRollupPublicInputsComposer { num_txs: u16, // The followings are set by calling `with_new_l1_to_l2_messages` explicitly. in_hash: Field, + start_inbox_rolling_hash: Field, + end_inbox_rolling_hash: Field, new_l1_to_l2: AppendOnlyTreeSnapshot, } @@ -63,6 +65,8 @@ impl BlockRollupPublicInputsComposer { num_txs: 0, // The followings are updated by calling `with_new_l1_to_l2_messages` explicitly. in_hash: 0, + start_inbox_rolling_hash: 0, + end_inbox_rolling_hash: 0, new_l1_to_l2: previous_state.l1_to_l2_message_tree, } } @@ -99,6 +103,8 @@ impl BlockRollupPublicInputsComposer { // The followings are updated by calling `update_l1_to_l2_tree_snapshots` explicitly. previous_l1_to_l2: rollup.constants.l1_to_l2_tree_snapshot, in_hash: 0, + start_inbox_rolling_hash: 0, + end_inbox_rolling_hash: 0, new_l1_to_l2: rollup.constants.l1_to_l2_tree_snapshot, } } @@ -114,6 +120,8 @@ impl BlockRollupPublicInputsComposer { subtree_root_sibling_path: [Field; L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH], ) -> Self { self.in_hash = parity.sha_root; + self.start_inbox_rolling_hash = parity.start_rolling_hash; + self.end_inbox_rolling_hash = parity.end_rolling_hash; // Insert subtree into the l1-to-l2 message tree. self.new_l1_to_l2 = append_only_tree::insert_subtree_root_to_snapshot::( @@ -167,6 +175,8 @@ impl BlockRollupPublicInputsComposer { timestamp: self.timestamp, block_headers_hash: block_header_hash, in_hash: self.in_hash, + start_inbox_rolling_hash: self.start_inbox_rolling_hash, + end_inbox_rolling_hash: self.end_inbox_rolling_hash, out_hash: self.out_hash, accumulated_fees: self.accumulated_fees, accumulated_mana_used: self.accumulated_mana_used, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/tests/mod.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/tests/mod.nr index 03e04d24b07f..5e4d2aef5bf9 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/tests/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/block_root/tests/mod.nr @@ -352,6 +352,16 @@ impl TestBuilder { }; assert_eq(pi.in_hash, expected_in_hash); + // --- Inbox rolling hash --- + + let (expected_start_rolling_hash, expected_end_rolling_hash) = if self.is_first_block_root { + (self.parity_root.start_rolling_hash, self.parity_root.end_rolling_hash) + } else { + (0, 0) + }; + assert_eq(pi.start_inbox_rolling_hash, expected_start_rolling_hash); + assert_eq(pi.end_inbox_rolling_hash, expected_end_rolling_hash); + // --- Out hash -- let expected_out_hash = if is_empty_block { diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/consecutive_checkpoint_rollups_tests.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/consecutive_checkpoint_rollups_tests.nr index 060d9a2d4e28..a6f865298ba1 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/consecutive_checkpoint_rollups_tests.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/consecutive_checkpoint_rollups_tests.nr @@ -238,6 +238,18 @@ fn non_consecutive_out_hash_next_available_leaf_indices() { builder.execute_and_fail(); } +// --- inbox rolling hash --- + +#[test(should_fail_with = "Mismatched inbox rolling hash: expected right.start to match left.end")] +fn non_consecutive_inbox_rolling_hash() { + let mut builder = TestBuilder::default(); + + // Break the continuity of the rolling-hash chain between the two checkpoints. + builder.right_rollup.start_inbox_rolling_hash += 1; + + builder.execute_and_fail(); +} + // --- blob accumulators --- #[test(should_fail_with = "Mismatched blob accumulators: expected right.start_blob_accumulator to match left.end_blob_accumulator")] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/mod.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/mod.nr index 96f8a16da3ee..c4e7c8eb6f44 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/tests/mod.nr @@ -107,6 +107,11 @@ impl TestBuilder { assert_eq(pi.new_out_hash, right.new_out_hash); assert(pi.previous_out_hash != pi.new_out_hash); + // The merged range spans from the left checkpoint's start to the right checkpoint's end; continuity across the + // two ranges is enforced in `validate_consecutive_checkpoint_rollups`. + assert_eq(pi.start_inbox_rolling_hash, left.start_inbox_rolling_hash); + assert_eq(pi.end_inbox_rolling_hash, right.end_inbox_rolling_hash); + let mut expected_header_hashes = [0; MAX_CHECKPOINTS_PER_EPOCH]; let mut expected_fees = [FeeRecipient::empty(); MAX_CHECKPOINTS_PER_EPOCH]; for i in 0..self.num_left_checkpoints as u32 { diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/merge_checkpoint_rollups.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/merge_checkpoint_rollups.nr index 0470e80e0c17..68a28c843fe0 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/merge_checkpoint_rollups.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/merge_checkpoint_rollups.nr @@ -55,6 +55,10 @@ pub fn merge_checkpoint_rollups( new_archive: right.new_archive, previous_out_hash: left.previous_out_hash, new_out_hash: right.new_out_hash, + // The rolling-hash chain spans both checkpoint ranges: start from the left, end at the right. Continuity + // (`right.start == left.end`) is asserted in `validate_consecutive_checkpoint_rollups`. + start_inbox_rolling_hash: left.start_inbox_rolling_hash, + end_inbox_rolling_hash: right.end_inbox_rolling_hash, checkpoint_header_hashes, fees, start_blob_accumulator: left.start_blob_accumulator, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/validate_consecutive_checkpoint_rollups.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/validate_consecutive_checkpoint_rollups.nr index 8d4fd24bd73b..c8857b8b5501 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/validate_consecutive_checkpoint_rollups.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_merge/utils/validate_consecutive_checkpoint_rollups.nr @@ -29,6 +29,15 @@ fn assert_rollups_follow_on_from_each_other( "Mismatched out hashes: expected right.previous_out_hash to match left.new_out_hash", ); + // The inbox rolling-hash chain must be continuous across consecutive checkpoints: the right checkpoint's chain must + // start where the left checkpoint's chain ended. An end-only anchor would let a prover restart the chain from an + // earlier bucket and re-insert already-consumed messages, so continuity is enforced here (see AZIP-22). + assert_eq( + left.end_inbox_rolling_hash, + right.start_inbox_rolling_hash, + "Mismatched inbox rolling hash: expected right.start to match left.end", + ); + assert_eq( left.end_blob_accumulator, right.start_blob_accumulator, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/components/checkpoint_rollup_public_inputs_composer.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/components/checkpoint_rollup_public_inputs_composer.nr index c9f52a742e63..bbeb2122edb3 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/components/checkpoint_rollup_public_inputs_composer.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/components/checkpoint_rollup_public_inputs_composer.nr @@ -96,6 +96,8 @@ impl CheckpointRollupPublicInputsComposer { new_archive: merged_rollup.new_archive, previous_out_hash: self.previous_out_hash, new_out_hash, + start_inbox_rolling_hash: merged_rollup.start_inbox_rolling_hash, + end_inbox_rolling_hash: merged_rollup.end_inbox_rolling_hash, checkpoint_header_hashes, fees, start_blob_accumulator: self.start_blob_accumulator, @@ -121,6 +123,7 @@ impl CheckpointRollupPublicInputsComposer { block_headers_hash: merged_rollup.block_headers_hash, blobs_hash: self.blobs_hash, in_hash: merged_rollup.in_hash, + inbox_rolling_hash: merged_rollup.end_inbox_rolling_hash, epoch_out_hash, slot_number: constants.slot_number, timestamp: merged_rollup.timestamp, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/tests/mod.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/tests/mod.nr index ad894c973294..4cae13098170 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/tests/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/tests/mod.nr @@ -340,6 +340,10 @@ impl TestBuilder { assert_eq(pi.new_archive, right.new_archive); assert(pi.previous_archive != pi.new_archive); + // The checkpoint's rolling-hash pair comes from the merged block rollup (carried by the first block on the left). + assert_eq(pi.start_inbox_rolling_hash, left.start_inbox_rolling_hash); + assert_eq(pi.end_inbox_rolling_hash, left.end_inbox_rolling_hash); + // Safety: This is just for testing. Unconstrained to speed up the tests. let expected_checkpoint_header = unsafe { self.get_expected_checkpoint_header() }; assert_array_eq( @@ -424,6 +428,7 @@ impl TestBuilder { block_headers_hash, blobs_hash: self.hints.blobs_hash, in_hash: left.in_hash, + inbox_rolling_hash: left.end_inbox_rolling_hash, epoch_out_hash, slot_number: left.constants.slot_number, timestamp: right.timestamp, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_base.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_base.nr index 4cc7451d0d34..96fb8be81dbd 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_base.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_base.nr @@ -1,8 +1,17 @@ -use crate::abis::ParityPublicInputs; -use types::{constants::NUM_MSGS_PER_BASE_PARITY, merkle_tree::MerkleTree}; +use crate::{abis::ParityPublicInputs, inbox_rolling_hash::accumulate_inbox_rolling_hash}; +use types::{ + constants::NUM_MSGS_PER_BASE_PARITY, merkle_tree::MerkleTree, + utils::arrays::assert_trailing_zeros, +}; pub struct ParityBasePrivateInputs { pub(crate) msgs: [Field; NUM_MSGS_PER_BASE_PARITY], + // Rolling hash of the Inbox message chain before absorbing this batch. The orchestrator threads it so that each + // base's start equals the previous base's end, keeping the chain continuous across the four base proofs. + pub(crate) start_rolling_hash: Field, + // Number of real (non-padding) messages in `msgs`. Only these are absorbed into the rolling hash; the merkle roots + // still absorb the full padded batch as before. + pub(crate) num_msgs: u32, pub(crate) vk_tree_root: Field, pub(crate) prover_id: Field, } @@ -22,12 +31,22 @@ pub struct ParityBasePrivateInputs { /// /// VkIndex: PARITY_BASE_VK_INDEX pub fn execute(inputs: ParityBasePrivateInputs) -> ParityPublicInputs { + // The merkle roots absorb the full padded batch (frontier-tree semantics unchanged), while the rolling hash chains + // only the real messages. Assert the padding lanes are zero so they can't silently contribute to either commitment. + assert_trailing_zeros(inputs.msgs, inputs.num_msgs); + let sha_tree = MerkleTree::new_sha(inputs.msgs); let poseidon_tree = MerkleTree::new(inputs.msgs); + let end_rolling_hash = + accumulate_inbox_rolling_hash(inputs.start_rolling_hash, inputs.msgs, inputs.num_msgs); + ParityPublicInputs { sha_root: sha_tree.get_root(), converted_root: poseidon_tree.get_root(), + start_rolling_hash: inputs.start_rolling_hash, + end_rolling_hash, + num_msgs: inputs.num_msgs, vk_tree_root: inputs.vk_tree_root, prover_id: inputs.prover_id, } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_root.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_root.nr index 62bdda658e0b..857bedaee441 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_root.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/parity_root.nr @@ -56,12 +56,28 @@ pub fn execute(inputs: ParityRootPrivateInputs) -> ParityPublicInputs { converted_roots[i] = inputs.children[i].public_inputs.converted_root; } + // Thread the rolling hash sequentially across the four base segments: each child must start from where the previous + // one ended. This keeps the sha256 chain chunked across the parallel base proofs while enforcing continuity. + let mut num_msgs = inputs.children[0].public_inputs.num_msgs; + for i in 1..NUM_BASE_PARITY_PER_ROOT_PARITY { + assert_eq( + inputs.children[i].public_inputs.start_rolling_hash, + inputs.children[i - 1].public_inputs.end_rolling_hash, + "Inconsistent rolling hash across parity base circuits", + ); + num_msgs += inputs.children[i].public_inputs.num_msgs; + } + let sha_tree = MerkleTree::new_sha(sha_roots); let poseidon_tree = MerkleTree::new(converted_roots); ParityPublicInputs { sha_root: sha_tree.get_root(), converted_root: poseidon_tree.get_root(), + start_rolling_hash: inputs.children[0].public_inputs.start_rolling_hash, + end_rolling_hash: inputs.children[NUM_BASE_PARITY_PER_ROOT_PARITY - 1].public_inputs + .end_rolling_hash, + num_msgs, vk_tree_root, prover_id, } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_base_tests.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_base_tests.nr index 5dc2071f28c4..185e3d6fd92d 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_base_tests.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_base_tests.nr @@ -1,4 +1,4 @@ -use crate::parity::parity_base::{self, ParityBasePrivateInputs}; +use crate::{inbox_rolling_hash::accumulate_inbox_rolling_hash, parity::parity_base::{self, ParityBasePrivateInputs}}; use types::constants::NUM_MSGS_PER_BASE_PARITY; #[test] @@ -7,7 +7,13 @@ fn public_inputs_match_expected() { for i in 0..NUM_MSGS_PER_BASE_PARITY { msgs[i] = i as Field; } - let private_inputs = ParityBasePrivateInputs { msgs, vk_tree_root: 42, prover_id: 7 }; + let private_inputs = ParityBasePrivateInputs { + msgs, + start_rolling_hash: 0, + num_msgs: NUM_MSGS_PER_BASE_PARITY, + vk_tree_root: 42, + prover_id: 7, + }; let public_inputs = parity_base::execute(private_inputs); let expected_sha_root = 0x279d4d4dd5bcb9b1a4e742640588b917102f9f8bc97a6c95706ca4e7a8a76b; @@ -18,4 +24,56 @@ fn public_inputs_match_expected() { assert_eq(public_inputs.converted_root, expected_converted_root); assert_eq(public_inputs.vk_tree_root, 42); assert_eq(public_inputs.prover_id, 7); + + // The rolling hash chains all real messages on top of the start value, and the base echoes back its start/count. + assert_eq(public_inputs.start_rolling_hash, 0); + assert_eq(public_inputs.num_msgs, NUM_MSGS_PER_BASE_PARITY); + assert_eq( + public_inputs.end_rolling_hash, + accumulate_inbox_rolling_hash(0, msgs, NUM_MSGS_PER_BASE_PARITY), + ); +} + +#[test] +fn rolling_hash_ignores_padding_and_threads_start() { + // Only the first three lanes are real; the rest are zero padding. + let mut msgs = [0; NUM_MSGS_PER_BASE_PARITY]; + msgs[0] = 11; + msgs[1] = 22; + msgs[2] = 33; + + let start = 0x2a; + let private_inputs = ParityBasePrivateInputs { + msgs, + start_rolling_hash: start, + num_msgs: 3, + vk_tree_root: 42, + prover_id: 7, + }; + let public_inputs = parity_base::execute(private_inputs); + + assert_eq(public_inputs.start_rolling_hash, start); + assert_eq(public_inputs.num_msgs, 3); + assert_eq( + public_inputs.end_rolling_hash, + accumulate_inbox_rolling_hash(start, [11, 22, 33], 3), + ); +} + +#[test(should_fail_with = "Found non-zero field after breakpoint")] +fn non_zero_padding_lane_fails() { + // Claim two real messages but leave a non-zero value in a padding lane. + let mut msgs = [0; NUM_MSGS_PER_BASE_PARITY]; + msgs[0] = 11; + msgs[1] = 22; + msgs[5] = 999; + + let private_inputs = ParityBasePrivateInputs { + msgs, + start_rolling_hash: 0, + num_msgs: 2, + vk_tree_root: 42, + prover_id: 7, + }; + let _ = parity_base::execute(private_inputs); } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_root_tests.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_root_tests.nr index beb9ef9f2ab8..e53ac4f44142 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_root_tests.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/parity_root_tests.nr @@ -27,17 +27,40 @@ impl TestBuilder { 0x53042d820859d80c474d4694e03778f8dc0ac88fc1c3a97b4369c1096e904a, ]; - let children = children_sha_roots.map(|sha_root| Self::make_proof_data(sha_root, vk_data)); + // Thread the rolling hash across the four base segments: each child's start equals the previous child's end. + let mut children = [Self::make_proof_data(0, 0, 0, 0, vk_data); NUM_BASE_PARITY_PER_ROOT_PARITY]; + let mut start_rolling_hash = 100; + for i in 0..NUM_BASE_PARITY_PER_ROOT_PARITY { + let end_rolling_hash = start_rolling_hash + 1000; + children[i] = Self::make_proof_data( + children_sha_roots[i], + start_rolling_hash, + end_rolling_hash, + (i + 1) as u32, + vk_data, + ); + start_rolling_hash = end_rolling_hash; + } Self { children } } fn make_proof_data( sha_root: Field, + start_rolling_hash: Field, + end_rolling_hash: Field, + num_msgs: u32, vk_data: VkData, ) -> ParityBaseProofData { - let public_inputs = - ParityPublicInputs { sha_root, converted_root: 0, vk_tree_root, prover_id: 42 }; + let public_inputs = ParityPublicInputs { + sha_root, + converted_root: 0, + start_rolling_hash, + end_rolling_hash, + num_msgs, + vk_tree_root, + prover_id: 42, + }; let value_offset = sha_root / 2; ProofData { @@ -67,6 +90,21 @@ fn public_inputs_match_expected() { assert_eq(public_inputs.converted_root, expected_converted_root); assert_eq(public_inputs.vk_tree_root, vk_tree_root); assert_eq(public_inputs.prover_id, 42); + + // Output start is the first child's start, output end is the last child's end, and counts are summed. + assert_eq(public_inputs.start_rolling_hash, 100); + assert_eq(public_inputs.end_rolling_hash, 100 + NUM_BASE_PARITY_PER_ROOT_PARITY as Field * 1000); + assert_eq(public_inputs.num_msgs, 1 + 2 + 3 + 4); +} + +#[test(should_fail_with = "Inconsistent rolling hash across parity base circuits")] +fn inconsistent_rolling_hash() { + let mut builder = TestBuilder::new(); + + // Break the chain continuity between the second and third child. + builder.children[2].public_inputs.start_rolling_hash += 1; + + let _ = builder.execute(); } #[test(should_fail_with = "Inconsistent vk tree roots across parity base circuits")] diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup.nr index 8ce096c85a55..e816ba911dfb 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/root_rollup.nr @@ -119,6 +119,8 @@ pub fn execute(inputs: RootRollupPrivateInputs) -> RootRollupPublicInputs { previous_archive_root: merged.previous_archive.root, new_archive_root: merged.new_archive.root, out_hash: merged.new_out_hash.root, + previous_inbox_rolling_hash: merged.start_inbox_rolling_hash, + end_inbox_rolling_hash: merged.end_inbox_rolling_hash, checkpoint_header_hashes: merged.checkpoint_header_hashes, fees: merged.fees, constants: merged.constants, diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/tests/mod.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/tests/mod.nr index be50184fd264..a306decbdb3b 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/tests/mod.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/root/tests/mod.nr @@ -122,6 +122,10 @@ impl TestBuilder { assert_eq(pi.out_hash, right.new_out_hash.root); + // The epoch exposes the first checkpoint's chain start and the last checkpoint's chain end as a pass-through. + assert_eq(pi.previous_inbox_rolling_hash, left.start_inbox_rolling_hash); + assert_eq(pi.end_inbox_rolling_hash, right.end_inbox_rolling_hash); + let mut expected_header_hashes = [0; MAX_CHECKPOINTS_PER_EPOCH]; let mut expected_fees = [FeeRecipient::empty(); MAX_CHECKPOINTS_PER_EPOCH]; for i in 0..self.num_left_checkpoints as u32 { @@ -153,6 +157,9 @@ impl TestBuilder { assert_eq(pi.out_hash, left.new_out_hash.root); + assert_eq(pi.previous_inbox_rolling_hash, left.start_inbox_rolling_hash); + assert_eq(pi.end_inbox_rolling_hash, left.end_inbox_rolling_hash); + assert_eq(pi.checkpoint_header_hashes, left.checkpoint_header_hashes); assert_eq(pi.fees, left.fees); diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/tests/rollup_fixture_builder.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/tests/rollup_fixture_builder.nr index 50ac6d8f71fe..b7a71808a898 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/tests/rollup_fixture_builder.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/tests/rollup_fixture_builder.nr @@ -321,6 +321,14 @@ impl RollupFixtureBuilder { 0 }; + // Like `in_hash`, the rolling-hash pair is carried only by the first block of a checkpoint (the leftmost leaf). + let (start_inbox_rolling_hash, end_inbox_rolling_hash) = if start_block_number + == self.start_block_number { + (self.get_inbox_rolling_hash(slot_number), self.get_inbox_rolling_hash(slot_number + 1)) + } else { + (0, 0) + }; + BlockRollupPublicInputs { constants: self.get_checkpoint_constant_data(slot_number), previous_archive: self.get_archive(start_block_number - 1), @@ -332,6 +340,8 @@ impl RollupFixtureBuilder { timestamp: self.get_timestamp(slot_number), block_headers_hash: self.get_block_headers_hash(end_block_number), in_hash, + start_inbox_rolling_hash, + end_inbox_rolling_hash, out_hash: self.get_out_hash(end_block_number), accumulated_fees: self.get_fee(end_block_number), accumulated_mana_used: self.get_mana_used(end_block_number), @@ -371,6 +381,10 @@ impl RollupFixtureBuilder { checkpoint_header_hashes, previous_out_hash: self.get_out_hash_snapshot(start_checkpoint_index), new_out_hash: self.get_out_hash_snapshot(end_checkpoint_index + 1), + // The chain spans this checkpoint range; consecutive checkpoints chain because each range's end + // (`get_inbox_rolling_hash(end_slot + 1)`) equals the next range's start (`get_inbox_rolling_hash(start_slot)`). + start_inbox_rolling_hash: self.get_inbox_rolling_hash(start_slot_number), + end_inbox_rolling_hash: self.get_inbox_rolling_hash(end_slot_number + 1), fees, start_blob_accumulator: self.get_blob_accumulator(start_slot_number - 1), end_blob_accumulator: self.get_blob_accumulator(end_slot_number), @@ -382,6 +396,9 @@ impl RollupFixtureBuilder { ParityPublicInputs { sha_root: slot_number * 85831493, converted_root: self.get_l1_to_l2_message_subtree_root(slot_number), + start_rolling_hash: self.get_inbox_rolling_hash(slot_number), + end_rolling_hash: self.get_inbox_rolling_hash(slot_number + 1), + num_msgs: 7, vk_tree_root: self.vk_tree_root, prover_id: self.prover_id, } @@ -459,6 +476,10 @@ impl RollupFixtureBuilder { slot_number * 94297 } + fn get_inbox_rolling_hash(_self: Self, slot_number: Field) -> Field { + slot_number * 917231 + } + fn get_timestamp(_self: Self, slot_number: Field) -> u64 { slot_number as u64 + 507124 } diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml index 886ec4458372..8532a3b7ba70 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml +++ b/noir-projects/noir-protocol-circuits/crates/rollup-root/Prover.toml @@ -483,11 +483,13 @@ proof = [ ] [inputs.previous_rollups.public_inputs] + start_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_inbox_rolling_hash = "0x005b0c15d0f641e148adfec120a12eadbf8343e009d350aa593b6d78dbae9568" checkpoint_header_hashes = [ - "0x00463a6befffd184ad2b7408e94287e2096b817ec66065c412d682c5cc016435", - "0x008f825e76f3722e2295f6e96cc765a1295a786d6a6b3043a3b7a0fd69dbff52", - "0x0052a3b1c4fd63c06e486f6a1f650652907765ba90fb8189dd247d9895c1d6ca", - "0x00bb067442516f38f86ddf13e6d0f04a9911042e9391916f8985a38a84b69d40", + "0x00053ee0889d2657ab83088966652118d7f1d9dda2de992cf7910eed8fc84f7f", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -519,51 +521,51 @@ proof = [ ] [inputs.previous_rollups.public_inputs.constants] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000b5668f8c" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" + version = "0x0000000000000000000000000000000000000000000000000000000000000000" + vk_tree_root = "0x153657c7cd6f1ed9ab7e2d830748fa3fad77967414abfbbfc83bacd55509465b" + protocol_contracts_hash = "0x0a1f22b72996215e178699fff463a6ca5e3c7d5ffe66e183490eb766ec1c83ae" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x2862aaeea1e2b3225df7f1ce675161742b3ecf6694b2f872c924d75c058782ce" - next_available_leaf_index = "0x000000000000000000000000000000000000000000000000000000000000000f" + root = "0x0fb2945d3438d906d88a216364dbfe9760e96001343468610e01d18182d493d0" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x1e35a5f0880d3f9c06160e3cec0b592b4d5578dc26ba20825c74d25febd9d373" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000013" + root = "0x1096caf94e6da95b20c9d6464ff7f2e62383ddc1cfb2b122eaff4e722a3aa3c8" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000002" [inputs.previous_rollups.public_inputs.previous_out_hash] root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.new_out_hash] - root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" + root = "0x00aab5a9def4ce98b37101d06c1371e6978c474b666624b56da1ebeec25ba39d" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000001" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x00000000000000000000000000000000000000000000000000025a22f5a46180" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x00000000000000000000000000000000000000000000000000025a22f5a46180" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x00000000000000000000000000000000000000000000000000008790cd55e980" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x000000000000000000000000000000000000000000000000000094f4fc8c8a80" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -772,15 +774,15 @@ proof = [ ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x0040e2906bda489b8d42e90ddd0250de393a8523fad5b68136a86a27897cda69" - z_acc = "0x1fad0c45ba1bbf1a3c2ef7b2716f2026f690710fb62afe7025470a84daa345cb" - gamma_acc = "0x1be4dd7e9f22b91c14866763349700329b2dcfdaa15000f013610716d203f232" + blob_commitments_hash_acc = "0x0048a8ff17df1a880cb88058f3176e3731d69de34f45d6348b79a7e1e156bfc4" + z_acc = "0x008498c733648b6fc04e348c2953ba7c44b094174960772167e5bbda59193ce6" + gamma_acc = "0x27ced7a84defc5b93113db3ab96b29f623f7b1582c970aee53d1890b55e5dd62" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x5b82104a41a277b6f704ffa4ecbbd8", - "0x847d7273bdde235b230bb3412aff14", - "0x6b51" + "0xf9d9f882665de48bec6600594400ee", + "0x0afcb90f2cbdee013825847d874f2d", + "0x0eab" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] @@ -788,168 +790,168 @@ proof = [ [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0xeef8d753977cebd18eb45c30884bb0", - "0xe59de9b91ae372d3737226a9b1c9ae", - "0x0b08fc79ef9d31e2a1d76f2a181736", - "0x141bd4" + "0x6d1ad109badf031c1df708d9541c81", + "0x64eb20d888ea85bd708b74aebc4ca8", + "0xa30a4f723e331629e8a8fbcdc0c043", + "0x0c9a8d" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0x0c3bc4f2262ba8ec1d60c226f1e44d", - "0xf7e7fb4ff0cc56f028575d8555f008", - "0xfd8ac885351869d4672bcb8be3b7f8", - "0x026679" + "0xba997721be8df06db9d55d49290a73", + "0x9bd2dacf89994198af8d8e02a7a509", + "0x1d9786118756d94d45caf4cacc706f", + "0x063d58" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x319e740ff9c2214adf645cb408c916", - "0xd896e9fc0d3afbfad50663c601778b", - "0x42c7" + "0x8f1cc4d1847e8206547493f5f7842e", + "0x3e48f278e51d48795faf35d29f8c36", + "0x1598" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x2966ff6275d3d12a6dda4572592738c83e207f5dc5b78b7d75dca5301cf021c6" + z = "0x008498c733648b6fc04e348c2953ba7c44b094174960772167e5bbda59193ce6" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0xff63a27cdfb8b5433eb4c240965501", - "0x4291c92d937af41a6213e6b632b141", - "0x08be" + "0x8f1cc4d1847e8206547493f5f7842e", + "0x3e48f278e51d48795faf35d29f8c36", + "0x1598" ] [inputs.previous_rollups.vk_data] - leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000013" + leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000011" sibling_path = [ - "0x1be72f1f471a29db247f7c4f19c03e11631575edec0695c29deba92770cce437", - "0x0c0e71d61b37e5093a79987574f6a04cf58c7a6b47f650ec04b30cb9c9b3ccec", - "0x0cb563600679ab6a5e2ef3ed1ab6e4e413b6b6b2df8d0f3b01c21abcacde5248", + "0x142786661d341c62a4c6db11474f516dbc6e62146dacb391fd08e485450c4525", + "0x121157fe0e38fc9db652bd52835686237090ef182f269df6fe777c5e5fd48aad", + "0x2a1815b5efead7996887211044ef4765abd48695f894abbedfb1d27d5eccab05", "0x20738d93e695096c6290e7c275252b87c3fc8a419bd4d9991368484bcbd446a7", - "0x20322f3a005b50fbc197e0b2ed3d57ce178831e828a359e0d8ae74802888a8f4", + "0x20e63bab1f1aa35d6c7d0ffa0f2df4e44a7f9a9d7531dbacc2f286b8bedd6626", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] [inputs.previous_rollups.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000000015", - "0x00000000000000000000000000000000000000000000000000000000000000a3", + "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x00000000000000000000000000000000000000000000000000000000000000a5", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000009a433e100615459dfb183f916b2062d61d", - "0x00000000000000000000000000000000002442616e2b0dbfa98b7ecbf193290e", - "0x000000000000000000000000000000c01f6dba139585c4cad33c1af1fc441f89", - "0x0000000000000000000000000000000000171aa053d4084079a830588b22ba81", - "0x0000000000000000000000000000003f6b7aea43a81106f616f3e575cee60863", - "0x000000000000000000000000000000000023f454864d42eb2c5024c72da2c08c", - "0x00000000000000000000000000000005987b401231fb970567be0badf86d7514", - "0x00000000000000000000000000000000002fdd84af6261fa6ee0f99f6bc1c881", - "0x0000000000000000000000000000001a6fbc62493ef0dc2c39bd5488af0fda32", - "0x000000000000000000000000000000000019f368e2c0dd3ae06755c7d83e1381", - "0x0000000000000000000000000000003800b8f4c83ccda2d5cff8bc18913d60e5", - "0x000000000000000000000000000000000014f1a75a1c0ce95480335398dbf82e", - "0x000000000000000000000000000000061722135564a0c33a56affa3ee1eb0c3c", - "0x000000000000000000000000000000000028fc5b4ae27c4be3b68af426e5cc25", - "0x000000000000000000000000000000094a72c62cd7f643f998a774a3c1692a9c", - "0x000000000000000000000000000000000002e23f17ec6396bd3bf8497546c82b", - "0x000000000000000000000000000000d7775db81e7c0c37e6940e97c3026fc49b", - "0x00000000000000000000000000000000001a76225c5d8d4a24eac9b6060483a5", - "0x000000000000000000000000000000d1322466b768603245adbfbe707afc9aee", - "0x00000000000000000000000000000000000c423cffb03800ad0f6f0b5bcb0a1e", - "0x0000000000000000000000000000001ade4e785ba270672b708c1cb93ca2fdd5", - "0x00000000000000000000000000000000000b468b6e311689fa6ec4503d2d1b5d", - "0x0000000000000000000000000000003a8473fa13716d7c47fb0a41d10f538fa6", - "0x000000000000000000000000000000000013151dfa49a54d259a8c4fec4736bc", - "0x000000000000000000000000000000f09823147b5a2f1315af76f84626faacc5", - "0x00000000000000000000000000000000002cfa957d32526624e97ec08d0763b4", - "0x00000000000000000000000000000095f75874399828c93364b7d272bdd91ad8", - "0x0000000000000000000000000000000000169d8b404b534c0a246767dc1b6cc2", - "0x000000000000000000000000000000579241f2e3236abb3e318f1a4266ba0431", - "0x000000000000000000000000000000000015c834520f6ae2df99028826545250", - "0x000000000000000000000000000000f31db19daed1017929ae88f4f3f8521a77", - "0x00000000000000000000000000000000002e3e6fa8fc5c271d95c32504342c96", - "0x000000000000000000000000000000156ccc48324606bba2a81e44d3033965f3", - "0x00000000000000000000000000000000001bbd1a661b55e4cf8c0bde338d994b", - "0x0000000000000000000000000000002e67e823cf8228948ae5c34f71a8347851", - "0x000000000000000000000000000000000006afe3e3e1b881c6df566f4532e8f0", - "0x000000000000000000000000000000b2f235dc16b84add85650d924582ec7dce", - "0x000000000000000000000000000000000013ec9ae6dbfc2a7310ee57e4cf96fb", - "0x00000000000000000000000000000043c924cd03d3652d1c7a1fa38eee85b013", - "0x00000000000000000000000000000000000b9e9493e39b71b0126548ef5f3890", - "0x000000000000000000000000000000fb37e6795aba9baa1a7c554c6614ab1276", - "0x00000000000000000000000000000000002bfa7eb130ab19d31141f4bd1a790d", - "0x000000000000000000000000000000aa4fa8ab5e1111f572bc0be8c5648dda2a", - "0x00000000000000000000000000000000000d1a47317b27c288eadb2a2fcec2e9", - "0x000000000000000000000000000000148d3def2091cffc18e7a99af26b32c426", - "0x00000000000000000000000000000000002978869bbda368adea3c9c670bfebe", - "0x000000000000000000000000000000f29b693ede78010c05b1ea2f98e6287d5c", - "0x0000000000000000000000000000000000285f6de42d2f63b6e09f638916be31", - "0x000000000000000000000000000000c529156a781367b9b39ccdb6f714cac912", - "0x000000000000000000000000000000000012afdcb744cd9b85dcf16b7e4794fa", - "0x0000000000000000000000000000003f0ee19f812e23c3e0c17d24cecf19ea9c", - "0x00000000000000000000000000000000002f68f3fb589c01cd8aa6215c944590", - "0x000000000000000000000000000000035e524c6948e5b34c206582bf43bf55ed", - "0x000000000000000000000000000000000024755c3619d8c89bb48b9d266ac87c", - "0x0000000000000000000000000000009a82ca92daff9b5992759a94953b8f8628", - "0x00000000000000000000000000000000003038a4b10faec561f34c2ea32bc713", - "0x000000000000000000000000000000633018b6c00a2169cef96b4073117721c0", - "0x00000000000000000000000000000000002f17430771a2fc7344dd1c104fd00b", - "0x00000000000000000000000000000069085f0ce834cf4d649d802da99138a95b", - "0x000000000000000000000000000000000006947eb82654ee05b374bb416cf04b", - "0x000000000000000000000000000000bbe898ab38ac7a24524eef7b79d2639f76", - "0x000000000000000000000000000000000002c40b232a07d9d11f3dac35b85dd3", - "0x000000000000000000000000000000047258f098b82fad4617620d0189f879e0", - "0x000000000000000000000000000000000026c6c071c1d3ad9e14eb001be27125", - "0x0000000000000000000000000000000c49a35af28b7e551244d77b56d59b5512", - "0x0000000000000000000000000000000000189085667c613410461cbd17b30c56", - "0x000000000000000000000000000000ca38ed6144991e99907f522e28860f0de8", - "0x000000000000000000000000000000000007c40e2ecae3ebea24bd3ec55ac484", - "0x000000000000000000000000000000bfffcabb70a790bc545c4ee3bfce18a260", - "0x000000000000000000000000000000000010e55bdeb1092f2a6444bc396cb56f", - "0x0000000000000000000000000000009c4e20b003ed4f70b4a62cfc57204f24c6", - "0x00000000000000000000000000000000001e00b7ff0421bfe32f28205fd0df4e", - "0x000000000000000000000000000000cf5869f07bfb05fa6a7b3482f3331f9d8e", - "0x000000000000000000000000000000000022c6e62a5e3445a01fbe8fb277eae1", - "0x000000000000000000000000000000b5dced535f594636ae43aa82db9c0a562a", - "0x000000000000000000000000000000000015b098ffbfd590c9db9622f8456377", - "0x00000000000000000000000000000069eea6cb45c453c7458f7a14981f8a4639", - "0x00000000000000000000000000000000001e577951336e913442cfa05d0e9a0d", - "0x0000000000000000000000000000009ef7b985877ffb4041cea6f6912eb32a8c", - "0x000000000000000000000000000000000020521a7cfd616db7e549b3c64d777e", - "0x000000000000000000000000000000e9f0722fce51e4bf5e31b757228e9ccbf1", - "0x00000000000000000000000000000000000fa84f6bb49d001a7506c96419e7ce", - "0x000000000000000000000000000000a761f66f198a2c14c07c32f6604cf578d2", - "0x000000000000000000000000000000000019635c073e9a560147b7295882e765", - "0x00000000000000000000000000000033deb909e8f26ca9aa0417a0172f02690f", - "0x00000000000000000000000000000000000880fc020fc451935fb66e22daa7c1", - "0x0000000000000000000000000000006367288f16161fa5df3f49cedd8a8e34b2", - "0x0000000000000000000000000000000000304e31fe6eba575d1b3f3ebef0066e", - "0x000000000000000000000000000000c5cafa7e75b7c69af15b1a1e1bc905d603", - "0x00000000000000000000000000000000000056634d879eaebb861aab7f6f754f", - "0x00000000000000000000000000000075b6c4cb8ee2d596e52fe1b3d9405cb208", - "0x00000000000000000000000000000000002bf855c3a58ee0e60041a921be728b", - "0x000000000000000000000000000000a4e608225e21e96a15388fd855afcb8bd9", - "0x000000000000000000000000000000000001eb45674390c99d0df7b66959f3a6", - "0x000000000000000000000000000000da7a7c3519858b8c78980a95a3c0ace91c", - "0x000000000000000000000000000000000004b30cecdd534cbfb3c9ffdf2ef2c3", - "0x0000000000000000000000000000003a35ed1dc0d1ff7aae4209529a34930921", - "0x0000000000000000000000000000000000210c99ed727129a1d40e9f9a7adcaf", - "0x000000000000000000000000000000fd35d6cbde8ca6b8e64652a47a495d4eac", - "0x000000000000000000000000000000000019c18ce002d04e602c1607ffe9a256", - "0x000000000000000000000000000000a3a317653f93cb7e27ab835d087169be62", - "0x00000000000000000000000000000000002f16044c7d21455e2e0af21446869d", - "0x00000000000000000000000000000052868428cacab9195b92aaa5470ecc2279", - "0x0000000000000000000000000000000000008866d791a72df4357df8031c5f7b", + "0x00000000000000000000000000000069e10e8ac0c5eeaf696377bf18d201382d", + "0x000000000000000000000000000000000029156363c0d97b18b5076e4826bb42", + "0x0000000000000000000000000000004914fdac107690d069ab86e48e9e1f718d", + "0x00000000000000000000000000000000001c144dd488f639e3f90ce57c0fbc51", + "0x00000000000000000000000000000094e11281a03ab23ffd5c9d65934b044c72", + "0x0000000000000000000000000000000000252b1aad27b2451bd71722eddcbec3", + "0x000000000000000000000000000000d243b83f9157d3825d17776904b2e30ce6", + "0x000000000000000000000000000000000011e4c9d1e2635bb3265c098687b4cf", + "0x000000000000000000000000000000bea404a29f0a3ec523478c4807e7721aa1", + "0x000000000000000000000000000000000016a85588062aaa1bb4bb7f8936e26c", + "0x000000000000000000000000000000d6103cdc590539d58b6b43223503d2b8e4", + "0x00000000000000000000000000000000001a3fe9ba7752c60b02f76180bf7580", + "0x000000000000000000000000000000afb76ef46473b8cd4e70fbd9f5b8cca3ab", + "0x00000000000000000000000000000000002b15aa201d6507a77b4238d357ccd7", + "0x000000000000000000000000000000191cac1c728a9f05112f0ef2a3903123f0", + "0x0000000000000000000000000000000000237aaf71c0cafed37cb5be2e647c41", + "0x000000000000000000000000000000dea16bbfa56e9fdea7e90e742f1307c4ea", + "0x0000000000000000000000000000000000289afe1373e02bbbbe7b8bf4019b0f", + "0x0000000000000000000000000000009a2a70febbe6d40df3c73d8a367a55e1e6", + "0x000000000000000000000000000000000022fad633ab5fe0737a5d0d0a83691d", + "0x0000000000000000000000000000008a4ad36b2fa0600897e26dcd4bf71ef928", + "0x0000000000000000000000000000000000288ebc352e3ae63e436ce08e521149", + "0x000000000000000000000000000000382706154643c881d64321c770ca547b86", + "0x000000000000000000000000000000000022d0e4a264c22fd0947488bd1848e9", + "0x000000000000000000000000000000dd98d271d4d16e66d61039d006fdb08dd2", + "0x00000000000000000000000000000000002646eb78d367e3ddae2ee29657e78f", + "0x0000000000000000000000000000006e859a711aa7352e651b1b48330125a03a", + "0x000000000000000000000000000000000021784c3d16da5e715233b84c49fe1b", + "0x00000000000000000000000000000005f72555f453a9217bb6e4c82977dac532", + "0x00000000000000000000000000000000002cf470240ad684e3475b9bf33b3df3", + "0x0000000000000000000000000000008d1820f3332cdb266b9fda0d5fd712a03d", + "0x00000000000000000000000000000000000634b1bd9213ff8d56c7a7b15e6e68", + "0x0000000000000000000000000000000e11fc3d99f35e8f96f606af9383dc014a", + "0x000000000000000000000000000000000021f5dd6f5545662b8b5d023c95dc4c", + "0x000000000000000000000000000000aa3554cd18b7b35adea5ad6547d603b897", + "0x00000000000000000000000000000000002782aa84be0c0aff27dbf00160a4f9", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000000000c259c40db2dd2e0f76c497a3b531a0c0c8", + "0x00000000000000000000000000000000001f0c16b5bffaccb7423579398dcbaf", + "0x00000000000000000000000000000020aafd939b37536a969b1b08f22bfdd4f7", + "0x000000000000000000000000000000000025ae7186e95442d468a42f2f02194b", + "0x00000000000000000000000000000064badfba2db29b1074b9673a5fad9060da", + "0x00000000000000000000000000000000002d215cf76c12dd04193776d59422df", + "0x0000000000000000000000000000005cb806968eae28f7508e9b41e5593cb55f", + "0x00000000000000000000000000000000000ca6b79edb50770058953416b1fc23", + "0x000000000000000000000000000000a85fed316b782788719ad9b751ed4e9b03", + "0x00000000000000000000000000000000001a5c136c83eda1110352dc0d2ebc52", + "0x000000000000000000000000000000978ad9abd0e4057ee8bc0bdf36996a6fb2", + "0x000000000000000000000000000000000001827c21537f7659f3a62fc50e95fc", + "0x000000000000000000000000000000b39d6e29934b38842b9dcc80670e6cd6a9", + "0x00000000000000000000000000000000002b0e89f1826987ffc4c7040a52be43", + "0x00000000000000000000000000000026e9b2cab47c770948e4fb50e22adabd5e", + "0x000000000000000000000000000000000021fb82adb8b638df65df02a825ecaf", + "0x000000000000000000000000000000fb61980f79866aaec6003b1af534b09599", + "0x00000000000000000000000000000000001398447900a4544eeae6d2db77e653", + "0x0000000000000000000000000000001b20e5d7320563442c56b2ca9f95d62679", + "0x00000000000000000000000000000000000ed78c4fccf5dd52b3299fbb438ba8", + "0x0000000000000000000000000000003f1b542e1a8aa6ece436c125601234cb36", + "0x000000000000000000000000000000000029a72d97aeb5814cbbbe930e3e365d", + "0x0000000000000000000000000000008f4788b4779e79912cdbc9ada1fabd7c08", + "0x000000000000000000000000000000000016928eb8f8c464f94e5abd98d94912", + "0x000000000000000000000000000000555ab1b9107f58946c075041f08f2b1fe9", + "0x00000000000000000000000000000000001d0f0fbafc2385bf41b55d6c66ba2a", + "0x0000000000000000000000000000004b4c80163a1e826fd8060282e7909b2e63", + "0x000000000000000000000000000000000026e56cd73c0e6cf6df7a17e619f560", + "0x00000000000000000000000000000065536372856c2fc418fb9cbab88a288a9f", + "0x00000000000000000000000000000000000c8fd7adc334b50cb479dd14a12e95", + "0x000000000000000000000000000000d4d413eeec90160fdb9108e8b53306dd5f", + "0x0000000000000000000000000000000000150ace84ed473a2c609c6114aaffde", + "0x000000000000000000000000000000ad385b6e5f06aa810b8e701c648e9cdf88", + "0x00000000000000000000000000000000000f590c5eb6107891432437ab08d064", + "0x000000000000000000000000000000eb809625979801e560b703d6c4d977e1bd", + "0x00000000000000000000000000000000000cd72d4a8cc0d63226e3d7ed4b78fa", + "0x0000000000000000000000000000007f0b64756bd847fd82a267178cf8f43acf", + "0x000000000000000000000000000000000021ddcf70fff13d14bb0453e95f7973", + "0x00000000000000000000000000000066a8662d7342eca23ae9e8bf17850cd172", + "0x000000000000000000000000000000000012750e9bac9a718961f0f8614c7c21", + "0x00000000000000000000000000000012ca2a8f4e0c24f57a9100c62c5e921ba7", + "0x00000000000000000000000000000000000492f0f5ce51b53b46ce7e2576f32f", + "0x000000000000000000000000000000b9598d418fcd3e94b1d5a3347835c35293", + "0x00000000000000000000000000000000000fe8baaec338b4e2f856ad1fe96eb1", + "0x0000000000000000000000000000002b8f3782157dcbcf587fb7290074701f2f", + "0x000000000000000000000000000000000012ef41c70f5590ee81b8c219ba0d55", + "0x000000000000000000000000000000f98d108d322d8bd8bf2aad8a1df2cb3c70", + "0x000000000000000000000000000000000003e8fb0c8b4c8c3900a1b85a5b4550", + "0x0000000000000000000000000000009f3672e356e98b3a7a3deae61a9b87dd29", + "0x0000000000000000000000000000000000301cc7d23879687ec5cbdc195436f9", + "0x00000000000000000000000000000023885c7bce9e0d10196c6f831bf4b229de", + "0x00000000000000000000000000000000001602ff1fe4f4cb70c26ad5bc16858a", + "0x000000000000000000000000000000fcf2a0c1eceb385200a0ee09c40c758fbf", + "0x0000000000000000000000000000000000253b9dd23a0982e9db87324acd9aba", + "0x00000000000000000000000000000097a1599a0f5c04ef46d89bc4be8629ed3f", + "0x00000000000000000000000000000000002ef5dbc090a304ab4d948f1e08a8de", + "0x000000000000000000000000000000691acea534b501c5d7a5984cbb56e2f677", + "0x0000000000000000000000000000000000256377fe9f1696e2316a0ede70e194", + "0x000000000000000000000000000000b1d93380e5a238c52f4d9327b8ff615f45", + "0x0000000000000000000000000000000000029f05bf11aee014fc3ca870e42dc7", + "0x00000000000000000000000000000083f400e03505d6e2e6a8d315ec5b24f54c", + "0x00000000000000000000000000000000000c031249619645a60ab26bf3069331", + "0x0000000000000000000000000000006e7016f5ace833e2821d171ef0fe2b9f8d", + "0x00000000000000000000000000000000000f8b062a1227fc7a323aed56615912", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000009fc2164d514381cbd046643639eb0897", - "0x00000000000000000000000000000000002f78c031ec3c08a5ab5a89a1d10683", - "0x0000000000000000000000000000007152fc85b72cc8621b05374d34058fd1dc", - "0x0000000000000000000000000000000000045f49a06cc7dca8937f78ab17e851" + "0x0000000000000000000000000000000a80044848d5d1d37064d3f6b42ec339c7", + "0x00000000000000000000000000000000000475fb6cd2420cf5aeb4621c6ee163", + "0x00000000000000000000000000000033cdd9ef133b9035d046aec1dbd3799fdb", + "0x000000000000000000000000000000000011310bd4c4028b1d9a46f47dabe63c" ] - hash = "0x1dfa2952af644c59aa9d8ddec361d72059e139e64ce4790c4d3599963ba40244" + hash = "0x149f1a7b8aa1ad4695eaea8f60119a189321abca9fe7c33382efae3bf7bcc693" [[inputs.previous_rollups]] proof = [ @@ -1436,9 +1438,11 @@ proof = [ ] [inputs.previous_rollups.public_inputs] + start_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + end_inbox_rolling_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" checkpoint_header_hashes = [ - "0x0069067bfe72e49712c28f37beaca86311f9b9e0a410f02acdd08653a5e91dd9", - "0x00f0a74deb4e5d480bb8e938cfcf2fc4b1faa035ca09156925f54f545fb7fbf3", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1472,39 +1476,39 @@ proof = [ ] [inputs.previous_rollups.public_inputs.constants] - chain_id = "0x0000000000000000000000000000000000000000000000000000000000007a69" - version = "0x00000000000000000000000000000000000000000000000000000000b5668f8c" - vk_tree_root = "0x18e358ea5367f6069a4c1c08a2e0628fbb1b25c00b0b98160072d4ad397bae7c" - protocol_contracts_hash = "0x0d169037a222e74c0c8cadcb4bf5660428e2e80ca79319d7a1a0132be58be267" - prover_id = "0x0000000000000000000000003c44cdddb6a900fa2b585dd299e03d12fa4293bc" + chain_id = "0x0000000000000000000000000000000000000000000000000000000000000000" + version = "0x0000000000000000000000000000000000000000000000000000000000000000" + vk_tree_root = "0x0000000000000000000000000000000000000000000000000000000000000000" + protocol_contracts_hash = "0x0000000000000000000000000000000000000000000000000000000000000000" + prover_id = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_archive] - root = "0x1e35a5f0880d3f9c06160e3cec0b592b4d5578dc26ba20825c74d25febd9d373" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000013" + root = "0x0000000000000000000000000000000000000000000000000000000000000000" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.new_archive] - root = "0x0e0f65a1f819f43febfba1606dab827a766bea488eb38fb76c9f58999c738c7e" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000015" + root = "0x0000000000000000000000000000000000000000000000000000000000000000" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.previous_out_hash] - root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000004" + root = "0x0000000000000000000000000000000000000000000000000000000000000000" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.new_out_hash] - root = "0x00c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af093" - next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000006" + root = "0x0000000000000000000000000000000000000000000000000000000000000000" + next_available_leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x00000000000000000000000000000000000000000000000000020dddd59708c0" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] - value = "0x0000000000000000000000000000000000000000000000000000c23b83cb5580" + value = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.fees.recipient] - inner = "0x000000000000000000000000943a8050ae818d6972a35fbc9169ba873fd12eda" + inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [[inputs.previous_rollups.public_inputs.fees]] value = "0x0000000000000000000000000000000000000000000000000000000000000000" @@ -1687,219 +1691,219 @@ proof = [ inner = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator] - blob_commitments_hash_acc = "0x0040e2906bda489b8d42e90ddd0250de393a8523fad5b68136a86a27897cda69" - z_acc = "0x1fad0c45ba1bbf1a3c2ef7b2716f2026f690710fb62afe7025470a84daa345cb" - gamma_acc = "0x1be4dd7e9f22b91c14866763349700329b2dcfdaa15000f013610716d203f232" + blob_commitments_hash_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" + z_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" + gamma_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.start_blob_accumulator.y_acc] limbs = [ - "0x5b82104a41a277b6f704ffa4ecbbd8", - "0x847d7273bdde235b230bb3412aff14", - "0x6b51" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x0000" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc] - is_infinity = false + is_infinity = true [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.x] limbs = [ - "0xeef8d753977cebd18eb45c30884bb0", - "0xe59de9b91ae372d3737226a9b1c9ae", - "0x0b08fc79ef9d31e2a1d76f2a181736", - "0x141bd4" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.c_acc.y] limbs = [ - "0x0c3bc4f2262ba8ec1d60c226f1e44d", - "0xf7e7fb4ff0cc56f028575d8555f008", - "0xfd8ac885351869d4672bcb8be3b7f8", - "0x026679" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] [inputs.previous_rollups.public_inputs.start_blob_accumulator.gamma_pow_acc] limbs = [ - "0x319e740ff9c2214adf645cb408c916", - "0xd896e9fc0d3afbfad50663c601778b", - "0x42c7" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x0000" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator] - blob_commitments_hash_acc = "0x0068732081c44b774954b520c1e5bd2060173e828b27327f1c4a04bb47347e4c" - z_acc = "0x2966ff6275d3d12a6dda4572592738c83e207f5dc5b78b7d75dca5301cf021c6" - gamma_acc = "0x0af6f24fff50581258c166be6327e4ae5c8b0ad24a8690dce729723a42e5c176" + blob_commitments_hash_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" + z_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" + gamma_acc = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.end_blob_accumulator.y_acc] limbs = [ - "0x3cea71dff09993934da4c70c188040", - "0x0ae3a690adf66a48483cbf672f77b3", - "0x0a35" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x0000" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc] - is_infinity = false + is_infinity = true [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.x] limbs = [ - "0x21c755098ac6781089836144162bfe", - "0x209731392427bbb314994ebc5e18df", - "0x9931841eef3d1030072c01d8836afa", - "0x1927cc" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.c_acc.y] limbs = [ - "0xf4dee37252f14b223a2a9bfb7d8279", - "0xc3b90a799615bfe6e039b9fcadaea8", - "0xce61d98a099d107fcb7c819f96fab1", - "0x16f4aa" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x000000" ] [inputs.previous_rollups.public_inputs.end_blob_accumulator.gamma_pow_acc] limbs = [ - "0x6eeb607f12036b7b069f8f38298cee", - "0xbc1d5905a7ac542089491ca421080b", - "0x548a" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x0000" ] [inputs.previous_rollups.public_inputs.final_blob_challenges] - z = "0x2966ff6275d3d12a6dda4572592738c83e207f5dc5b78b7d75dca5301cf021c6" + z = "0x0000000000000000000000000000000000000000000000000000000000000000" [inputs.previous_rollups.public_inputs.final_blob_challenges.gamma] limbs = [ - "0xff63a27cdfb8b5433eb4c240965501", - "0x4291c92d937af41a6213e6b632b141", - "0x08be" + "0x000000000000000000000000000000", + "0x000000000000000000000000000000", + "0x0000" ] [inputs.previous_rollups.vk_data] - leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000013" + leaf_index = "0x0000000000000000000000000000000000000000000000000000000000000012" sibling_path = [ - "0x1be72f1f471a29db247f7c4f19c03e11631575edec0695c29deba92770cce437", - "0x0c0e71d61b37e5093a79987574f6a04cf58c7a6b47f650ec04b30cb9c9b3ccec", - "0x0cb563600679ab6a5e2ef3ed1ab6e4e413b6b6b2df8d0f3b01c21abcacde5248", + "0x1f6cca1ce2f0e042c42aa30b4434d9939338bb7754e104720e0f02aaf090ded0", + "0x0242bfd62b3548a3a81e2e2522201c5ae6f6dd4fe969fcc7c7e35dc2b2e38c85", + "0x2a1815b5efead7996887211044ef4765abd48695f894abbedfb1d27d5eccab05", "0x20738d93e695096c6290e7c275252b87c3fc8a419bd4d9991368484bcbd446a7", - "0x20322f3a005b50fbc197e0b2ed3d57ce178831e828a359e0d8ae74802888a8f4", + "0x20e63bab1f1aa35d6c7d0ffa0f2df4e44a7f9a9d7531dbacc2f286b8bedd6626", "0x187a7b8872d1297bc15f7171f32c36e5e60b53c4145ef62b1899c04fd7220fdf", "0x2ccaede67145021b6b586f45936dfbdacb151c3e362621c3598ffd60e95b02a0" ] [inputs.previous_rollups.vk_data.vk] key = [ - "0x0000000000000000000000000000000000000000000000000000000000000015", - "0x00000000000000000000000000000000000000000000000000000000000000a3", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x00000000000000000000000000000000000000000000000000000000000000a5", "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000009a433e100615459dfb183f916b2062d61d", - "0x00000000000000000000000000000000002442616e2b0dbfa98b7ecbf193290e", - "0x000000000000000000000000000000c01f6dba139585c4cad33c1af1fc441f89", - "0x0000000000000000000000000000000000171aa053d4084079a830588b22ba81", - "0x0000000000000000000000000000003f6b7aea43a81106f616f3e575cee60863", - "0x000000000000000000000000000000000023f454864d42eb2c5024c72da2c08c", - "0x00000000000000000000000000000005987b401231fb970567be0badf86d7514", - "0x00000000000000000000000000000000002fdd84af6261fa6ee0f99f6bc1c881", - "0x0000000000000000000000000000001a6fbc62493ef0dc2c39bd5488af0fda32", - "0x000000000000000000000000000000000019f368e2c0dd3ae06755c7d83e1381", - "0x0000000000000000000000000000003800b8f4c83ccda2d5cff8bc18913d60e5", - "0x000000000000000000000000000000000014f1a75a1c0ce95480335398dbf82e", - "0x000000000000000000000000000000061722135564a0c33a56affa3ee1eb0c3c", - "0x000000000000000000000000000000000028fc5b4ae27c4be3b68af426e5cc25", - "0x000000000000000000000000000000094a72c62cd7f643f998a774a3c1692a9c", - "0x000000000000000000000000000000000002e23f17ec6396bd3bf8497546c82b", - "0x000000000000000000000000000000d7775db81e7c0c37e6940e97c3026fc49b", - "0x00000000000000000000000000000000001a76225c5d8d4a24eac9b6060483a5", - "0x000000000000000000000000000000d1322466b768603245adbfbe707afc9aee", - "0x00000000000000000000000000000000000c423cffb03800ad0f6f0b5bcb0a1e", - "0x0000000000000000000000000000001ade4e785ba270672b708c1cb93ca2fdd5", - "0x00000000000000000000000000000000000b468b6e311689fa6ec4503d2d1b5d", - "0x0000000000000000000000000000003a8473fa13716d7c47fb0a41d10f538fa6", - "0x000000000000000000000000000000000013151dfa49a54d259a8c4fec4736bc", - "0x000000000000000000000000000000f09823147b5a2f1315af76f84626faacc5", - "0x00000000000000000000000000000000002cfa957d32526624e97ec08d0763b4", - "0x00000000000000000000000000000095f75874399828c93364b7d272bdd91ad8", - "0x0000000000000000000000000000000000169d8b404b534c0a246767dc1b6cc2", - "0x000000000000000000000000000000579241f2e3236abb3e318f1a4266ba0431", - "0x000000000000000000000000000000000015c834520f6ae2df99028826545250", - "0x000000000000000000000000000000f31db19daed1017929ae88f4f3f8521a77", - "0x00000000000000000000000000000000002e3e6fa8fc5c271d95c32504342c96", - "0x000000000000000000000000000000156ccc48324606bba2a81e44d3033965f3", - "0x00000000000000000000000000000000001bbd1a661b55e4cf8c0bde338d994b", - "0x0000000000000000000000000000002e67e823cf8228948ae5c34f71a8347851", - "0x000000000000000000000000000000000006afe3e3e1b881c6df566f4532e8f0", - "0x000000000000000000000000000000b2f235dc16b84add85650d924582ec7dce", - "0x000000000000000000000000000000000013ec9ae6dbfc2a7310ee57e4cf96fb", - "0x00000000000000000000000000000043c924cd03d3652d1c7a1fa38eee85b013", - "0x00000000000000000000000000000000000b9e9493e39b71b0126548ef5f3890", - "0x000000000000000000000000000000fb37e6795aba9baa1a7c554c6614ab1276", - "0x00000000000000000000000000000000002bfa7eb130ab19d31141f4bd1a790d", - "0x000000000000000000000000000000aa4fa8ab5e1111f572bc0be8c5648dda2a", - "0x00000000000000000000000000000000000d1a47317b27c288eadb2a2fcec2e9", - "0x000000000000000000000000000000148d3def2091cffc18e7a99af26b32c426", - "0x00000000000000000000000000000000002978869bbda368adea3c9c670bfebe", - "0x000000000000000000000000000000f29b693ede78010c05b1ea2f98e6287d5c", - "0x0000000000000000000000000000000000285f6de42d2f63b6e09f638916be31", - "0x000000000000000000000000000000c529156a781367b9b39ccdb6f714cac912", - "0x000000000000000000000000000000000012afdcb744cd9b85dcf16b7e4794fa", - "0x0000000000000000000000000000003f0ee19f812e23c3e0c17d24cecf19ea9c", - "0x00000000000000000000000000000000002f68f3fb589c01cd8aa6215c944590", - "0x000000000000000000000000000000035e524c6948e5b34c206582bf43bf55ed", - "0x000000000000000000000000000000000024755c3619d8c89bb48b9d266ac87c", - "0x0000000000000000000000000000009a82ca92daff9b5992759a94953b8f8628", - "0x00000000000000000000000000000000003038a4b10faec561f34c2ea32bc713", - "0x000000000000000000000000000000633018b6c00a2169cef96b4073117721c0", - "0x00000000000000000000000000000000002f17430771a2fc7344dd1c104fd00b", - "0x00000000000000000000000000000069085f0ce834cf4d649d802da99138a95b", - "0x000000000000000000000000000000000006947eb82654ee05b374bb416cf04b", - "0x000000000000000000000000000000bbe898ab38ac7a24524eef7b79d2639f76", - "0x000000000000000000000000000000000002c40b232a07d9d11f3dac35b85dd3", - "0x000000000000000000000000000000047258f098b82fad4617620d0189f879e0", - "0x000000000000000000000000000000000026c6c071c1d3ad9e14eb001be27125", - "0x0000000000000000000000000000000c49a35af28b7e551244d77b56d59b5512", - "0x0000000000000000000000000000000000189085667c613410461cbd17b30c56", - "0x000000000000000000000000000000ca38ed6144991e99907f522e28860f0de8", - "0x000000000000000000000000000000000007c40e2ecae3ebea24bd3ec55ac484", - "0x000000000000000000000000000000bfffcabb70a790bc545c4ee3bfce18a260", - "0x000000000000000000000000000000000010e55bdeb1092f2a6444bc396cb56f", - "0x0000000000000000000000000000009c4e20b003ed4f70b4a62cfc57204f24c6", - "0x00000000000000000000000000000000001e00b7ff0421bfe32f28205fd0df4e", - "0x000000000000000000000000000000cf5869f07bfb05fa6a7b3482f3331f9d8e", - "0x000000000000000000000000000000000022c6e62a5e3445a01fbe8fb277eae1", - "0x000000000000000000000000000000b5dced535f594636ae43aa82db9c0a562a", - "0x000000000000000000000000000000000015b098ffbfd590c9db9622f8456377", - "0x00000000000000000000000000000069eea6cb45c453c7458f7a14981f8a4639", - "0x00000000000000000000000000000000001e577951336e913442cfa05d0e9a0d", - "0x0000000000000000000000000000009ef7b985877ffb4041cea6f6912eb32a8c", - "0x000000000000000000000000000000000020521a7cfd616db7e549b3c64d777e", - "0x000000000000000000000000000000e9f0722fce51e4bf5e31b757228e9ccbf1", - "0x00000000000000000000000000000000000fa84f6bb49d001a7506c96419e7ce", - "0x000000000000000000000000000000a761f66f198a2c14c07c32f6604cf578d2", - "0x000000000000000000000000000000000019635c073e9a560147b7295882e765", - "0x00000000000000000000000000000033deb909e8f26ca9aa0417a0172f02690f", - "0x00000000000000000000000000000000000880fc020fc451935fb66e22daa7c1", - "0x0000000000000000000000000000006367288f16161fa5df3f49cedd8a8e34b2", - "0x0000000000000000000000000000000000304e31fe6eba575d1b3f3ebef0066e", - "0x000000000000000000000000000000c5cafa7e75b7c69af15b1a1e1bc905d603", - "0x00000000000000000000000000000000000056634d879eaebb861aab7f6f754f", - "0x00000000000000000000000000000075b6c4cb8ee2d596e52fe1b3d9405cb208", - "0x00000000000000000000000000000000002bf855c3a58ee0e60041a921be728b", - "0x000000000000000000000000000000a4e608225e21e96a15388fd855afcb8bd9", - "0x000000000000000000000000000000000001eb45674390c99d0df7b66959f3a6", - "0x000000000000000000000000000000da7a7c3519858b8c78980a95a3c0ace91c", - "0x000000000000000000000000000000000004b30cecdd534cbfb3c9ffdf2ef2c3", - "0x0000000000000000000000000000003a35ed1dc0d1ff7aae4209529a34930921", - "0x0000000000000000000000000000000000210c99ed727129a1d40e9f9a7adcaf", - "0x000000000000000000000000000000fd35d6cbde8ca6b8e64652a47a495d4eac", - "0x000000000000000000000000000000000019c18ce002d04e602c1607ffe9a256", - "0x000000000000000000000000000000a3a317653f93cb7e27ab835d087169be62", - "0x00000000000000000000000000000000002f16044c7d21455e2e0af21446869d", - "0x00000000000000000000000000000052868428cacab9195b92aaa5470ecc2279", - "0x0000000000000000000000000000000000008866d791a72df4357df8031c5f7b", + "0x000000000000000000000000000000b00d67fbc2caa70fdd0bd3b337dd11b8ed", + "0x000000000000000000000000000000000016245a29ff339811781222b2740a74", + "0x000000000000000000000000000000abbfe0482d5c93d6349a709c58337fcb8d", + "0x000000000000000000000000000000000024c2a5fcb33c386f63fadf7a3ffb00", + "0x0000000000000000000000000000007248127e960f07383be9cb74ef2470cc0b", + "0x00000000000000000000000000000000002b96a06fab78b22fcace8b4070a989", + "0x000000000000000000000000000000324757a9f9265992aa248e34ed25e8133b", + "0x000000000000000000000000000000000003fa305e0b0804b2ee3c0f7603c5d7", + "0x000000000000000000000000000000eba8c64f7f53f2da452a3ec99147d827b6", + "0x00000000000000000000000000000000002a0b6329fd782bdb2e86c36a3c6582", + "0x000000000000000000000000000000fd97d949b09a00fd0d8db5d3b8bfa0b82d", + "0x00000000000000000000000000000000002b2881621ff875a9c4f802a0ad3efd", + "0x000000000000000000000000000000444001256044e0bf83954108525c07f8d0", + "0x00000000000000000000000000000000000a1fc8db190ab9d20829e6413925ed", + "0x000000000000000000000000000000431cc0a1600d5355297cc712bb4c2a422e", + "0x00000000000000000000000000000000002240c414b644cb8adfe16555116f5a", + "0x000000000000000000000000000000f09b1d8d8f55f61c67f867d9f334de9ab0", + "0x00000000000000000000000000000000001ffd5ee5f381d3e582b95979ce6338", + "0x000000000000000000000000000000f6a11e6609de1a389609bb85f1a84626f3", + "0x000000000000000000000000000000000017a6f1561d9b913c9989d7ca07f413", + "0x00000000000000000000000000000091002843edeae9e3cf15528a5999bbd350", + "0x0000000000000000000000000000000000289afffdcd7b17f51b6b6f7310414e", + "0x000000000000000000000000000000e6c14854c824b5342f1a57671dc954322a", + "0x00000000000000000000000000000000002b1188993dba8da6145250d8c18a6d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000006fa41747fdec8819b6e899563259e5f3c6", + "0x000000000000000000000000000000000020f78d6cb618375a58d8039cbbe95a", + "0x000000000000000000000000000000bd81bfa81ae056999ab4f6de054e3067d4", + "0x000000000000000000000000000000000006c3ee65fcd76a731d9db949113260", + "0x000000000000000000000000000000c6b8f74f0c78b6e2a31d6950c7bdccf8f6", + "0x00000000000000000000000000000000000bbef400fb7ca9778f1d874ca581d6", + "0x000000000000000000000000000000366187bf840bb19f3b3f3a9cb668837016", + "0x000000000000000000000000000000000009c808ffdcd7ebd05c9c8a6c0b5fe2", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000008c2de12a23e5bc60f4fa838a0dadde0a89", + "0x0000000000000000000000000000000000232a4873260f5774bfa580e0ed8741", + "0x0000000000000000000000000000007af9d52d5c49322de98cd9f5bb718d6bfa", + "0x0000000000000000000000000000000000181e32ab40464653b89481cd801494", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000001aa2e6a7eefcf67a1c54a49ff0a81aa790", + "0x000000000000000000000000000000000017203bebc1aa1938ef9268ea3ca89c", + "0x000000000000000000000000000000a61e1b17525b908a9f4b6a8376cf5fca7e", + "0x000000000000000000000000000000000012466ca65d98b691bbf931acfe1b7a", + "0x0000000000000000000000000000008b31bffcdde7c529f04c24902a1c2f0e78", + "0x0000000000000000000000000000000000242178a54cf9609bcb9195fd002ffe", + "0x000000000000000000000000000000d6512c0b39c067dd15e0580e5e4b2a567e", + "0x0000000000000000000000000000000000067c4c8b4b3f12889b70b91e76c429", + "0x00000000000000000000000000000097dd9450d1b681c88735875fcc6d0b4f61", + "0x000000000000000000000000000000000005c0627478cb8eac9ae816df6fbcda", + "0x000000000000000000000000000000c2a8966d4023907b10a1e714e9e8892b1b", + "0x00000000000000000000000000000000001ce75e6d831343969da02c1d02c600", + "0x000000000000000000000000000000ccccd71b8f35ae5cf291771d950f68f3da", + "0x000000000000000000000000000000000003c4d39cdc62445481623e62aee2eb", + "0x0000000000000000000000000000007866c0021c809de9466d440ed11ad06e2d", + "0x00000000000000000000000000000000001be4807329f829d87fe72bc72ea425", + "0x00000000000000000000000000000034db09f2a0954e121607b022f655bea165", + "0x00000000000000000000000000000000002fd4277bc2dc6982e34890d4b49682", + "0x000000000000000000000000000000f8cb23cce947a97193ae91204b3689fba9", + "0x000000000000000000000000000000000013cafea361342986c4d452947efe2b", + "0x000000000000000000000000000000cc44ebd033adff111038b46546004dcb75", + "0x00000000000000000000000000000000000d96f091add60f8747307f2d6f72f0", + "0x000000000000000000000000000000b3c22cb3f7c6722416b4b660c29fd79b94", + "0x00000000000000000000000000000000000b9289b001e07a165bf4d98cf60b31", + "0x0000000000000000000000000000005cc837a8b9babe98e7889b46f76641226b", + "0x0000000000000000000000000000000000290d6792db836056ee48c04d257023", + "0x0000000000000000000000000000007c315ccad12ec8ed76fdebae4a372267a3", + "0x000000000000000000000000000000000025ea4c55c9f64a9d9a29509137aea8", + "0x00000000000000000000000000000078ee5f9a2c619405dd3c7bdb0e09350100", + "0x00000000000000000000000000000000000b10e34e2703d335ff9a3a855df9a4", + "0x000000000000000000000000000000c834ba6990f3ecb2dbe630e41b9cadc7de", + "0x00000000000000000000000000000000001e589991bea6d97a496fcc27aa76a7", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000001eee81b23a887f299049b14c11e98460d6", "0x00000000000000000000000000000000002a56ce41f6b0be13b9c26747621b82", "0x000000000000000000000000000000d5827d6338c78656c0d12ca1aea6ef2c7c", "0x00000000000000000000000000000000001aa98f2de3ddda547d8f6de4e725de", - "0x000000000000000000000000000000009fc2164d514381cbd046643639eb0897", - "0x00000000000000000000000000000000002f78c031ec3c08a5ab5a89a1d10683", - "0x0000000000000000000000000000007152fc85b72cc8621b05374d34058fd1dc", - "0x0000000000000000000000000000000000045f49a06cc7dca8937f78ab17e851" + "0x000000000000000000000000000000d0d50af0bddcab0ed97122701d58270068", + "0x00000000000000000000000000000000000277e40a68ec404b450c141bb5d040", + "0x00000000000000000000000000000044addfcb623a146bc81a6e5523cf95b731", + "0x000000000000000000000000000000000004cf2654c61618fba84e111562cad2" ] - hash = "0x1dfa2952af644c59aa9d8ddec361d72059e139e64ce4790c4d3599963ba40244" + hash = "0x18c18e28746f7afc61052aa0f79002f5318e982f8b0faa6cb15ed24574325531" diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/checkpoint_header.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/checkpoint_header.nr index b3727fb262cc..e8f357a30f7b 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/checkpoint_header.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/checkpoint_header.nr @@ -15,6 +15,10 @@ pub struct CheckpointHeader { pub block_headers_hash: Field, pub blobs_hash: Field, pub in_hash: Field, + // Inbox rolling-hash chain value after consuming all L1-to-L2 messages bundled into this checkpoint. It is the + // dual of `in_hash` (AZIP-22 Fast Inbox): the truncated-to-field sha256 chain the L1 Inbox accumulates. Currently a + // pass-through commitment; `in_hash` remains the authoritative L1 check until the Fast Inbox flip. + pub inbox_rolling_hash: Field, // The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at // index 0, the second at index 1, and so on. // Note: This is not necessarily the final epoch out hash. It includes only the out hashes of checkpoints up to and @@ -40,6 +44,7 @@ impl Empty for CheckpointHeader { block_headers_hash: 0, blobs_hash: 0, in_hash: 0, + inbox_rolling_hash: 0, epoch_out_hash: 0, slot_number: 0, timestamp: 0, @@ -60,6 +65,7 @@ impl CheckpointHeader { let block_headers_hash_bytes: [u8; 32] = self.block_headers_hash.to_be_bytes(); let blobs_hash_bytes: [u8; 32] = self.blobs_hash.to_be_bytes(); let in_hash_bytes: [u8; 32] = self.in_hash.to_be_bytes(); + let inbox_rolling_hash_bytes: [u8; 32] = self.inbox_rolling_hash.to_be_bytes(); let epoch_out_hash_bytes: [u8; 32] = self.epoch_out_hash.to_be_bytes(); let slot_number_bytes: [u8; 32] = self.slot_number.to_be_bytes(); let coinbase_bytes: [u8; 20] = self.coinbase.to_be_bytes(); @@ -82,6 +88,8 @@ impl CheckpointHeader { offset += blobs_hash_bytes.len(); bytes[i + offset] = in_hash_bytes[i]; offset += in_hash_bytes.len(); + bytes[i + offset] = inbox_rolling_hash_bytes[i]; + offset += inbox_rolling_hash_bytes.len(); bytes[i + offset] = epoch_out_hash_bytes[i]; offset += epoch_out_hash_bytes.len(); bytes[i + offset] = slot_number_bytes[i]; @@ -135,8 +143,7 @@ fn empty_checkpoint_header_hash_matches_ts() { let header = CheckpointHeader::empty(); // Generated from checkpoint_header.test.ts - let empty_checkpoint_header_hash_from_ts = - 0x002e384af86a480f952aa16443fd29646a9063865e62d7c403fc7ed697bb7712; + let empty_checkpoint_header_hash_from_ts = 0x0008c3e5bbea4fba57201a69d4bf70a0d255df921fdef4924c22da087f9338c2; assert_eq(header.hash(), empty_checkpoint_header_hash_from_ts); } @@ -148,6 +155,7 @@ fn checkpoint_header_hash_matches_ts() { block_headers_hash: 456, blobs_hash: 77, in_hash: 88, + inbox_rolling_hash: 89, epoch_out_hash: 99, slot_number: 1234, timestamp: 5678, @@ -164,8 +172,7 @@ fn checkpoint_header_hash_matches_ts() { assert_eq(deserialized, header); // Generated from checkpoint_header.test.ts - let checkpoint_header_hash_from_ts = - 0x00d0dc440023ae006b0880b29ebfd5fda599d1aa7707f925229a362c5f24f3fc; + let checkpoint_header_hash_from_ts = 0x00519b87177a8a5e4edd03f4d820aec6d402497ef1ab70e2ecd4d4c39b339611; assert_eq(header.hash(), checkpoint_header_hash_from_ts); } @@ -179,6 +186,7 @@ fn checkpoint_header_hash_large_values_matches_ts() { block_headers_hash: MAX_FIELD_VALUE - 456, blobs_hash: MAX_FIELD_VALUE - 77, in_hash: MAX_FIELD_VALUE - 88, + inbox_rolling_hash: MAX_FIELD_VALUE - 89, epoch_out_hash: MAX_FIELD_VALUE - 99, slot_number: MAX_FIELD_VALUE - 1234, timestamp: MAX_U64_VALUE - 5678, @@ -197,8 +205,7 @@ fn checkpoint_header_hash_large_values_matches_ts() { assert_eq(deserialized, header); // Generated from checkpoint_header.test.ts - let checkpoint_header_hash_large_values_from_ts = - 0x0077f763e5840cc3f24686ac79f58ef8a7f08c6418fd757e7e84566dc2eb032a; + let checkpoint_header_hash_large_values_from_ts = 0x00d64307fa93c32ae46a4c3b6a1911d31994daa8d11d50201f0086a6cbaa9bac; assert_eq(header.hash(), checkpoint_header_hash_large_values_from_ts); } diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 079ab5c34d83..991aba1df507 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -426,6 +426,7 @@ pub global CHECKPOINT_HEADER_LENGTH: u32 = 1 /* last_archive_root */ + 1 /* block_headers_hash */ + 1 /* blobs_hash */ + 1 /* in_hash */ + + 1 /* inbox_rolling_hash */ + 1 /* out_hash */ + 1 /* slot_number */ + 1 /* timestamp */ @@ -609,19 +610,25 @@ pub global BLOCK_ROLLUP_PUBLIC_INPUTS_LENGTH: u32 = CHECKPOINT_CONSTANT_DATA_LEN + 1 /* timestamp */ + 1 /* block_headers_hash */ + 1 /* in_hash */ + + 1 /* start_inbox_rolling_hash */ + + 1 /* end_inbox_rolling_hash */ + 1 /* out_hash */ + 1 /* accumulated_fees */ + 1 /* accumulated_mana_used */; pub global CHECKPOINT_ROLLUP_PUBLIC_INPUTS_LENGTH: u32 = EPOCH_CONSTANT_DATA_LENGTH + 2 * APPEND_ONLY_TREE_SNAPSHOT_LENGTH /* previous_archive and new_archive */ - + MAX_CHECKPOINTS_PER_EPOCH /* checkpoint_header_hashes */ + 2 * APPEND_ONLY_TREE_SNAPSHOT_LENGTH /* start_out_hash and end_out_hash */ + + 1 /* start_inbox_rolling_hash */ + + 1 /* end_inbox_rolling_hash */ + + MAX_CHECKPOINTS_PER_EPOCH /* checkpoint_header_hashes */ + MAX_CHECKPOINTS_PER_EPOCH * FEE_RECIPIENT_LENGTH /* fees */ + 2 * BLOB_ACCUMULATOR_LENGTH /* start and end blob accumulators */ + FINAL_BLOB_BATCHING_CHALLENGES_LENGTH; pub global ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH: u32 = 1 /* previous_archive_root */ + 1 /* end_archive_root */ + 1 /* out_hash */ + + 1 /* previous_inbox_rolling_hash */ + + 1 /* end_inbox_rolling_hash */ + 1 /* chain_id */ + 1 /* version */ + 1 /* vk_tree_root */ diff --git a/yarn-project/constants/src/constants.gen.ts b/yarn-project/constants/src/constants.gen.ts index bf1469c6c0d0..0fdecea6f452 100644 --- a/yarn-project/constants/src/constants.gen.ts +++ b/yarn-project/constants/src/constants.gen.ts @@ -209,8 +209,8 @@ export const TX_REQUEST_LENGTH = 15; export const TOTAL_FEES_LENGTH = 1; export const TOTAL_MANA_USED_LENGTH = 1; export const BLOCK_HEADER_LENGTH = 22; -export const CHECKPOINT_HEADER_LENGTH = 13; -export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 348; +export const CHECKPOINT_HEADER_LENGTH = 14; +export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 380; export const SCOPED_READ_REQUEST_LEN = 3; export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 838; export const PRIVATE_CONTEXT_INPUTS_LENGTH = 37; @@ -238,9 +238,9 @@ export const BLOCK_CONSTANT_DATA_LENGTH = 16; export const CHECKPOINT_CONSTANT_DATA_LENGTH = 10; export const EPOCH_CONSTANT_DATA_LENGTH = 5; export const TX_ROLLUP_PUBLIC_INPUTS_LENGTH = 52; -export const BLOCK_ROLLUP_PUBLIC_INPUTS_LENGTH = 56; -export const CHECKPOINT_ROLLUP_PUBLIC_INPUTS_LENGTH = 149; -export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 111; +export const BLOCK_ROLLUP_PUBLIC_INPUTS_LENGTH = 58; +export const CHECKPOINT_ROLLUP_PUBLIC_INPUTS_LENGTH = 151; +export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 113; export const NUM_MSGS_PER_BASE_PARITY = 256; export const NUM_BASE_PARITY_PER_ROOT_PARITY = 4; export const RECURSIVE_PROOF_LENGTH = 410; diff --git a/yarn-project/ethereum/src/contracts/rollup.ts b/yarn-project/ethereum/src/contracts/rollup.ts index ef62956c6522..44906d4f0825 100644 --- a/yarn-project/ethereum/src/contracts/rollup.ts +++ b/yarn-project/ethereum/src/contracts/rollup.ts @@ -68,6 +68,10 @@ export type EpochProofPublicInputArgs = { previousArchive: `0x${string}`; endArchive: `0x${string}`; outHash: `0x${string}`; + /** Inbox rolling hash before the epoch's first checkpoint; unvalidated by L1 until the Fast Inbox flip. */ + previousInboxRollingHash: `0x${string}`; + /** Inbox rolling hash after the epoch's last checkpoint; unvalidated by L1 until the Fast Inbox flip. */ + endInboxRollingHash: `0x${string}`; proverId: `0x${string}`; }; @@ -76,6 +80,7 @@ export type ViemHeader = { blockHeadersHash: `0x${string}`; blobsHash: `0x${string}`; inHash: `0x${string}`; + inboxRollingHash: `0x${string}`; outHash: `0x${string}`; slotNumber: bigint; timestamp: bigint; diff --git a/yarn-project/ivc-integration/src/base_parity_inputs.test.ts b/yarn-project/ivc-integration/src/base_parity_inputs.test.ts index 523e12618bad..80d58659bbc7 100644 --- a/yarn-project/ivc-integration/src/base_parity_inputs.test.ts +++ b/yarn-project/ivc-integration/src/base_parity_inputs.test.ts @@ -4,7 +4,7 @@ * * Run with: BASE_PARITY_BENCH_DIR=./bench-out yarn workspace @aztec/ivc-integration test src/base_parity_inputs.test.ts */ -import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants'; +import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_MSGS_PER_BASE_PARITY } from '@aztec/constants'; import { Fr } from '@aztec/foundation/curves/bn254'; import { createLogger } from '@aztec/foundation/log'; import { Noir } from '@aztec/noir-noir_js'; @@ -37,13 +37,24 @@ describe('Base Parity Benchmark Inputs', () => { // Create base parity inputs for the first slice const vkTreeRoot = getVKTreeRoot(); - const baseParityInputs = ParityBasePrivateInputs.fromSlice(l1ToL2Messages, 0, vkTreeRoot, Fr.random()); + const baseParityInputs = ParityBasePrivateInputs.fromSlice( + l1ToL2Messages, + 0, + Fr.ZERO, + NUM_MSGS_PER_BASE_PARITY, + vkTreeRoot, + Fr.random(), + ); logger.info('Created base parity inputs'); // Convert inputs to Noir format (inline the mapping since it's simple) const noirInputs = { msgs: baseParityInputs.msgs.map(m => m.toString()), // eslint-disable-next-line camelcase + start_rolling_hash: baseParityInputs.startRollingHash.toString(), + // eslint-disable-next-line camelcase + num_msgs: baseParityInputs.numMsgs, + // eslint-disable-next-line camelcase vk_tree_root: baseParityInputs.vkTreeRoot.toString(), // eslint-disable-next-line camelcase prover_id: baseParityInputs.proverId.toString(), diff --git a/yarn-project/ivc-integration/src/bb_js_debug.test.ts b/yarn-project/ivc-integration/src/bb_js_debug.test.ts index b7d6c2c4ea1f..d02135420035 100644 --- a/yarn-project/ivc-integration/src/bb_js_debug.test.ts +++ b/yarn-project/ivc-integration/src/bb_js_debug.test.ts @@ -6,7 +6,7 @@ */ import { BBJsInstance, type BBJsProofResult } from '@aztec/bb-prover'; import { DebugBBJsInstance } from '@aztec/bb-prover/debug'; -import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants'; +import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_MSGS_PER_BASE_PARITY } from '@aztec/constants'; import { Fr } from '@aztec/foundation/curves/bn254'; import { createLogger } from '@aztec/foundation/log'; import { Noir } from '@aztec/noir-noir_js'; @@ -57,11 +57,22 @@ describe('BB.js Debug Wrapper', () => { // Generate base parity inputs (same approach as base_parity_inputs.test.ts) const l1ToL2Messages = new Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(null).map(() => Fr.random()); const vkTreeRoot = getVKTreeRoot(); - const baseParityInputs = ParityBasePrivateInputs.fromSlice(l1ToL2Messages, 0, vkTreeRoot, Fr.random()); + const baseParityInputs = ParityBasePrivateInputs.fromSlice( + l1ToL2Messages, + 0, + Fr.ZERO, + NUM_MSGS_PER_BASE_PARITY, + vkTreeRoot, + Fr.random(), + ); const noirInputs = { msgs: baseParityInputs.msgs.map(m => m.toString()), // eslint-disable-next-line camelcase + start_rolling_hash: baseParityInputs.startRollingHash.toString(), + // eslint-disable-next-line camelcase + num_msgs: baseParityInputs.numMsgs, + // eslint-disable-next-line camelcase vk_tree_root: baseParityInputs.vkTreeRoot.toString(), // eslint-disable-next-line camelcase prover_id: baseParityInputs.proverId.toString(), diff --git a/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts b/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts index c66d612020b7..bc244d1588fa 100644 --- a/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts +++ b/yarn-project/noir-protocol-circuits-types/src/conversion/server.ts @@ -469,6 +469,9 @@ function mapParityPublicInputsToNoir(parityPublicInputs: ParityPublicInputs): Pa return { sha_root: mapFieldToNoir(parityPublicInputs.shaRoot), converted_root: mapFieldToNoir(parityPublicInputs.convertedRoot), + start_rolling_hash: mapFieldToNoir(parityPublicInputs.startRollingHash), + end_rolling_hash: mapFieldToNoir(parityPublicInputs.endRollingHash), + num_msgs: mapNumberToNoir(parityPublicInputs.numMsgs), vk_tree_root: mapFieldToNoir(parityPublicInputs.vkTreeRoot), prover_id: mapFieldToNoir(parityPublicInputs.proverId), }; @@ -486,6 +489,8 @@ export function mapRootRollupPublicInputsFromNoir( mapFieldFromNoir(rootRollupPublicInputs.previous_archive_root), mapFieldFromNoir(rootRollupPublicInputs.new_archive_root), mapFieldFromNoir(rootRollupPublicInputs.out_hash), + mapFieldFromNoir(rootRollupPublicInputs.previous_inbox_rolling_hash), + mapFieldFromNoir(rootRollupPublicInputs.end_inbox_rolling_hash), mapTupleFromNoir(rootRollupPublicInputs.checkpoint_header_hashes, MAX_CHECKPOINTS_PER_EPOCH, mapFieldFromNoir), mapTupleFromNoir(rootRollupPublicInputs.fees, MAX_CHECKPOINTS_PER_EPOCH, mapFeeRecipientFromNoir), mapEpochConstantDataFromNoir(rootRollupPublicInputs.constants), @@ -502,6 +507,9 @@ export function mapParityPublicInputsFromNoir(parityPublicInputs: ParityPublicIn return new ParityPublicInputs( mapFieldFromNoir(parityPublicInputs.sha_root), mapFieldFromNoir(parityPublicInputs.converted_root), + mapFieldFromNoir(parityPublicInputs.start_rolling_hash), + mapFieldFromNoir(parityPublicInputs.end_rolling_hash), + mapNumberFromNoir(parityPublicInputs.num_msgs), mapFieldFromNoir(parityPublicInputs.vk_tree_root), mapFieldFromNoir(parityPublicInputs.prover_id), ); @@ -609,6 +617,8 @@ export function mapBlockRollupPublicInputsFromNoir(inputs: BlockRollupPublicInpu mapU64FromNoir(inputs.timestamp), mapFieldFromNoir(inputs.block_headers_hash), mapFieldFromNoir(inputs.in_hash), + mapFieldFromNoir(inputs.start_inbox_rolling_hash), + mapFieldFromNoir(inputs.end_inbox_rolling_hash), mapFieldFromNoir(inputs.out_hash), mapFieldFromNoir(inputs.accumulated_fees), mapFieldFromNoir(inputs.accumulated_mana_used), @@ -627,6 +637,8 @@ export function mapBlockRollupPublicInputsToNoir(inputs: BlockRollupPublicInputs timestamp: mapU64ToNoir(inputs.timestamp), block_headers_hash: mapFieldToNoir(inputs.blockHeadersHash), in_hash: mapFieldToNoir(inputs.inHash), + start_inbox_rolling_hash: mapFieldToNoir(inputs.startInboxRollingHash), + end_inbox_rolling_hash: mapFieldToNoir(inputs.endInboxRollingHash), out_hash: mapFieldToNoir(inputs.outHash), accumulated_fees: mapFieldToNoir(inputs.accumulatedFees), accumulated_mana_used: mapFieldToNoir(inputs.accumulatedManaUsed), @@ -640,6 +652,8 @@ export function mapCheckpointRollupPublicInputsFromNoir(inputs: CheckpointRollup mapAppendOnlyTreeSnapshotFromNoir(inputs.new_archive), mapAppendOnlyTreeSnapshotFromNoir(inputs.previous_out_hash), mapAppendOnlyTreeSnapshotFromNoir(inputs.new_out_hash), + mapFieldFromNoir(inputs.start_inbox_rolling_hash), + mapFieldFromNoir(inputs.end_inbox_rolling_hash), mapTupleFromNoir(inputs.checkpoint_header_hashes, MAX_CHECKPOINTS_PER_EPOCH, mapFieldFromNoir), mapTupleFromNoir(inputs.fees, MAX_CHECKPOINTS_PER_EPOCH, mapFeeRecipientFromNoir), mapBlobAccumulatorFromNoir(inputs.start_blob_accumulator), @@ -657,6 +671,8 @@ export function mapCheckpointRollupPublicInputsToNoir( new_archive: mapAppendOnlyTreeSnapshotToNoir(inputs.newArchive), previous_out_hash: mapAppendOnlyTreeSnapshotToNoir(inputs.previousOutHash), new_out_hash: mapAppendOnlyTreeSnapshotToNoir(inputs.newOutHash), + start_inbox_rolling_hash: mapFieldToNoir(inputs.startInboxRollingHash), + end_inbox_rolling_hash: mapFieldToNoir(inputs.endInboxRollingHash), checkpoint_header_hashes: mapTuple(inputs.checkpointHeaderHashes, mapFieldToNoir), fees: mapTuple(inputs.fees, mapFeeRecipientToNoir), start_blob_accumulator: mapBlobAccumulatorToNoir(inputs.startBlobAccumulator), @@ -702,6 +718,8 @@ function mapTreeSnapshotDiffHintsToNoir(hints: TreeSnapshotDiffHints): TreeSnaps export function mapParityBasePrivateInputsToNoir(inputs: ParityBasePrivateInputs): ParityBasePrivateInputsNoir { return { msgs: mapTuple(inputs.msgs, mapFieldToNoir), + start_rolling_hash: mapFieldToNoir(inputs.startRollingHash), + num_msgs: mapNumberToNoir(inputs.numMsgs), vk_tree_root: mapFieldToNoir(inputs.vkTreeRoot), prover_id: mapFieldToNoir(inputs.proverId), }; diff --git a/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.bench.test.ts b/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.bench.test.ts index a44f01610f14..aea083ab7b2a 100644 --- a/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.bench.test.ts +++ b/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.bench.test.ts @@ -151,6 +151,7 @@ describe('LightweightCheckpointBuilder benchmarks', () => { constants, [], [], + Fr.ZERO, fork, ); diff --git a/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.test.ts b/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.test.ts index 2ab1c908f2b2..e65cb2d1b3bb 100644 --- a/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.test.ts +++ b/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.test.ts @@ -108,6 +108,7 @@ describe('LightweightCheckpointBuilder', () => { constants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, ); @@ -148,6 +149,7 @@ describe('LightweightCheckpointBuilder', () => { constants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, ); @@ -198,6 +200,7 @@ describe('LightweightCheckpointBuilder', () => { constants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, ); @@ -237,6 +240,7 @@ describe('LightweightCheckpointBuilder', () => { constants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, ); @@ -290,6 +294,7 @@ describe('LightweightCheckpointBuilder', () => { constants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, ); @@ -314,6 +319,7 @@ describe('LightweightCheckpointBuilder', () => { constants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, ); @@ -348,6 +354,7 @@ describe('LightweightCheckpointBuilder', () => { constants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, ); diff --git a/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.ts b/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.ts index 10a2865cda4b..59176228a08c 100644 --- a/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.ts +++ b/yarn-project/prover-client/src/light/lightweight_checkpoint_builder.ts @@ -8,6 +8,7 @@ import { Checkpoint } from '@aztec/stdlib/checkpoint'; import type { MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server'; import { accumulateCheckpointOutHashes, + accumulateInboxRollingHash, appendL1ToL2MessagesToTree, computeCheckpointOutHash, computeInHashFromL1ToL2Messages, @@ -47,6 +48,8 @@ export class LightweightCheckpointBuilder { public feeAssetPriceModifier: bigint, public readonly l1ToL2Messages: Fr[], private readonly previousCheckpointOutHashes: Fr[], + // Inbox rolling hash of the previous checkpoint (this checkpoint's chain start); genesis is zero. + private readonly previousInboxRollingHash: Fr, public readonly db: MerkleTreeWriteOperations, bindings?: LoggerBindings, ) { @@ -63,6 +66,7 @@ export class LightweightCheckpointBuilder { constants: CheckpointGlobalVariables, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], + previousInboxRollingHash: Fr, db: MerkleTreeWriteOperations, bindings?: LoggerBindings, feeAssetPriceModifier: bigint = 0n, @@ -76,6 +80,7 @@ export class LightweightCheckpointBuilder { feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, db, bindings, ); @@ -93,6 +98,7 @@ export class LightweightCheckpointBuilder { feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], + previousInboxRollingHash: Fr, db: MerkleTreeWriteOperations, existingBlocks: L2Block[], bindings?: LoggerBindings, @@ -103,6 +109,7 @@ export class LightweightCheckpointBuilder { feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, db, bindings, ); @@ -264,6 +271,7 @@ export class LightweightCheckpointBuilder { const blobsHash = computeBlobsHashFromBlobs(blobs); const inHash = computeInHashFromL1ToL2Messages(this.l1ToL2Messages); + const inboxRollingHash = accumulateInboxRollingHash(this.previousInboxRollingHash, this.l1ToL2Messages); const { slotNumber, coinbase, feeRecipient, gasFees } = this.constants; const checkpointOutHash = computeCheckpointOutHash( @@ -281,6 +289,7 @@ export class LightweightCheckpointBuilder { lastArchiveRoot: this.lastArchives[0].root, blobsHash, inHash, + inboxRollingHash, epochOutHash, blockHeadersHash, slotNumber, @@ -310,6 +319,7 @@ export class LightweightCheckpointBuilder { this.feeAssetPriceModifier, [...this.l1ToL2Messages], [...this.previousCheckpointOutHashes], + this.previousInboxRollingHash, this.db, this.logger.getBindings(), ); diff --git a/yarn-project/prover-client/src/mocks/test_context.ts b/yarn-project/prover-client/src/mocks/test_context.ts index 24096fe0aa99..0c372f11ed7f 100644 --- a/yarn-project/prover-client/src/mocks/test_context.ts +++ b/yarn-project/prover-client/src/mocks/test_context.ts @@ -248,6 +248,7 @@ export class TestContext { { ...constants, timestamp }, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, cleanFork, ); diff --git a/yarn-project/prover-client/src/orchestrator/checkpoint-proving-state.ts b/yarn-project/prover-client/src/orchestrator/checkpoint-proving-state.ts index af04c8ebd55d..44a11c3d418b 100644 --- a/yarn-project/prover-client/src/orchestrator/checkpoint-proving-state.ts +++ b/yarn-project/prover-client/src/orchestrator/checkpoint-proving-state.ts @@ -11,6 +11,7 @@ import { Fr } from '@aztec/foundation/curves/bn254'; import type { Tuple } from '@aztec/foundation/serialize'; import { type TreeNodeLocation, UnbalancedTreeStore } from '@aztec/foundation/trees'; import type { PublicInputsAndRecursiveProof } from '@aztec/stdlib/interfaces/server'; +import { accumulateInboxRollingHash } from '@aztec/stdlib/messaging'; import { ParityBasePrivateInputs } from '@aztec/stdlib/parity'; import { BlockMergeRollupPrivateInputs, BlockRollupPublicInputs, CheckpointConstantData } from '@aztec/stdlib/rollup'; import type { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees'; @@ -35,6 +36,9 @@ export class CheckpointProvingState { private readonly headerOfLastBlockInPreviousCheckpoint: BlockHeader, private readonly lastArchiveSiblingPath: Tuple, private readonly l1ToL2Messages: Fr[], + // Inbox rolling hash before this checkpoint's messages (the previous checkpoint's end value; genesis is zero). + // Threaded into the base parity circuits so the resulting checkpoint header rolling hash matches the proposer's. + private readonly startInboxRollingHash: Fr, // The snapshot and sibling path before the new l1 to l2 message subtree is inserted. private readonly lastL1ToL2MessageTreeSnapshot: AppendOnlyTreeSnapshot, private readonly lastL1ToL2MessageSubtreeRootSiblingPath: Tuple< @@ -139,15 +143,23 @@ export class CheckpointProvingState { } public getBaseParityInputs(baseParityIndex: number) { - const messages = padArrayEnd( - this.l1ToL2Messages.slice( - baseParityIndex * NUM_MSGS_PER_BASE_PARITY, - (baseParityIndex + 1) * NUM_MSGS_PER_BASE_PARITY, - ), - Fr.ZERO, - NUM_MSGS_PER_BASE_PARITY, + const start = baseParityIndex * NUM_MSGS_PER_BASE_PARITY; + const realMessages = this.l1ToL2Messages.slice(start, start + NUM_MSGS_PER_BASE_PARITY); + const messages = padArrayEnd(realMessages, Fr.ZERO, NUM_MSGS_PER_BASE_PARITY); + // Thread the rolling hash: this base's start is the chain value after all real messages in earlier bases, so the + // four bases chain sequentially and the parity root ends at the checkpoint's rolling hash. Only real (non-padding) + // messages are absorbed, matching the proposer's `accumulateInboxRollingHash`. + const startRollingHash = accumulateInboxRollingHash( + this.startInboxRollingHash, + this.l1ToL2Messages.slice(0, start), + ); + return new ParityBasePrivateInputs( + messages, + startRollingHash, + realMessages.length, + this.constants.vkTreeRoot, + this.constants.proverId, ); - return new ParityBasePrivateInputs(messages, this.constants.vkTreeRoot, this.constants.proverId); } public getParentLocation(location: TreeNodeLocation) { diff --git a/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.test.ts b/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.test.ts index e0b48d2559b6..d13378e6f246 100644 --- a/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.test.ts +++ b/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.test.ts @@ -1,6 +1,7 @@ import { MAX_L2_TO_L1_MSGS_PER_TX } from '@aztec/constants'; import { EpochNumber } from '@aztec/foundation/branded-types'; import { padArrayEnd } from '@aztec/foundation/collection'; +import { Fr } from '@aztec/foundation/curves/bn254'; import { EthAddress } from '@aztec/foundation/eth-address'; import { createLogger } from '@aztec/foundation/log'; import { ScopedL2ToL1Message, computeBlockOutHash } from '@aztec/stdlib/messaging'; @@ -50,6 +51,7 @@ describe('prover/orchestrator/checkpoint-sub-tree', () => { makeTestDeferredJobQueue(), constants, l1ToL2Messages, + Fr.ZERO, numBlocks, previousBlockHeader, ); @@ -91,6 +93,7 @@ describe('prover/orchestrator/checkpoint-sub-tree', () => { makeTestDeferredJobQueue(), constants, l1ToL2Messages, + Fr.ZERO, numBlocks, previousBlockHeader, ); @@ -133,6 +136,7 @@ describe('prover/orchestrator/checkpoint-sub-tree', () => { makeTestDeferredJobQueue(), constants, l1ToL2Messages, + Fr.ZERO, numBlocks, previousBlockHeader, ); @@ -180,6 +184,7 @@ describe('prover/orchestrator/checkpoint-sub-tree', () => { makeTestDeferredJobQueue(), constants, l1ToL2Messages, + Fr.ZERO, numBlocks, previousBlockHeader, ); diff --git a/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.ts b/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.ts index 55e22e1247cc..3ce659460a5b 100644 --- a/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.ts +++ b/yarn-project/prover-client/src/orchestrator/checkpoint-sub-tree-orchestrator.ts @@ -192,6 +192,7 @@ export class CheckpointSubTreeOrchestrator extends ProvingScheduler { deferredJobQueue: SerialQueue, checkpointConstants: CheckpointConstantData, l1ToL2Messages: Fr[], + startInboxRollingHash: Fr, totalNumBlocks: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader, telemetryClient: TelemetryClient = getTelemetryClient(), @@ -212,6 +213,7 @@ export class CheckpointSubTreeOrchestrator extends ProvingScheduler { await subTree.startCheckpoint( checkpointConstants, l1ToL2Messages, + startInboxRollingHash, totalNumBlocks, headerOfLastBlockInPreviousCheckpoint, ); @@ -493,6 +495,7 @@ export class CheckpointSubTreeOrchestrator extends ProvingScheduler { private async startCheckpoint( constants: CheckpointConstantData, l1ToL2Messages: Fr[], + startInboxRollingHash: Fr, totalNumBlocks: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader, ): Promise { @@ -525,6 +528,7 @@ export class CheckpointSubTreeOrchestrator extends ProvingScheduler { headerOfLastBlockInPreviousCheckpoint, lastArchiveSiblingPath, l1ToL2Messages, + startInboxRollingHash, lastL1ToL2MessageTreeSnapshot, lastL1ToL2MessageSubtreeRootSiblingPath, newL1ToL2MessageTreeSnapshot, diff --git a/yarn-project/prover-client/src/orchestrator/top-tree-orchestrator.test.ts b/yarn-project/prover-client/src/orchestrator/top-tree-orchestrator.test.ts index 9be914f034b2..41b7340a8f83 100644 --- a/yarn-project/prover-client/src/orchestrator/top-tree-orchestrator.test.ts +++ b/yarn-project/prover-client/src/orchestrator/top-tree-orchestrator.test.ts @@ -1,6 +1,7 @@ import { MAX_L2_TO_L1_MSGS_PER_TX } from '@aztec/constants'; import { EpochNumber } from '@aztec/foundation/branded-types'; import { padArrayEnd } from '@aztec/foundation/collection'; +import { Fr } from '@aztec/foundation/curves/bn254'; import { EthAddress } from '@aztec/foundation/eth-address'; import { createLogger } from '@aztec/foundation/log'; import { promiseWithResolvers } from '@aztec/foundation/promise'; @@ -65,6 +66,7 @@ describe('prover/orchestrator/top-tree', () => { makeTestDeferredJobQueue(), fixture.constants, fixture.l1ToL2Messages, + Fr.ZERO, numBlocks, fixture.previousBlockHeader, ); diff --git a/yarn-project/prover-client/src/prover-client/prover-client.ts b/yarn-project/prover-client/src/prover-client/prover-client.ts index f8260d704fbc..c9040b46b685 100644 --- a/yarn-project/prover-client/src/prover-client/prover-client.ts +++ b/yarn-project/prover-client/src/prover-client/prover-client.ts @@ -56,6 +56,7 @@ export interface EpochProverFactory { epochNumber: EpochNumber, checkpointConstants: CheckpointConstantData, l1ToL2Messages: Fr[], + startInboxRollingHash: Fr, totalNumBlocks: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader, ): Promise; @@ -133,6 +134,7 @@ export class ProverClient implements EpochProverManager, EpochProverFactory { epochNumber: EpochNumber, checkpointConstants: CheckpointConstantData, l1ToL2Messages: Fr[], + startInboxRollingHash: Fr, totalNumBlocks: number, headerOfLastBlockInPreviousCheckpoint: BlockHeader, ): Promise { @@ -146,6 +148,7 @@ export class ProverClient implements EpochProverManager, EpochProverFactory { this.getDeferredJobQueue(), checkpointConstants, l1ToL2Messages, + startInboxRollingHash, totalNumBlocks, headerOfLastBlockInPreviousCheckpoint, this.telemetry, diff --git a/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts b/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts index db00fb35bbfb..e1c179156948 100644 --- a/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts +++ b/yarn-project/prover-client/src/test/bb_prover_full_rollup.test.ts @@ -3,6 +3,7 @@ import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, PAIRING_POINTS_SIZE } from '@aztec import { EpochNumber } from '@aztec/foundation/branded-types'; import { timesAsync } from '@aztec/foundation/collection'; import { parseBooleanEnv } from '@aztec/foundation/config'; +import { Fr } from '@aztec/foundation/curves/bn254'; import { EthAddress } from '@aztec/foundation/eth-address'; import { type Logger, createLogger } from '@aztec/foundation/log'; import { getTestData, isGenerateTestDataEnabled } from '@aztec/foundation/testing'; @@ -67,6 +68,9 @@ describe('prover/bb_prover/full-rollup', () => { for (let checkpointIndex = 0; checkpointIndex < numCheckpoints; checkpointIndex++) { const { constants, blocks, l1ToL2Messages, previousBlockHeader, checkpoint } = checkpoints[checkpointIndex]; + const previousInboxRollingHash = + checkpointIndex === 0 ? Fr.ZERO : checkpoints[checkpointIndex - 1].checkpoint.header.inboxRollingHash; + log.info(`Starting new checkpoint #${checkpointIndex}`); const subTree = await CheckpointSubTreeOrchestrator.start( context.worldState, @@ -78,6 +82,7 @@ describe('prover/bb_prover/full-rollup', () => { makeTestDeferredJobQueue(), constants, l1ToL2Messages, + previousInboxRollingHash, numBlockPerCheckpoint, previousBlockHeader, ); diff --git a/yarn-project/prover-client/src/test/bb_prover_parity.test.ts b/yarn-project/prover-client/src/test/bb_prover_parity.test.ts index 64e98703a317..b748ad1fe20c 100644 --- a/yarn-project/prover-client/src/test/bb_prover_parity.test.ts +++ b/yarn-project/prover-client/src/test/bb_prover_parity.test.ts @@ -2,6 +2,7 @@ import { BBNativeRollupProver, type BBProverConfig } from '@aztec/bb-prover'; import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY, + NUM_MSGS_PER_BASE_PARITY, PARITY_BASE_VK_INDEX, RECURSIVE_PROOF_LENGTH, } from '@aztec/constants'; @@ -12,6 +13,7 @@ import { Fr } from '@aztec/foundation/curves/bn254'; import { createLogger } from '@aztec/foundation/log'; import { ServerCircuitVks } from '@aztec/noir-protocol-circuits-types/server/vks'; import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree'; +import { accumulateInboxRollingHash } from '@aztec/stdlib/messaging'; import { ParityBasePrivateInputs, ParityPublicInputs, ParityRootPrivateInputs } from '@aztec/stdlib/parity'; import { makeRecursiveProof } from '@aztec/stdlib/proofs'; import { VerificationKeyData } from '@aztec/stdlib/vks'; @@ -49,7 +51,14 @@ describe('prover/bb_prover/parity', () => { const l1ToL2Messages = new Array(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).fill(null).map(() => Fr.random()); const proverId = Fr.random(); const baseParityInputs = makeTuple(NUM_BASE_PARITY_PER_ROOT_PARITY, i => - ParityBasePrivateInputs.fromSlice(l1ToL2Messages, i, getVKTreeRoot(), proverId), + ParityBasePrivateInputs.fromSlice( + l1ToL2Messages, + i, + accumulateInboxRollingHash(Fr.ZERO, l1ToL2Messages.slice(0, i * NUM_MSGS_PER_BASE_PARITY)), + NUM_MSGS_PER_BASE_PARITY, + getVKTreeRoot(), + proverId, + ), ); // Generate the base parity proofs @@ -109,7 +118,15 @@ describe('prover/bb_prover/parity', () => { shaRoot[0] = 0; const defectivePublicInputs = toProofData({ - inputs: new ParityPublicInputs(Fr.fromBuffer(shaRoot), Fr.random(), getVKTreeRoot(), proverId), + inputs: new ParityPublicInputs( + Fr.fromBuffer(shaRoot), + Fr.random(), + Fr.random(), + Fr.random(), + 0, + getVKTreeRoot(), + proverId, + ), proof: validProof, verificationKey: validVk, }); diff --git a/yarn-project/prover-client/src/test/regenerate_rollup_sample_inputs.test.ts b/yarn-project/prover-client/src/test/regenerate_rollup_sample_inputs.test.ts new file mode 100644 index 000000000000..86f2f75f6708 --- /dev/null +++ b/yarn-project/prover-client/src/test/regenerate_rollup_sample_inputs.test.ts @@ -0,0 +1,171 @@ +import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants'; +import { EpochNumber } from '@aztec/foundation/branded-types'; +import { timesAsync } from '@aztec/foundation/collection'; +import { Fr } from '@aztec/foundation/curves/bn254'; +import { EthAddress } from '@aztec/foundation/eth-address'; +import { type Logger, createLogger } from '@aztec/foundation/log'; +import { getTestData, isGenerateTestDataEnabled } from '@aztec/foundation/testing'; +import { updateProtocolCircuitSampleInputs } from '@aztec/foundation/testing/files'; +import type { CircuitName } from '@aztec/stdlib/stats'; + +import TOML from '@iarna/toml'; + +import { TestContext, makeTestDeferredJobQueue } from '../mocks/test_context.js'; +import { CheckpointSubTreeOrchestrator } from '../orchestrator/checkpoint-sub-tree-orchestrator.js'; +import { ChonkCache } from '../orchestrator/chonk-cache.js'; +import { type CheckpointTopTreeData, TopTreeOrchestrator } from '../orchestrator/top-tree-orchestrator.js'; + +// Regenerates the committed `crates/rollup-*/Prover.toml` sample inputs that CI runs `nargo execute` +// against. The rollup circuits push their serialized inputs via `pushTestData` whenever they run +// through the prover, so driving representative epochs through the (simulated) orchestrator and then +// dumping `getTestData(circuitName)` produces fresh, ABI-current fixtures. Run with: +// AZTEC_GENERATE_TEST_DATA=1 yarn workspace @aztec/prover-client test regenerate_rollup_sample_inputs +// Without that flag the whole suite is skipped, so it is a no-op (no prover setup) in normal CI. +// +// The four scenarios are chosen to exercise each block-root variant the orchestrator selects (see +// BlockProvingState#getBlockRootRollupTypeAndInputs): a first block with 0 txs, with >=2 txs, a +// three-block checkpoint (first block with 1 tx plus a block-merge), and a three-checkpoint epoch +// (for the checkpoint-merge). A merge node only exists above the tree root, so both merges need +// three leaves — two would pair directly at the root. Every scenario also produces the root rollup. +const describeOrSkip = isGenerateTestDataEnabled() ? describe : describe.skip; + +describeOrSkip('prover/regenerate-rollup-sample-inputs', () => { + let context: TestContext; + let log: Logger; + + interface Scenario { + numCheckpoints: number; + numBlocksPerCheckpoint: number; + numTxsPerBlock: number; + numL1ToL2Messages: number; + /** Circuits whose sample inputs this scenario is responsible for regenerating. */ + dump: CircuitName[]; + } + + const withMessages = NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP; + + const scenarios: Scenario[] = [ + { + numCheckpoints: 1, + numBlocksPerCheckpoint: 1, + numTxsPerBlock: 0, + numL1ToL2Messages: withMessages, + dump: ['rollup-block-root-first-empty-tx'], + }, + { + numCheckpoints: 1, + numBlocksPerCheckpoint: 1, + numTxsPerBlock: 2, + numL1ToL2Messages: withMessages, + dump: ['rollup-block-root-first', 'rollup-root'], + }, + { + numCheckpoints: 1, + numBlocksPerCheckpoint: 3, + numTxsPerBlock: 1, + numL1ToL2Messages: withMessages, + dump: ['rollup-block-root-first-single-tx', 'rollup-block-merge'], + }, + // The checkpoint-merge only appears with three checkpoints. Independently-built checkpoints do + // not carry the inbox message state forward, so this scenario runs with no L1-to-L2 messages and + // a zero previous rolling hash, matching the multi-checkpoint case in top-tree-orchestrator.test. + { + numCheckpoints: 3, + numBlocksPerCheckpoint: 1, + numTxsPerBlock: 1, + numL1ToL2Messages: 0, + dump: ['rollup-checkpoint-merge'], + }, + ]; + + beforeEach(async () => { + log = createLogger('prover-client:test:regenerate-rollup-sample-inputs'); + context = await TestContext.new(log, { proverCount: 1 }); + }); + + afterEach(async () => { + await context.cleanup(); + }); + + it.each(scenarios)( + 'regenerates $dump from an epoch with $numCheckpoints checkpoints, $numBlocksPerCheckpoint blocks, $numTxsPerBlock txs', + async ({ numCheckpoints, numBlocksPerCheckpoint, numTxsPerBlock, numL1ToL2Messages, dump }) => { + const checkpoints = await timesAsync(numCheckpoints, () => + context.makeCheckpoint(numBlocksPerCheckpoint, { + numTxsPerBlock, + numL1ToL2Messages, + makeProcessedTxOpts: (_, txIndex) => ({ privateOnly: txIndex % 2 === 0 }), + }), + ); + + const finalBlobChallenges = await context.getFinalBlobChallenges(); + const chonkCache = new ChonkCache(); + const subTrees: CheckpointSubTreeOrchestrator[] = []; + const topTreeData: CheckpointTopTreeData[] = []; + + try { + for (let checkpointIndex = 0; checkpointIndex < numCheckpoints; checkpointIndex++) { + const { constants, blocks, l1ToL2Messages, previousBlockHeader, checkpoint } = checkpoints[checkpointIndex]; + + // First checkpoint starts from genesis; the multi-checkpoint scenario carries no messages, + // so every checkpoint's previous rolling hash is zero. + const previousInboxRollingHash = Fr.ZERO; + + const subTree = await CheckpointSubTreeOrchestrator.start( + context.worldState, + context.prover, + EthAddress.ZERO, + chonkCache, + EpochNumber(1), + /* cancelJobsOnStop */ false, + makeTestDeferredJobQueue(), + constants, + l1ToL2Messages, + previousInboxRollingHash, + numBlocksPerCheckpoint, + previousBlockHeader, + ); + subTrees.push(subTree); + + for (let i = 0; i < numBlocksPerCheckpoint; i++) { + const { header, txs } = blocks[i]; + const { blockNumber, timestamp } = header.globalVariables; + + await subTree.startNewBlock(blockNumber, timestamp, txs.length); + if (txs.length > 0) { + await subTree.addTxs(txs); + } + await subTree.setBlockCompleted(blockNumber, header); + } + + topTreeData.push({ + blockProofs: subTree.getSubTreeResult().then(r => r.blockProofOutputs), + l2ToL1MsgsPerBlock: blocks.map(b => b.txs.map(tx => tx.txEffect.l2ToL1Msgs)), + blobFields: checkpoint.toBlobFields(), + previousBlockHeader, + previousArchiveSiblingPath: subTree.getPreviousArchiveSiblingPath(), + }); + } + + const topTree = new TopTreeOrchestrator(context.prover, EthAddress.ZERO, makeTestDeferredJobQueue()); + try { + await topTree.prove(EpochNumber(1), numCheckpoints, finalBlobChallenges, topTreeData); + } finally { + await topTree.stop(); + } + + for (const circuitName of dump) { + const data = getTestData(circuitName); + if (!data || data.length === 0) { + throw new Error(`No test data captured for ${circuitName}; scenario does not exercise it.`); + } + updateProtocolCircuitSampleInputs(circuitName, TOML.stringify(data[0] as any)); + log.info(`Regenerated sample inputs for ${circuitName}`); + } + } finally { + await Promise.all(subTrees.map(s => s.stop())); + } + }, + 300_000, + ); +}); diff --git a/yarn-project/prover-node/src/actions/rerun-epoch-proving-job.ts b/yarn-project/prover-node/src/actions/rerun-epoch-proving-job.ts index ef80162cd613..03f3208234c0 100644 --- a/yarn-project/prover-node/src/actions/rerun-epoch-proving-job.ts +++ b/yarn-project/prover-node/src/actions/rerun-epoch-proving-job.ts @@ -70,6 +70,8 @@ export async function rerunEpochProvingJob( const checkpoint = jobData.checkpoints[i]; const previousBlockHeader = i === 0 ? jobData.previousBlockHeader : jobData.checkpoints[i - 1].blocks.at(-1)!.header; + const previousInboxRollingHash = + i === 0 ? jobData.previousInboxRollingHash : jobData.checkpoints[i - 1].header.inboxRollingHash; const l1ToL2Messages = jobData.l1ToL2Messages[checkpoint.number] ?? []; const previousArchiveSiblingPath = await getLastSiblingPath( MerkleTreeId.ARCHIVE, @@ -84,6 +86,7 @@ export async function rerunEpochProvingJob( attestations, previousBlockHeader, l1ToL2Messages, + previousInboxRollingHash, previousArchiveSiblingPath, }, { diff --git a/yarn-project/prover-node/src/checkpoint-store.test.ts b/yarn-project/prover-node/src/checkpoint-store.test.ts index 0c9c98e8de4f..42cc594a9d61 100644 --- a/yarn-project/prover-node/src/checkpoint-store.test.ts +++ b/yarn-project/prover-node/src/checkpoint-store.test.ts @@ -265,6 +265,7 @@ function makeRegisterData() { attestations: [], previousBlockHeader: {} as any, l1ToL2Messages: [], + previousInboxRollingHash: Fr.ZERO, previousArchiveSiblingPath: makeTuple(ARCHIVE_HEIGHT, () => Fr.ZERO), }; } diff --git a/yarn-project/prover-node/src/job/checkpoint-prover.test.ts b/yarn-project/prover-node/src/job/checkpoint-prover.test.ts index 4a19f8a9c9a0..e4306dbc7726 100644 --- a/yarn-project/prover-node/src/job/checkpoint-prover.test.ts +++ b/yarn-project/prover-node/src/job/checkpoint-prover.test.ts @@ -261,6 +261,7 @@ describe('CheckpointProver', () => { attestations: [], previousBlockHeader: {} as BlockHeader, l1ToL2Messages: [], + previousInboxRollingHash: Fr.ZERO, previousArchiveSiblingPath: makeTuple(ARCHIVE_HEIGHT, () => Fr.ZERO), ...overrides, }; diff --git a/yarn-project/prover-node/src/job/checkpoint-prover.ts b/yarn-project/prover-node/src/job/checkpoint-prover.ts index c1cb4628c8ae..db5e80184e35 100644 --- a/yarn-project/prover-node/src/job/checkpoint-prover.ts +++ b/yarn-project/prover-node/src/job/checkpoint-prover.ts @@ -49,6 +49,8 @@ export type CheckpointProverArgs = { attestations: CommitteeAttestation[]; previousBlockHeader: BlockHeader; l1ToL2Messages: Fr[]; + /** Inbox rolling hash of the previous checkpoint (this checkpoint's chain start); genesis is zero. */ + previousInboxRollingHash: Fr; previousArchiveSiblingPath: Tuple; }; @@ -81,6 +83,7 @@ export class CheckpointProver { readonly attestations: CommitteeAttestation[]; readonly previousBlockHeader: BlockHeader; readonly l1ToL2Messages: Fr[]; + readonly previousInboxRollingHash: Fr; readonly previousArchiveSiblingPath: Tuple; /** Per-prover tx map — populated by the internal gather. Empty until then. */ @@ -111,6 +114,7 @@ export class CheckpointProver { this.attestations = args.attestations; this.previousBlockHeader = args.previousBlockHeader; this.l1ToL2Messages = args.l1ToL2Messages; + this.previousInboxRollingHash = args.previousInboxRollingHash; this.previousArchiveSiblingPath = args.previousArchiveSiblingPath; this.id = CheckpointProver.idFor(args.checkpoint); // Mark blockProofs as observed so a cancel that lands before any consumer awaits @@ -266,6 +270,7 @@ export class CheckpointProver { this.epochNumber, checkpointConstants, this.l1ToL2Messages, + this.previousInboxRollingHash, this.checkpoint.blocks.length, this.previousBlockHeader, ); diff --git a/yarn-project/prover-node/src/job/epoch-proving-job-data.test.ts b/yarn-project/prover-node/src/job/epoch-proving-job-data.test.ts index 6ff3ecc44fb3..58652eb13217 100644 --- a/yarn-project/prover-node/src/job/epoch-proving-job-data.test.ts +++ b/yarn-project/prover-node/src/job/epoch-proving-job-data.test.ts @@ -30,6 +30,7 @@ describe('EpochProvingJobData', () => { [CheckpointNumber(3)]: [Fr.random()], }, previousBlockHeader: BlockHeader.random(), + previousInboxRollingHash: Fr.random(), attestations: times(3, CommitteeAttestation.random), }; diff --git a/yarn-project/prover-node/src/job/epoch-proving-job-data.ts b/yarn-project/prover-node/src/job/epoch-proving-job-data.ts index 6b107b5eb411..c2ee95938d6e 100644 --- a/yarn-project/prover-node/src/job/epoch-proving-job-data.ts +++ b/yarn-project/prover-node/src/job/epoch-proving-job-data.ts @@ -12,6 +12,8 @@ export type EpochProvingJobData = { txs: Map; l1ToL2Messages: Record; previousBlockHeader: BlockHeader; + /** Inbox rolling hash of the checkpoint before the epoch's first checkpoint (its chain start); genesis is zero. */ + previousInboxRollingHash: Fr; attestations: CommitteeAttestation[]; }; @@ -48,6 +50,7 @@ export function serializeEpochProvingJobData(data: EpochProvingJobData): Buffer return serializeToBuffer( data.epochNumber, data.previousBlockHeader, + data.previousInboxRollingHash, checkpoints.length, ...checkpoints, txs.length, @@ -63,6 +66,7 @@ export function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData const reader = BufferReader.asReader(buf); const epochNumber = EpochNumber(reader.readNumber()); const previousBlockHeader = reader.readObject(BlockHeader); + const previousInboxRollingHash = Fr.fromBuffer(reader); const checkpoints = reader.readVector(Checkpoint); const txArray = reader.readVector(Tx); @@ -78,5 +82,13 @@ export function deserializeEpochProvingJobData(buf: Buffer): EpochProvingJobData const txs = new Map(txArray.map(tx => [tx.getTxHash().toString(), tx])); - return { epochNumber, previousBlockHeader, checkpoints, txs, l1ToL2Messages, attestations }; + return { + epochNumber, + previousBlockHeader, + previousInboxRollingHash, + checkpoints, + txs, + l1ToL2Messages, + attestations, + }; } diff --git a/yarn-project/prover-node/src/prover-node-publisher.ts b/yarn-project/prover-node/src/prover-node-publisher.ts index c175b959d3e0..1c935cd49757 100644 --- a/yarn-project/prover-node/src/prover-node-publisher.ts +++ b/yarn-project/prover-node/src/prover-node-publisher.ts @@ -329,6 +329,8 @@ export class ProverNodePublisher { previousArchive: args.publicInputs.previousArchiveRoot.toString(), endArchive: args.publicInputs.endArchiveRoot.toString(), outHash: args.publicInputs.outHash.toString(), + previousInboxRollingHash: args.publicInputs.previousInboxRollingHash.toString(), + endInboxRollingHash: args.publicInputs.endInboxRollingHash.toString(), proverId: EthAddress.fromField(args.publicInputs.constants.proverId).toString(), } /*_args*/, args.headers.map(header => header.toViem()) /*_headers*/, @@ -371,10 +373,12 @@ export class ProverNodePublisher { * [0] previousArchiveRoot * [1] endArchiveRoot * [2] outHash - * [3 .. 3+N-1] checkpointHeaderHashes[i] for i in 0..N-1 (N = MAX_CHECKPOINTS_PER_EPOCH) - * [3+N .. 3+3N-1] fees[i] = (recipient, value) for i in 0..N-1 - * [3+3N .. 3+3N+4] EpochConstantData (chainId, version, vkTreeRoot, protocolContractsHash, proverId) - * [3+3N+5 ..] blobPublicInputs (FinalBlobAccumulator) + * [3] previousInboxRollingHash + * [4] endInboxRollingHash + * [5 .. 5+N-1] checkpointHeaderHashes[i] for i in 0..N-1 (N = MAX_CHECKPOINTS_PER_EPOCH) + * [5+N .. 5+3N-1] fees[i] = (recipient, value) for i in 0..N-1 + * [5+3N .. 5+3N+4] EpochConstantData (chainId, version, vkTreeRoot, protocolContractsHash, proverId) + * [5+3N+5 ..] blobPublicInputs (FinalBlobAccumulator) */ async function reportPublicInputsMismatch(input: { rollupPublicInputs: readonly Fr[]; @@ -386,7 +390,8 @@ async function reportPublicInputsMismatch(input: { }): Promise { const { rollupPublicInputs, argsPublicInputs, fromCheckpoint, toCheckpoint, rollupContract, log } = input; const N = MAX_CHECKPOINTS_PER_EPOCH; - const constantsStart = 3 + 3 * N; + const headerHashesStart = 5; + const constantsStart = headerHashesStart + 3 * N; const blobStart = constantsStart + 5; const constantLabels = ['chainId', 'version', 'vkTreeRoot', 'protocolContractsHash', 'proverId']; @@ -406,11 +411,15 @@ async function reportPublicInputsMismatch(input: { label = 'endArchiveRoot'; } else if (i === 2) { label = 'outHash'; - } else if (i < 3 + N) { - checkpointIndex = i - 3; + } else if (i === 3) { + label = 'previousInboxRollingHash'; + } else if (i === 4) { + label = 'endInboxRollingHash'; + } else if (i < headerHashesStart + N) { + checkpointIndex = i - headerHashesStart; label = `checkpointHeaderHashes[${checkpointIndex}]`; - } else if (i < 3 + 3 * N) { - const feePairIndex = i - (3 + N); + } else if (i < headerHashesStart + 3 * N) { + const feePairIndex = i - (headerHashesStart + N); const feeIndex = Math.floor(feePairIndex / 2); const sub = feePairIndex % 2 === 0 ? 'recipient' : 'value'; label = `fees[${feeIndex}].${sub}`; diff --git a/yarn-project/prover-node/src/prover-node.ts b/yarn-project/prover-node/src/prover-node.ts index 9e7c72e088b7..89115344c9e4 100644 --- a/yarn-project/prover-node/src/prover-node.ts +++ b/yarn-project/prover-node/src/prover-node.ts @@ -3,6 +3,7 @@ import type { RollupContract } from '@aztec/ethereum/contracts'; import type { Delayer } from '@aztec/ethereum/l1-tx-utils'; import { BlockNumber, CheckpointNumber, EpochNumber } from '@aztec/foundation/branded-types'; import { assertRequired, compact, pick } from '@aztec/foundation/collection'; +import { Fr } from '@aztec/foundation/curves/bn254'; import { memoize } from '@aztec/foundation/decorators'; import { createLogger } from '@aztec/foundation/log'; import { RunningPromise } from '@aztec/foundation/running-promise'; @@ -347,6 +348,7 @@ export class ProverNode implements L2BlockStreamEventHandler, ProverNodeApi, Tra const previousBlockNumber = BlockNumber(checkpoint.blocks[0].number - 1); const previousBlockHeader = await this.gatherPreviousBlockHeader(previousBlockNumber); const l1ToL2Messages = await this.l1ToL2MessageSource.getL1ToL2Messages(checkpoint.number); + const previousInboxRollingHash = await this.gatherPreviousInboxRollingHash(checkpoint.number); const lastBlock = checkpoint.blocks.at(-1)!; const lastBlockHash = await lastBlock.header.hash(); await this.worldState.syncImmediate(lastBlock.number, lastBlockHash); @@ -358,10 +360,27 @@ export class ProverNode implements L2BlockStreamEventHandler, ProverNodeApi, Tra attestations, previousBlockHeader, l1ToL2Messages, + previousInboxRollingHash, previousArchiveSiblingPath, }; } + /** + * Sources the inbox rolling hash chain-start for a checkpoint: the previous checkpoint's `inboxRollingHash`, or zero + * for the genesis checkpoint. The prover threads this into the base parity circuits so the rebuilt checkpoint header + * matches the proposer's. + */ + private async gatherPreviousInboxRollingHash(checkpointNumber: CheckpointNumber): Promise { + if (checkpointNumber <= 1) { + return Fr.ZERO; + } + const previous = await this.l2BlockSource.getCheckpoint({ number: CheckpointNumber(checkpointNumber - 1) }); + if (!previous) { + throw new Error(`Previous checkpoint ${checkpointNumber - 1} not found when sourcing inbox rolling hash`); + } + return previous.checkpoint.header.inboxRollingHash; + } + /** * Marks every prover orphaned by the prune as pruned, clamps the catch-up cursor below the prune target's * checkpoint, and notifies the session manager. Keyed off the prune target block (the highest surviving block) diff --git a/yarn-project/prover-node/src/session-manager.ts b/yarn-project/prover-node/src/session-manager.ts index 3430815c205f..abf53bd92c1a 100644 --- a/yarn-project/prover-node/src/session-manager.ts +++ b/yarn-project/prover-node/src/session-manager.ts @@ -432,6 +432,7 @@ export class SessionManager { txs, l1ToL2Messages, previousBlockHeader: checkpoints[0].previousBlockHeader, + previousInboxRollingHash: checkpoints[0].previousInboxRollingHash, attestations: [], }; } diff --git a/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts b/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts index 49734a0d4228..434c37d5dea2 100644 --- a/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts +++ b/yarn-project/pxe/src/storage/backwards_compatibility_tests/schema_tests.ts @@ -276,6 +276,7 @@ export const SCHEMA_TESTS: readonly SchemaTest[] = [ new Fr(7n), new Fr(11n), new Fr(13n), + new Fr(15n), new Fr(17n), SlotNumber(19), 23n, diff --git a/yarn-project/sequencer-client/src/publisher/l1_publisher.integration.test.ts b/yarn-project/sequencer-client/src/publisher/l1_publisher.integration.test.ts index 475f61c76b9d..db4fcd676469 100644 --- a/yarn-project/sequencer-client/src/publisher/l1_publisher.integration.test.ts +++ b/yarn-project/sequencer-client/src/publisher/l1_publisher.integration.test.ts @@ -472,6 +472,7 @@ describe('L1Publisher integration', () => { checkpointConstants, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, tempFork, ); diff --git a/yarn-project/sequencer-client/src/publisher/write_json.ts b/yarn-project/sequencer-client/src/publisher/write_json.ts index 7e07dc7bc028..401a94908a6f 100644 --- a/yarn-project/sequencer-client/src/publisher/write_json.ts +++ b/yarn-project/sequencer-client/src/publisher/write_json.ts @@ -56,6 +56,7 @@ export async function writeJson( blockHeadersHash: asHex(checkpointHeader.blockHeadersHash), blobsHash: asHex(checkpointHeader.blobsHash), inHash: asHex(checkpointHeader.inHash), + inboxRollingHash: asHex(checkpointHeader.inboxRollingHash), outHash: asHex(checkpointHeader.epochOutHash), slotNumber: Number(checkpointHeader.slotNumber), timestamp: Number(checkpointHeader.timestamp), diff --git a/yarn-project/sequencer-client/src/sequencer/automine/automine_sequencer.ts b/yarn-project/sequencer-client/src/sequencer/automine/automine_sequencer.ts index ef1c5455768a..3c43860a8088 100644 --- a/yarn-project/sequencer-client/src/sequencer/automine/automine_sequencer.ts +++ b/yarn-project/sequencer-client/src/sequencer/automine/automine_sequencer.ts @@ -13,7 +13,7 @@ import type { P2PClient as ConcreteP2PClient, P2P } from '@aztec/p2p'; import { settleEpochOutbox } from '@aztec/prover-client/test'; import type { AztecAddress } from '@aztec/stdlib/aztec-address'; import { CommitteeAttestationsAndSigners, type L2Block, type L2BlockSource } from '@aztec/stdlib/block'; -import { getPreviousCheckpointOutHashes } from '@aztec/stdlib/checkpoint'; +import { getPreviousCheckpointInboxRollingHash, getPreviousCheckpointOutHashes } from '@aztec/stdlib/checkpoint'; import type { ChainConfig } from '@aztec/stdlib/config'; import { type L1RollupConstants, @@ -458,6 +458,12 @@ export class AutomineSequencer { log: this.log, }); + const previousInboxRollingHash = await getPreviousCheckpointInboxRollingHash({ + blockSource: this.deps.l2BlockSource, + checkpointNumber, + log: this.log, + }); + const feeAssetPriceModifier = await this.publisher.getFeeAssetPriceModifier(); await using fork = await this.deps.worldState.fork(syncedToBlockNumber, { closeDelayMs: 0 }); @@ -468,6 +474,7 @@ export class AutomineSequencer { feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, fork, this.log.getBindings(), ); diff --git a/yarn-project/sequencer-client/src/sequencer/checkpoint_proposal_job.ts b/yarn-project/sequencer-client/src/sequencer/checkpoint_proposal_job.ts index 729aa8039b87..6fa6212fb0f8 100644 --- a/yarn-project/sequencer-client/src/sequencer/checkpoint_proposal_job.ts +++ b/yarn-project/sequencer-client/src/sequencer/checkpoint_proposal_job.ts @@ -39,6 +39,7 @@ import { type Checkpoint, type ProposedCheckpointData, buildCheckpointSimulationOverridesPlan, + getPreviousCheckpointInboxRollingHash, getPreviousCheckpointOutHashes, validateCheckpoint, } from '@aztec/stdlib/checkpoint'; @@ -629,6 +630,16 @@ export class CheckpointProposalJob implements Traceable { log: this.log, }); + // Chain start for this checkpoint's inbox rolling hash: the parent checkpoint's `inboxRollingHash`. Unlike the + // epoch out-hash tree, the chain is continuous across epochs, so this is always the immediately preceding + // checkpoint's value (or zero at genesis). + const previousInboxRollingHash = await getPreviousCheckpointInboxRollingHash({ + blockSource: this.l2BlockSource, + checkpointNumber: this.checkpointNumber, + proposedCheckpointData: this.proposedCheckpointData, + log: this.log, + }); + // Anchor the modifier to the predicted parent fee header: L1 will apply it against // that, not against the latest published checkpoint (which lags by one under pipelining). const predictedParentEthPerFeeAssetE12 = @@ -645,6 +656,7 @@ export class CheckpointProposalJob implements Traceable { feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, fork, this.log.getBindings(), ); diff --git a/yarn-project/sequencer-client/src/test/mock_checkpoint_builder.ts b/yarn-project/sequencer-client/src/test/mock_checkpoint_builder.ts index f0a6afca82cc..b7cfae439637 100644 --- a/yarn-project/sequencer-client/src/test/mock_checkpoint_builder.ts +++ b/yarn-project/sequencer-client/src/test/mock_checkpoint_builder.ts @@ -263,6 +263,7 @@ export class MockCheckpointsBuilder implements ICheckpointsBuilder { feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], + _previousInboxRollingHash: Fr, _fork: MerkleTreeWriteOperations, ): Promise { this.startCheckpointCalls.push({ @@ -289,6 +290,7 @@ export class MockCheckpointsBuilder implements ICheckpointsBuilder { feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], + _previousInboxRollingHash: Fr, _fork: MerkleTreeWriteOperations, existingBlocks: L2Block[] = [], ): Promise { diff --git a/yarn-project/sequencer-client/src/test/utils.ts b/yarn-project/sequencer-client/src/test/utils.ts index 4bee7eb50f2d..92845b668f07 100644 --- a/yarn-project/sequencer-client/src/test/utils.ts +++ b/yarn-project/sequencer-client/src/test/utils.ts @@ -123,6 +123,7 @@ function createCheckpointHeaderFromBlock(block: L2Block): CheckpointHeader { Fr.random(), // blockHeadersHash - mock value for testing Fr.random(), // blobsHash - mock value for testing Fr.random(), // inHash - mock value for testing + Fr.random(), // inboxRollingHash - mock value for testing Fr.random(), // outHash - mock value for testing gv.slotNumber, gv.timestamp, diff --git a/yarn-project/stdlib/src/checkpoint/index.ts b/yarn-project/stdlib/src/checkpoint/index.ts index 8a0432995659..76c5eda642c3 100644 --- a/yarn-project/stdlib/src/checkpoint/index.ts +++ b/yarn-project/stdlib/src/checkpoint/index.ts @@ -3,6 +3,7 @@ export * from './checkpoint_data.js'; export * from './checkpoint_info.js'; export * from './checkpoint_reexecution_tracker.js'; export * from './digest.js'; +export * from './previous_checkpoint_inbox_rolling_hash.js'; export * from './previous_checkpoint_out_hashes.js'; export * from './published_checkpoint.js'; export * from './simulation_overrides.js'; diff --git a/yarn-project/stdlib/src/checkpoint/previous_checkpoint_inbox_rolling_hash.ts b/yarn-project/stdlib/src/checkpoint/previous_checkpoint_inbox_rolling_hash.ts new file mode 100644 index 000000000000..0e54bf0f5d6a --- /dev/null +++ b/yarn-project/stdlib/src/checkpoint/previous_checkpoint_inbox_rolling_hash.ts @@ -0,0 +1,46 @@ +import { CheckpointNumber } from '@aztec/foundation/branded-types'; +import { Fr } from '@aztec/foundation/curves/bn254'; +import type { Logger } from '@aztec/foundation/log'; + +import type { L2BlockSource } from '../block/l2_block_source.js'; +import type { ProposedCheckpointData } from './checkpoint_data.js'; + +/** + * Returns the inbox rolling hash chain-start for `checkpointNumber`: the `inboxRollingHash` of the immediately + * preceding checkpoint. Unlike the epoch out-hash tree, the rolling-hash chain is continuous across epoch boundaries, + * so the parent is always `checkpointNumber - 1` regardless of epoch. The genesis checkpoint (and the first checkpoint + * built on it) starts the chain at zero. + * + * Under proposer pipelining the parent may not be confirmed on L1 yet, so the locally-known proposed checkpoint is + * preferred when it is the parent, mirroring `getPreviousCheckpointOutHashes`. + */ +export async function getPreviousCheckpointInboxRollingHash(input: { + blockSource: Pick; + checkpointNumber: CheckpointNumber; + proposedCheckpointData?: ProposedCheckpointData; + log?: Logger; +}): Promise { + const { blockSource, checkpointNumber, proposedCheckpointData, log } = input; + if (checkpointNumber <= 1) { + return Fr.ZERO; + } + + const parent = CheckpointNumber(checkpointNumber - 1); + + if (proposedCheckpointData?.checkpointNumber === parent) { + log?.debug(`Using pipelined parent cp ${parent} inbox rolling hash for cp ${checkpointNumber}`); + return proposedCheckpointData.header.inboxRollingHash; + } + + const confirmed = await blockSource.getCheckpointData({ number: parent }); + if (confirmed) { + return confirmed.header.inboxRollingHash; + } + + const proposed = await blockSource.getProposedCheckpointData({ number: parent }); + if (proposed) { + return proposed.header.inboxRollingHash; + } + + throw new Error(`Cannot source inbox rolling hash for parent checkpoint ${parent} of checkpoint ${checkpointNumber}`); +} diff --git a/yarn-project/stdlib/src/interfaces/block-builder.ts b/yarn-project/stdlib/src/interfaces/block-builder.ts index aa08afc85559..90c67f7be201 100644 --- a/yarn-project/stdlib/src/interfaces/block-builder.ts +++ b/yarn-project/stdlib/src/interfaces/block-builder.ts @@ -151,6 +151,7 @@ export interface ICheckpointsBuilder { feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], + previousInboxRollingHash: Fr, fork: MerkleTreeWriteOperations, bindings?: LoggerBindings, ): Promise; diff --git a/yarn-project/stdlib/src/messaging/inbox_rolling_hash.test.ts b/yarn-project/stdlib/src/messaging/inbox_rolling_hash.test.ts new file mode 100644 index 000000000000..aeba869aaaed --- /dev/null +++ b/yarn-project/stdlib/src/messaging/inbox_rolling_hash.test.ts @@ -0,0 +1,48 @@ +import { Fr } from '@aztec/foundation/curves/bn254'; + +import { accumulateInboxRollingHash, updateInboxRollingHash } from './inbox_rolling_hash.js'; + +describe('inbox rolling hash', () => { + // Shared test vectors pinned against the noir `accumulate_inbox_rolling_hash` helper (FI-02). Any divergence here + // means the L1 / noir / TS rolling hashes would disagree. + const range = (from: number, to: number) => Array.from({ length: to - from + 1 }, (_, i) => new Fr(from + i)); + + it('chains a single leaf from zero', () => { + expect(accumulateInboxRollingHash(Fr.ZERO, [new Fr(11)])).toEqual( + Fr.fromHexString('0x00815fb1e9d2076ae5761439b6144ad11da69eb6c41ab2aca39e770407ad8d12'), + ); + }); + + it('chains three leaves from zero', () => { + expect(accumulateInboxRollingHash(Fr.ZERO, [new Fr(11), new Fr(22), new Fr(33)])).toEqual( + Fr.fromHexString('0x0014cae968461979aab6d33266a2310ed234d3f6cf4472737c57551db07bd0da'), + ); + }); + + it('chains 256 leaves from zero', () => { + expect(accumulateInboxRollingHash(Fr.ZERO, range(1, 256))).toEqual( + Fr.fromHexString('0x00ea95b96f17b75be03525b35a2a1918b42f03ad8c00a437cf641751825f3992'), + ); + }); + + it('chains from a non-zero start', () => { + expect(accumulateInboxRollingHash(new Fr(0x2a), [new Fr(7), new Fr(8)])).toEqual( + Fr.fromHexString('0x0054d96b8a074a5030a5838972d0a3c04ba47cf5956348c853e02e9566233f65'), + ); + }); + + it('is continuous across segments', () => { + const start = new Fr(0x2a); + const mid = updateInboxRollingHash(start, new Fr(7)); + expect(mid).toEqual(Fr.fromHexString('0x0032a934005556d1b9d22708666ee8b05f91fafad624dd64a6ea878e048e5438')); + // chain(chain(0x2a, [7]), [8]) == chain(0x2a, [7, 8]) + expect(accumulateInboxRollingHash(mid, [new Fr(8)])).toEqual( + accumulateInboxRollingHash(start, [new Fr(7), new Fr(8)]), + ); + }); + + it('returns the start unchanged for an empty list', () => { + const start = new Fr(0x2a); + expect(accumulateInboxRollingHash(start, [])).toEqual(start); + }); +}); diff --git a/yarn-project/stdlib/src/messaging/inbox_rolling_hash.ts b/yarn-project/stdlib/src/messaging/inbox_rolling_hash.ts new file mode 100644 index 000000000000..6a53831ee20d --- /dev/null +++ b/yarn-project/stdlib/src/messaging/inbox_rolling_hash.ts @@ -0,0 +1,20 @@ +import { sha256ToField } from '@aztec/foundation/crypto/sha256'; +import { Fr } from '@aztec/foundation/curves/bn254'; + +/** + * Extends the Inbox rolling-hash chain by a single message leaf, returning the new rolling hash. + * + * Each link is `sha256ToField(prev || leaf)` over the two 32-byte big-endian values, matching the truncated-to-field + * sha256 the L1 Inbox accumulates, today's `inHash` frontier tree, and the noir `accumulate_inbox_rolling_hash` helper. + */ +export function updateInboxRollingHash(prev: Fr, leaf: Fr): Fr { + return sha256ToField([prev.toBuffer(), leaf.toBuffer()]); +} + +/** + * Extends the Inbox rolling-hash chain by a list of message leaves, in order, returning the new rolling hash. + * The genesis rolling hash is `Fr.ZERO`, and an empty list returns `start` unchanged. + */ +export function accumulateInboxRollingHash(start: Fr, leaves: Fr[]): Fr { + return leaves.reduce(updateInboxRollingHash, start); +} diff --git a/yarn-project/stdlib/src/messaging/index.ts b/yarn-project/stdlib/src/messaging/index.ts index 2f9889a6e955..f5337a1025bf 100644 --- a/yarn-project/stdlib/src/messaging/index.ts +++ b/yarn-project/stdlib/src/messaging/index.ts @@ -1,6 +1,7 @@ export * from './append_l1_to_l2_messages.js'; export * from './in_hash.js'; export * from './inbox_leaf.js'; +export * from './inbox_rolling_hash.js'; export * from './l1_to_l2_message.js'; export * from './l1_to_l2_message_source.js'; export * from './l1_actor.js'; diff --git a/yarn-project/stdlib/src/parity/parity_base_private_inputs.ts b/yarn-project/stdlib/src/parity/parity_base_private_inputs.ts index 0c3bf62ac2f9..44a8a95d5a80 100644 --- a/yarn-project/stdlib/src/parity/parity_base_private_inputs.ts +++ b/yarn-project/stdlib/src/parity/parity_base_private_inputs.ts @@ -8,13 +8,24 @@ export class ParityBasePrivateInputs { constructor( /** Aggregated proof of all the parity circuit iterations. */ public readonly msgs: Tuple, + /** Inbox rolling hash before absorbing this base's real messages (threaded from the previous base's end). */ + public readonly startRollingHash: Fr, + /** Number of real (non-padding) messages in `msgs`. */ + public readonly numMsgs: number, /** Root of the VK tree */ public readonly vkTreeRoot: Fr, /** Prover identity committed to by the circuit, for sybil protection. */ public readonly proverId: Fr, ) {} - public static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr, proverId: Fr): ParityBasePrivateInputs { + public static fromSlice( + array: Fr[], + index: number, + startRollingHash: Fr, + numMsgs: number, + vkTreeRoot: Fr, + proverId: Fr, + ): ParityBasePrivateInputs { // Can't use Tuple due to length if (array.length !== NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) { throw new Error( @@ -24,12 +35,18 @@ export class ParityBasePrivateInputs { const start = index * NUM_MSGS_PER_BASE_PARITY; const end = start + NUM_MSGS_PER_BASE_PARITY; const msgs = array.slice(start, end); - return new ParityBasePrivateInputs(msgs as Tuple, vkTreeRoot, proverId); + return new ParityBasePrivateInputs( + msgs as Tuple, + startRollingHash, + numMsgs, + vkTreeRoot, + proverId, + ); } /** Serializes the inputs to a buffer. */ toBuffer() { - return serializeToBuffer(this.msgs, this.vkTreeRoot, this.proverId); + return serializeToBuffer(this.msgs, this.startRollingHash, new Fr(this.numMsgs), this.vkTreeRoot, this.proverId); } /** Serializes the inputs to a hex string. */ @@ -46,6 +63,8 @@ export class ParityBasePrivateInputs { return new ParityBasePrivateInputs( reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader), + Fr.fromBuffer(reader).toNumber(), + Fr.fromBuffer(reader), Fr.fromBuffer(reader), ); } diff --git a/yarn-project/stdlib/src/parity/parity_public_inputs.ts b/yarn-project/stdlib/src/parity/parity_public_inputs.ts index b8f0feaff2db..81482a9a3181 100644 --- a/yarn-project/stdlib/src/parity/parity_public_inputs.ts +++ b/yarn-project/stdlib/src/parity/parity_public_inputs.ts @@ -10,6 +10,12 @@ export class ParityPublicInputs { public shaRoot: Fr, /** Root of the converted tree. */ public convertedRoot: Fr, + /** Inbox rolling hash before absorbing this batch of messages. */ + public startRollingHash: Fr, + /** Inbox rolling hash after absorbing the `numMsgs` real messages in this batch. */ + public endRollingHash: Fr, + /** Number of real (non-padding) messages absorbed into the rolling hash by this batch. */ + public numMsgs: number, /** Root of the VK tree */ public vkTreeRoot: Fr, /** Prover identity committed to by the circuit, for sybil protection. */ @@ -25,7 +31,15 @@ export class ParityPublicInputs { * @returns The inputs serialized to a buffer. */ toBuffer() { - return serializeToBuffer(...ParityPublicInputs.getFields(this)); + return serializeToBuffer( + this.shaRoot, + this.convertedRoot, + this.startRollingHash, + this.endRollingHash, + new Fr(this.numMsgs), + this.vkTreeRoot, + this.proverId, + ); } /** @@ -56,7 +70,15 @@ export class ParityPublicInputs { * @returns The instance fields. */ static getFields(fields: FieldsOf) { - return [fields.shaRoot, fields.convertedRoot, fields.vkTreeRoot, fields.proverId] as const; + return [ + fields.shaRoot, + fields.convertedRoot, + fields.startRollingHash, + fields.endRollingHash, + fields.numMsgs, + fields.vkTreeRoot, + fields.proverId, + ] as const; } /** @@ -69,6 +91,9 @@ export class ParityPublicInputs { return new ParityPublicInputs( reader.readObject(Fr), reader.readObject(Fr), + reader.readObject(Fr), + reader.readObject(Fr), + Fr.fromBuffer(reader).toNumber(), Fr.fromBuffer(reader), Fr.fromBuffer(reader), ); diff --git a/yarn-project/stdlib/src/rollup/block_rollup_public_inputs.ts b/yarn-project/stdlib/src/rollup/block_rollup_public_inputs.ts index 12b6b1926e10..6ed30604caf5 100644 --- a/yarn-project/stdlib/src/rollup/block_rollup_public_inputs.ts +++ b/yarn-project/stdlib/src/rollup/block_rollup_public_inputs.ts @@ -56,6 +56,15 @@ export class BlockRollupPublicInputs { * SHA256 hash of l1 to l2 messages. */ public inHash: Fr, + /** + * Inbox rolling hash before consuming this block range's messages. Set (with `endInboxRollingHash`) only by the + * first block root of a checkpoint; zero on non-first block roots. The dual of `inHash` (AZIP-22 Fast Inbox). + */ + public startInboxRollingHash: Fr, + /** + * Inbox rolling hash after consuming this block range's messages. + */ + public endInboxRollingHash: Fr, /** * SHA256 hash of L2 to L1 messages created in this block range. */ @@ -86,6 +95,8 @@ export class BlockRollupPublicInputs { Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), + Fr.fromBuffer(reader), + Fr.fromBuffer(reader), ); } @@ -101,6 +112,8 @@ export class BlockRollupPublicInputs { bigintToUInt64BE(this.timestamp), this.blockHeadersHash, this.inHash, + this.startInboxRollingHash, + this.endInboxRollingHash, this.outHash, this.accumulatedFees, this.accumulatedManaUsed, @@ -125,6 +138,8 @@ export class BlockRollupPublicInputs { newArchiveRoot: this.newArchive.root.toString(), blockHeadersHash: this.blockHeadersHash.toString(), inHash: this.inHash.toString(), + startInboxRollingHash: this.startInboxRollingHash.toString(), + endInboxRollingHash: this.endInboxRollingHash.toString(), outHash: this.outHash.toString(), timestamp: this.timestamp.toString(), accumulatedFees: this.accumulatedFees.toString(), diff --git a/yarn-project/stdlib/src/rollup/checkpoint_header.test.ts b/yarn-project/stdlib/src/rollup/checkpoint_header.test.ts index 2748572da831..5c29c4ce8017 100644 --- a/yarn-project/stdlib/src/rollup/checkpoint_header.test.ts +++ b/yarn-project/stdlib/src/rollup/checkpoint_header.test.ts @@ -22,7 +22,7 @@ describe('CheckpointHeader', () => { const header = CheckpointHeader.empty(); const hash = header.hash().toString(); - expect(hash).toMatchInlineSnapshot('"0x002e384af86a480f952aa16443fd29646a9063865e62d7c403fc7ed697bb7712"'); + expect(hash).toMatchInlineSnapshot(`"0x0008c3e5bbea4fba57201a69d4bf70a0d255df921fdef4924c22da087f9338c2"`); // Run with AZTEC_GENERATE_TEST_DATA=1 to update noir test data updateInlineTestData( @@ -38,6 +38,7 @@ describe('CheckpointHeader', () => { blockHeadersHash: new Fr(456), blobsHash: new Fr(77), inHash: new Fr(88), + inboxRollingHash: new Fr(89), epochOutHash: new Fr(99), slotNumber: SlotNumber(1234), timestamp: BigInt(5678), @@ -49,7 +50,7 @@ describe('CheckpointHeader', () => { }); const hash = header.hash().toString(); - expect(hash).toMatchInlineSnapshot('"0x00d0dc440023ae006b0880b29ebfd5fda599d1aa7707f925229a362c5f24f3fc"'); + expect(hash).toMatchInlineSnapshot(`"0x00519b87177a8a5e4edd03f4d820aec6d402497ef1ab70e2ecd4d4c39b339611"`); // Run with AZTEC_GENERATE_TEST_DATA=1 to update noir test data updateInlineTestData( @@ -65,6 +66,7 @@ describe('CheckpointHeader', () => { blockHeadersHash: new Fr(MAX_FIELD_VALUE - 456n), blobsHash: new Fr(MAX_FIELD_VALUE - 77n), inHash: new Fr(MAX_FIELD_VALUE - 88n), + inboxRollingHash: new Fr(MAX_FIELD_VALUE - 89n), epochOutHash: new Fr(MAX_FIELD_VALUE - 99n), slotNumber: SlotNumber(1234), timestamp: 2n ** 64n - 1n - 5678n, @@ -79,7 +81,7 @@ describe('CheckpointHeader', () => { const hash = header.hash().toString(); - expect(hash).toMatchInlineSnapshot('"0x0077f763e5840cc3f24686ac79f58ef8a7f08c6418fd757e7e84566dc2eb032a"'); + expect(hash).toMatchInlineSnapshot(`"0x00d64307fa93c32ae46a4c3b6a1911d31994daa8d11d50201f0086a6cbaa9bac"`); // Run with AZTEC_GENERATE_TEST_DATA=1 to update noir test data updateInlineTestData( diff --git a/yarn-project/stdlib/src/rollup/checkpoint_header.ts b/yarn-project/stdlib/src/rollup/checkpoint_header.ts index 64b7d03e3062..32cbc58874e0 100644 --- a/yarn-project/stdlib/src/rollup/checkpoint_header.ts +++ b/yarn-project/stdlib/src/rollup/checkpoint_header.ts @@ -32,6 +32,12 @@ export class CheckpointHeader { public blobsHash: Fr, /** Root of the l1 to l2 messages subtree. */ public inHash: Fr, + /** + * Inbox rolling-hash chain value after consuming all L1-to-L2 messages bundled into this checkpoint. The dual of + * `inHash` (AZIP-22 Fast Inbox): the truncated-to-field sha256 chain the L1 Inbox accumulates. Currently a + * pass-through commitment; `inHash` remains the authoritative L1 check until the Fast Inbox flip. + */ + public inboxRollingHash: Fr, /** * The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at * index 0, the second at index 1, and so on. @@ -63,6 +69,7 @@ export class CheckpointHeader { blockHeadersHash: schemas.Fr, blobsHash: schemas.Fr, inHash: schemas.Fr, + inboxRollingHash: schemas.Fr, epochOutHash: schemas.Fr, slotNumber: schemas.SlotNumber, timestamp: schemas.BigInt, @@ -81,6 +88,7 @@ export class CheckpointHeader { fields.blockHeadersHash, fields.blobsHash, fields.inHash, + fields.inboxRollingHash, fields.epochOutHash, fields.slotNumber, fields.timestamp, @@ -105,6 +113,7 @@ export class CheckpointHeader { reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), + reader.readObject(Fr), SlotNumber(Fr.fromBuffer(reader).toNumber()), reader.readUInt64(), reader.readObject(EthAddress), @@ -121,6 +130,7 @@ export class CheckpointHeader { this.blockHeadersHash.equals(other.blockHeadersHash) && this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && + this.inboxRollingHash.equals(other.inboxRollingHash) && this.epochOutHash.equals(other.epochOutHash) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp && @@ -150,6 +160,7 @@ export class CheckpointHeader { this.blockHeadersHash, this.blobsHash, this.inHash, + this.inboxRollingHash, this.epochOutHash, new Fr(this.slotNumber), bigintToUInt64BE(this.timestamp), @@ -171,6 +182,7 @@ export class CheckpointHeader { blockHeadersHash: Fr.ZERO, blobsHash: Fr.ZERO, inHash: Fr.ZERO, + inboxRollingHash: Fr.ZERO, epochOutHash: Fr.ZERO, slotNumber: SlotNumber.ZERO, timestamp: 0n, @@ -189,6 +201,7 @@ export class CheckpointHeader { blockHeadersHash: Fr.random(), blobsHash: Fr.random(), inHash: Fr.random(), + inboxRollingHash: Fr.random(), epochOutHash: Fr.random(), slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1), timestamp: BigInt(Math.floor(Date.now() / 1000)), @@ -207,6 +220,7 @@ export class CheckpointHeader { this.blockHeadersHash.isZero() && this.blobsHash.isZero() && this.inHash.isZero() && + this.inboxRollingHash.isZero() && this.epochOutHash.isZero() && this.slotNumber === 0 && this.timestamp === 0n && @@ -236,6 +250,7 @@ export class CheckpointHeader { Fr.fromString(header.blockHeadersHash), Fr.fromString(header.blobsHash), Fr.fromString(header.inHash), + Fr.fromString(header.inboxRollingHash), Fr.fromString(header.outHash), SlotNumber.fromBigInt(header.slotNumber), header.timestamp, @@ -261,6 +276,7 @@ export class CheckpointHeader { blockHeadersHash: this.blockHeadersHash.toString(), blobsHash: this.blobsHash.toString(), inHash: this.inHash.toString(), + inboxRollingHash: this.inboxRollingHash.toString(), outHash: this.epochOutHash.toString(), slotNumber: BigInt(this.slotNumber), timestamp: this.timestamp, @@ -281,6 +297,7 @@ export class CheckpointHeader { blockHeadersHash: this.blockHeadersHash.toString(), blobsHash: this.blobsHash.toString(), inHash: this.inHash.toString(), + inboxRollingHash: this.inboxRollingHash.toString(), epochOutHash: this.epochOutHash.toString(), slotNumber: this.slotNumber, timestamp: this.timestamp, @@ -298,6 +315,7 @@ export class CheckpointHeader { blockHeadersHash: ${this.blockHeadersHash.toString()}, blobsHash: ${inspect(this.blobsHash)}, inHash: ${inspect(this.inHash)}, + inboxRollingHash: ${inspect(this.inboxRollingHash)}, epochOutHash: ${inspect(this.epochOutHash)}, slotNumber: ${this.slotNumber}, timestamp: ${this.timestamp}, diff --git a/yarn-project/stdlib/src/rollup/checkpoint_rollup_public_inputs.ts b/yarn-project/stdlib/src/rollup/checkpoint_rollup_public_inputs.ts index dc3049babbe8..3ec8bfdbc31c 100644 --- a/yarn-project/stdlib/src/rollup/checkpoint_rollup_public_inputs.ts +++ b/yarn-project/stdlib/src/rollup/checkpoint_rollup_public_inputs.ts @@ -35,6 +35,15 @@ export class CheckpointRollupPublicInputs { * The out hash tree snapshot after applying this checkpoint range. */ public newOutHash: AppendOnlyTreeSnapshot, + /** + * Inbox rolling hash before consuming this checkpoint range's messages. + */ + public startInboxRollingHash: Fr, + /** + * Inbox rolling hash after consuming this checkpoint range's messages (the end value lands in the checkpoint + * header). Checkpoint merges assert `right.start == left.end` for chain continuity. + */ + public endInboxRollingHash: Fr, /** * The hashes of the headers of the constituent checkpoints. */ @@ -65,6 +74,8 @@ export class CheckpointRollupPublicInputs { reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), + Fr.fromBuffer(reader), + Fr.fromBuffer(reader), reader.readArray(MAX_CHECKPOINTS_PER_EPOCH, Fr), reader.readArray(MAX_CHECKPOINTS_PER_EPOCH, FeeRecipient), reader.readObject(BlobAccumulator), @@ -80,6 +91,8 @@ export class CheckpointRollupPublicInputs { this.newArchive, this.previousOutHash, this.newOutHash, + this.startInboxRollingHash, + this.endInboxRollingHash, this.checkpointHeaderHashes, this.fees, this.startBlobAccumulator, @@ -108,6 +121,8 @@ export class CheckpointRollupPublicInputs { newArchiveRoot: this.newArchive.root.toString(), previousOutHashRoot: this.previousOutHash.root.toString(), newOutHashRoot: this.newOutHash.root.toString(), + startInboxRollingHash: this.startInboxRollingHash.toString(), + endInboxRollingHash: this.endInboxRollingHash.toString(), }; } diff --git a/yarn-project/stdlib/src/rollup/root_rollup_public_inputs.ts b/yarn-project/stdlib/src/rollup/root_rollup_public_inputs.ts index 9c362ccd9e59..ff5f75f5a1b2 100644 --- a/yarn-project/stdlib/src/rollup/root_rollup_public_inputs.ts +++ b/yarn-project/stdlib/src/rollup/root_rollup_public_inputs.ts @@ -26,6 +26,13 @@ export class RootRollupPublicInputs { * The out hash of the first checkpoint in the epoch is inserted at index 0, the second at index 1, and so on. */ public outHash: Fr, + /** + * Inbox rolling hash before the epoch's first checkpoint's messages. Passed through to L1 unvalidated until the + * Fast Inbox flip (AZIP-22). + */ + public previousInboxRollingHash: Fr, + /** Inbox rolling hash after the epoch's last checkpoint's messages. */ + public endInboxRollingHash: Fr, /** Hashes of checkpoint headers for this rollup. */ public checkpointHeaderHashes: Tuple, public fees: Tuple, @@ -38,6 +45,8 @@ export class RootRollupPublicInputs { fields.previousArchiveRoot, fields.endArchiveRoot, fields.outHash, + fields.previousInboxRollingHash, + fields.endInboxRollingHash, fields.checkpointHeaderHashes, fields.fees, fields.constants, @@ -65,6 +74,8 @@ export class RootRollupPublicInputs { public static fromBuffer(buffer: Buffer | BufferReader): RootRollupPublicInputs { const reader = BufferReader.asReader(buffer); return new RootRollupPublicInputs( + Fr.fromBuffer(reader), + Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader), @@ -96,6 +107,8 @@ export class RootRollupPublicInputs { /** Creates a random instance. Used for testing only - will not prove/verify. */ static random() { return new RootRollupPublicInputs( + Fr.random(), + Fr.random(), Fr.random(), Fr.random(), Fr.random(), diff --git a/yarn-project/stdlib/src/tests/factories.ts b/yarn-project/stdlib/src/tests/factories.ts index 9962e7f2615c..6ed5705414f9 100644 --- a/yarn-project/stdlib/src/tests/factories.ts +++ b/yarn-project/stdlib/src/tests/factories.ts @@ -826,6 +826,8 @@ export function makeBlockRollupPublicInputs(seed = 0): BlockRollupPublicInputs { BigInt(seed + 0x800), fr(seed + 0x820), fr(seed + 0x830), + fr(seed + 0x835), + fr(seed + 0x838), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860), @@ -839,6 +841,8 @@ export function makeCheckpointRollupPublicInputs(seed = 0) { makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), + fr(seed + 0x360), + fr(seed + 0x370), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => makeFeeRecipient(seed), 0x500), makeBlobAccumulator(seed + 0x600), @@ -853,12 +857,17 @@ export function makeParityPublicInputs(seed = 0): ParityPublicInputs { new Fr(BigInt(seed + 0x300)), new Fr(BigInt(seed + 0x400)), new Fr(BigInt(seed + 0x500)), + seed + 0x600, + new Fr(BigInt(seed + 0x700)), + new Fr(BigInt(seed + 0x800)), ); } export function makeParityBasePrivateInputs(seed = 0): ParityBasePrivateInputs { return new ParityBasePrivateInputs( makeTuple(NUM_MSGS_PER_BASE_PARITY, fr, seed + 0x3000), + new Fr(seed + 0x3500), + seed % (NUM_MSGS_PER_BASE_PARITY + 1), new Fr(seed + 0x4000), new Fr(seed + 0x5000), ); @@ -881,6 +890,8 @@ export function makeRootRollupPublicInputs(seed = 0): RootRollupPublicInputs { fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), + fr(seed + 0x320), + fr(seed + 0x340), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, () => makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), @@ -909,6 +920,7 @@ export function makeCheckpointHeader(seed = 0, overrides: Partial { @@ -334,6 +335,7 @@ export class FullNodeCheckpointsBuilder implements ICheckpointsBuilder { constants, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, fork, bindings, feeAssetPriceModifier, @@ -360,6 +362,7 @@ export class FullNodeCheckpointsBuilder implements ICheckpointsBuilder { feeAssetPriceModifier: bigint, l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], + previousInboxRollingHash: Fr, fork: MerkleTreeWriteOperations, existingBlocks: L2Block[] = [], bindings?: LoggerBindings, @@ -374,6 +377,7 @@ export class FullNodeCheckpointsBuilder implements ICheckpointsBuilder { feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, fork, bindings, ); @@ -395,6 +399,7 @@ export class FullNodeCheckpointsBuilder implements ICheckpointsBuilder { feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, fork, existingBlocks, bindings, diff --git a/yarn-project/validator-client/src/proposal_handler.ts b/yarn-project/validator-client/src/proposal_handler.ts index aff904864e5e..147572f32f18 100644 --- a/yarn-project/validator-client/src/proposal_handler.ts +++ b/yarn-project/validator-client/src/proposal_handler.ts @@ -22,7 +22,11 @@ import type { P2P, PeerId } from '@aztec/p2p'; import { BlockProposalValidator } from '@aztec/p2p/msg_validators'; import type { BlockData, L2Block, L2BlockSink, L2BlockSource } from '@aztec/stdlib/block'; import type { CheckpointReexecutionTracker, ReexecutionOutcome } from '@aztec/stdlib/checkpoint'; -import { getPreviousCheckpointOutHashes, validateCheckpoint } from '@aztec/stdlib/checkpoint'; +import { + getPreviousCheckpointInboxRollingHash, + getPreviousCheckpointOutHashes, + validateCheckpoint, +} from '@aztec/stdlib/checkpoint'; import { getEpochAtSlot } from '@aztec/stdlib/epoch-helpers'; import { Gas } from '@aztec/stdlib/gas'; import type { ITxProvider, ValidatorClientFullConfig, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server'; @@ -572,6 +576,12 @@ export class ProposalHandler { log: this.log, }); + const previousInboxRollingHash = await getPreviousCheckpointInboxRollingHash({ + blockSource: this.blockSource, + checkpointNumber, + log: this.log, + }); + // Try re-executing the transactions in the proposal if needed let reexecutionResult; try { @@ -583,6 +593,7 @@ export class ProposalHandler { txs, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, ); } catch (error) { this.log.error(`Error reexecuting txs while processing block proposal`, error, proposalInfo); @@ -870,6 +881,7 @@ export class ProposalHandler { txs: Tx[], l1ToL2Messages: Fr[], previousCheckpointOutHashes: Fr[], + previousInboxRollingHash: Fr, ): Promise { const { blockHeader, txHashes } = proposal; @@ -918,6 +930,7 @@ export class ProposalHandler { 0n, // only takes effect in the following checkpoint. l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, fork, priorBlocks, this.log.getBindings(), @@ -1161,6 +1174,12 @@ export class ProposalHandler { log: this.log, }); + const previousInboxRollingHash = await getPreviousCheckpointInboxRollingHash({ + blockSource: this.blockSource, + checkpointNumber, + log: this.log, + }); + // Fork world state at the block before the first block const parentBlockNumber = BlockNumber(firstBlock.number - 1); await using fork = await this.checkpointsBuilder.getFork(parentBlockNumber); @@ -1172,6 +1191,7 @@ export class ProposalHandler { proposal.feeAssetPriceModifier, l1ToL2Messages, previousCheckpointOutHashes, + previousInboxRollingHash, fork, blocks, this.log.getBindings(), diff --git a/yarn-project/validator-client/src/validator.integration.test.ts b/yarn-project/validator-client/src/validator.integration.test.ts index 0670eed45eab..015b86500d30 100644 --- a/yarn-project/validator-client/src/validator.integration.test.ts +++ b/yarn-project/validator-client/src/validator.integration.test.ts @@ -324,6 +324,7 @@ describe('ValidatorClient Integration', () => { 0n, l1ToL2Messages, previousCheckpointOutHashes, + Fr.ZERO, fork, );