From d3cd59c5d1ce007c94d4eb01424a84ba3d0771ef Mon Sep 17 00:00:00 2001 From: Leopold Joy Date: Wed, 25 Mar 2026 02:16:25 +0000 Subject: [PATCH 1/3] refactor: use uint64 for startingL2SequenceNumber and endingL2SequenceNumber in AggregateVerifier --- src/multiproof/AggregateVerifier.sol | 32 ++++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/multiproof/AggregateVerifier.sol b/src/multiproof/AggregateVerifier.sol index 56bf09a2..704ea205 100644 --- a/src/multiproof/AggregateVerifier.sol +++ b/src/multiproof/AggregateVerifier.sol @@ -385,9 +385,9 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { gameCreator(), l1OriginHash, startingOutputRoot.root.raw(), - startingOutputRoot.l2SequenceNumber, + uint64(startingOutputRoot.l2SequenceNumber), rootClaim().raw(), - l2SequenceNumber(), + uint64(l2SequenceNumber()), intermediateOutputRoots() ); @@ -420,9 +420,9 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { msg.sender, l1Head().raw(), startingOutputRoot.root.raw(), - startingOutputRoot.l2SequenceNumber, + uint64(startingOutputRoot.l2SequenceNumber), rootClaim().raw(), - l2SequenceNumber(), + uint64(l2SequenceNumber()), intermediateOutputRoots() ); _proofVerifiedUpdate(proofType, msg.sender); @@ -495,7 +495,7 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { _checkIntermediateRoot(intermediateRootIndex, intermediateRootToProve); - (bytes32 startingRoot, uint256 startingL2SequenceNumber, uint256 endingL2SequenceNumber) = + (bytes32 startingRoot, uint64 startingL2SequenceNumber, uint64 endingL2SequenceNumber) = _getStartingIntermediateRootAndL2SequenceNumbers(intermediateRootIndex); _verifyProof( @@ -559,7 +559,7 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { _checkIntermediateRoot(intermediateRootIndex, intermediateRootToProve); } - (bytes32 startingRoot, uint256 startingL2SequenceNumber, uint256 endingL2SequenceNumber) = + (bytes32 startingRoot, uint64 startingL2SequenceNumber, uint64 endingL2SequenceNumber) = _getStartingIntermediateRootAndL2SequenceNumbers(intermediateRootIndex); _verifyProof( @@ -814,9 +814,9 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { address proposer, bytes32 l1OriginHash, bytes32 startingRoot, - uint256 startingL2SequenceNumber, + uint64 startingL2SequenceNumber, bytes32 endingRoot, - uint256 endingL2SequenceNumber, + uint64 endingL2SequenceNumber, bytes memory intermediateRoots ) internal @@ -858,9 +858,9 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { address proposer, bytes32 l1OriginHash, bytes32 startingRoot, - uint256 startingL2SequenceNumber, + uint64 startingL2SequenceNumber, bytes32 endingRoot, - uint256 endingL2SequenceNumber, + uint64 endingL2SequenceNumber, bytes memory intermediateRoots ) internal @@ -892,9 +892,9 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { address proposer, bytes32 l1OriginHash, bytes32 startingRoot, - uint256 startingL2SequenceNumber, + uint64 startingL2SequenceNumber, bytes32 endingRoot, - uint256 endingL2SequenceNumber, + uint64 endingL2SequenceNumber, bytes memory intermediateRoots ) internal @@ -997,14 +997,14 @@ contract AggregateVerifier is Clone, ReentrancyGuard, ISemver { function _getStartingIntermediateRootAndL2SequenceNumbers(uint256 intermediateRootIndex) internal view - returns (bytes32, uint256, uint256) + returns (bytes32, uint64, uint64) { bytes32 startingRoot = intermediateRootIndex == 0 ? startingOutputRoot.root.raw() : intermediateOutputRoot(intermediateRootIndex - 1); - uint256 startingL2SequenceNumber = - startingOutputRoot.l2SequenceNumber + intermediateRootIndex * INTERMEDIATE_BLOCK_INTERVAL; - uint256 endingL2SequenceNumber = startingL2SequenceNumber + INTERMEDIATE_BLOCK_INTERVAL; + uint64 startingL2SequenceNumber = + uint64(startingOutputRoot.l2SequenceNumber + intermediateRootIndex * INTERMEDIATE_BLOCK_INTERVAL); + uint64 endingL2SequenceNumber = startingL2SequenceNumber + uint64(INTERMEDIATE_BLOCK_INTERVAL); return (startingRoot, startingL2SequenceNumber, endingL2SequenceNumber); } From 6144500b790603f5292bc1fdf6a5aa115e4e1563 Mon Sep 17 00:00:00 2001 From: Leopold Joy Date: Wed, 25 Mar 2026 03:15:09 +0000 Subject: [PATCH 2/3] chore: regenerate semver-lock with clean production build --- snapshots/semver-lock.json | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 8f261cd7..8e635ce8 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -11,10 +11,6 @@ "initCodeHash": "0xe52c51805cfd55967d037173159f18aaf4344e32e5c8ad41f8d5d0025b1d36a8", "sourceCodeHash": "0xe5f2b1915a201c0b8a107f168f5b9bc8aec8e8e95f938082e42ba5b5c8ebbd11" }, - "src/L1/FeesDepositor.sol:FeesDepositor:dispute": { - "initCodeHash": "0xe52c51805cfd55967d037173159f18aaf4344e32e5c8ad41f8d5d0025b1d36a8", - "sourceCodeHash": "0xe5f2b1915a201c0b8a107f168f5b9bc8aec8e8e95f938082e42ba5b5c8ebbd11" - }, "src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger": { "initCodeHash": "0x3dc659aafb03bd357f92abfc6794af89ee0ddd5212364551637422bf8d0b00f9", "sourceCodeHash": "0xfd67aae7ef1d684f3fccc036a80123e0ffa13de3e26c910cb7b927059c5a6289" @@ -51,10 +47,6 @@ "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", "sourceCodeHash": "0x572b5da38443fa5fc1c1873a733adee1894c6eba94f0e7867f2e81c5eb616a39" }, - "src/L1/SuperchainConfig.sol:SuperchainConfig:dispute": { - "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", - "sourceCodeHash": "0x572b5da38443fa5fc1c1873a733adee1894c6eba94f0e7867f2e81c5eb616a39" - }, "src/L1/SystemConfig.sol:SystemConfig": { "initCodeHash": "0x3e8e52d96398a6de91d8922769cc5d0bc7acb2a692689ceb70f1de816e8d6b14", "sourceCodeHash": "0x1a24ffe154eddbe0088a4b0848e662bf5eb482fe031ba528f74c51804f6e0395" @@ -240,29 +232,17 @@ "sourceCodeHash": "0x955bd0c9b47e43219865e4e92abf28d916c96de20cbdf2f94c8ab14d02083759" }, "src/multiproof/AggregateVerifier.sol:AggregateVerifier": { - "initCodeHash": "0xc3866b1d4515c9d7b0ac6679b182d836f79371402d9e649e301b24cf8ae8fade", - "sourceCodeHash": "0x2bd04b43f2434dec3b66bfcbfbaf3df2d70f18abb915c35ffda86ea3f543078d" - }, - "src/multiproof/AggregateVerifier.sol:AggregateVerifier:dispute": { - "initCodeHash": "0xe28eaeecda21594f6db23bb70127daa2b7b71debe38ce65b598f28d78d2561eb", - "sourceCodeHash": "0x2bd04b43f2434dec3b66bfcbfbaf3df2d70f18abb915c35ffda86ea3f543078d" + "initCodeHash": "0xe631e0c2e8e86711f83cb97884065ce38d1ff519e0d2dbf8704e7e4c183a56cc", + "sourceCodeHash": "0xfa0464c07c06fddc98ba20e9a362ba10ecf94496556d0f7ac88d1986f79a8a6b" }, "src/multiproof/tee/TEEProverRegistry.sol:TEEProverRegistry": { "initCodeHash": "0x4c89ecad0d48b6da64ef7f489326aae63b7fbcd33f4fed949a496afd1be49009", "sourceCodeHash": "0x71a4016022b8a15f5ceddf2d597700046fcbe9ce4dbc7d7f2174d68606b3c614" }, - "src/multiproof/tee/TEEProverRegistry.sol:TEEProverRegistry:dispute": { - "initCodeHash": "0xfd56342b83d37499a848961ec12f982cee40297a4c59c5d448ed5a78795d3751", - "sourceCodeHash": "0x71a4016022b8a15f5ceddf2d597700046fcbe9ce4dbc7d7f2174d68606b3c614" - }, "src/multiproof/tee/TEEVerifier.sol:TEEVerifier": { "initCodeHash": "0xeab3964cb2e6bbf3b660a8dedcd01286b74894bf76cf979d0b415fc7ca140ade", "sourceCodeHash": "0xd5e01b4f4e69313e56e51f2f46b7bbe699ef8dc24b8a6385b8ebac4162e05353" }, - "src/multiproof/tee/TEEVerifier.sol:TEEVerifier:dispute": { - "initCodeHash": "0xeab3964cb2e6bbf3b660a8dedcd01286b74894bf76cf979d0b415fc7ca140ade", - "sourceCodeHash": "0xd5e01b4f4e69313e56e51f2f46b7bbe699ef8dc24b8a6385b8ebac4162e05353" - }, "src/revenue-share/FeeDisburser.sol:FeeDisburser": { "initCodeHash": "0x1278027e3756e2989e80c0a7b513e221a5fe0d3dbd9ded108375a29b2c1f3d57", "sourceCodeHash": "0xac49a0ecf22b8a7bb3ebef830a2d27b19050f9b08941186e8563d5113cf0ce9c" From c021df544ba7826935af0475e2e832c21bf4ad2a Mon Sep 17 00:00:00 2001 From: Leopold Joy Date: Wed, 25 Mar 2026 13:34:55 +0000 Subject: [PATCH 3/3] chore: fix semver-lock by restoring dispute entries and updating AggregateVerifier hashes --- snapshots/semver-lock.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/snapshots/semver-lock.json b/snapshots/semver-lock.json index 8e635ce8..5c7164c0 100644 --- a/snapshots/semver-lock.json +++ b/snapshots/semver-lock.json @@ -11,6 +11,10 @@ "initCodeHash": "0xe52c51805cfd55967d037173159f18aaf4344e32e5c8ad41f8d5d0025b1d36a8", "sourceCodeHash": "0xe5f2b1915a201c0b8a107f168f5b9bc8aec8e8e95f938082e42ba5b5c8ebbd11" }, + "src/L1/FeesDepositor.sol:FeesDepositor:dispute": { + "initCodeHash": "0xe52c51805cfd55967d037173159f18aaf4344e32e5c8ad41f8d5d0025b1d36a8", + "sourceCodeHash": "0xe5f2b1915a201c0b8a107f168f5b9bc8aec8e8e95f938082e42ba5b5c8ebbd11" + }, "src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger": { "initCodeHash": "0x3dc659aafb03bd357f92abfc6794af89ee0ddd5212364551637422bf8d0b00f9", "sourceCodeHash": "0xfd67aae7ef1d684f3fccc036a80123e0ffa13de3e26c910cb7b927059c5a6289" @@ -47,6 +51,10 @@ "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", "sourceCodeHash": "0x572b5da38443fa5fc1c1873a733adee1894c6eba94f0e7867f2e81c5eb616a39" }, + "src/L1/SuperchainConfig.sol:SuperchainConfig:dispute": { + "initCodeHash": "0x9b1f3555b499709485d51d5d9665002c0eb1e5eb893be1fb978a30749e894858", + "sourceCodeHash": "0x572b5da38443fa5fc1c1873a733adee1894c6eba94f0e7867f2e81c5eb616a39" + }, "src/L1/SystemConfig.sol:SystemConfig": { "initCodeHash": "0x3e8e52d96398a6de91d8922769cc5d0bc7acb2a692689ceb70f1de816e8d6b14", "sourceCodeHash": "0x1a24ffe154eddbe0088a4b0848e662bf5eb482fe031ba528f74c51804f6e0395" @@ -235,14 +243,26 @@ "initCodeHash": "0xe631e0c2e8e86711f83cb97884065ce38d1ff519e0d2dbf8704e7e4c183a56cc", "sourceCodeHash": "0xfa0464c07c06fddc98ba20e9a362ba10ecf94496556d0f7ac88d1986f79a8a6b" }, + "src/multiproof/AggregateVerifier.sol:AggregateVerifier:dispute": { + "initCodeHash": "0x89f15344142ede7ca9d6af3c998fb3ffec84293105b28daa8427aa0608dd1d9e", + "sourceCodeHash": "0xfa0464c07c06fddc98ba20e9a362ba10ecf94496556d0f7ac88d1986f79a8a6b" + }, "src/multiproof/tee/TEEProverRegistry.sol:TEEProverRegistry": { "initCodeHash": "0x4c89ecad0d48b6da64ef7f489326aae63b7fbcd33f4fed949a496afd1be49009", "sourceCodeHash": "0x71a4016022b8a15f5ceddf2d597700046fcbe9ce4dbc7d7f2174d68606b3c614" }, + "src/multiproof/tee/TEEProverRegistry.sol:TEEProverRegistry:dispute": { + "initCodeHash": "0xfd56342b83d37499a848961ec12f982cee40297a4c59c5d448ed5a78795d3751", + "sourceCodeHash": "0x71a4016022b8a15f5ceddf2d597700046fcbe9ce4dbc7d7f2174d68606b3c614" + }, "src/multiproof/tee/TEEVerifier.sol:TEEVerifier": { "initCodeHash": "0xeab3964cb2e6bbf3b660a8dedcd01286b74894bf76cf979d0b415fc7ca140ade", "sourceCodeHash": "0xd5e01b4f4e69313e56e51f2f46b7bbe699ef8dc24b8a6385b8ebac4162e05353" }, + "src/multiproof/tee/TEEVerifier.sol:TEEVerifier:dispute": { + "initCodeHash": "0xeab3964cb2e6bbf3b660a8dedcd01286b74894bf76cf979d0b415fc7ca140ade", + "sourceCodeHash": "0xd5e01b4f4e69313e56e51f2f46b7bbe699ef8dc24b8a6385b8ebac4162e05353" + }, "src/revenue-share/FeeDisburser.sol:FeeDisburser": { "initCodeHash": "0x1278027e3756e2989e80c0a7b513e221a5fe0d3dbd9ded108375a29b2c1f3d57", "sourceCodeHash": "0xac49a0ecf22b8a7bb3ebef830a2d27b19050f9b08941186e8563d5113cf0ce9c"