diff --git a/packages/protocol/contracts/L1/TaikoData.sol b/packages/protocol/contracts/L1/TaikoData.sol index e66625c9894..d838b51025e 100644 --- a/packages/protocol/contracts/L1/TaikoData.sol +++ b/packages/protocol/contracts/L1/TaikoData.sol @@ -121,6 +121,7 @@ library TaikoData { bytes32 blockHash; bytes32 stateRoot; bytes32 graffiti; + bytes32[2] __reserved; } /// @dev Struct representing state transition data. diff --git a/packages/protocol/contracts/signal/SignalService.sol b/packages/protocol/contracts/signal/SignalService.sol index 11e8df6c974..3e4253b5146 100644 --- a/packages/protocol/contracts/signal/SignalService.sol +++ b/packages/protocol/contracts/signal/SignalService.sol @@ -124,8 +124,7 @@ contract SignalService is EssentialContract, ISignalService { // If a signal is sent from chainA -> chainB -> chainC (this chain), we verify the proofs in // the following order: // 1. using chainC's latest parent's stateRoot to verify that chainB's TaikoL1/TaikoL2 - // contract has - // sent a given hop stateRoot on chainB using its own signal service. + // contract has sent a given hop stateRoot on chainB using its own signal service. // 2. using the verified hop stateRoot to verify that the source app on chainA has sent a // signal using its own signal service. // We always verify the proofs in the reversed order (top to bottom). diff --git a/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol b/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol index a1d35e73d61..bd4e3042cd1 100644 --- a/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol +++ b/packages/protocol/test/L1/TaikoL1LibProvingWithTiers.t.sol @@ -790,7 +790,8 @@ contract TaikoL1LibProvingWithTiers is TaikoL1TestBase { parentHash: parentHash, blockHash: blockHash, stateRoot: stateRoot, - graffiti: 0x0 + graffiti: 0x0, + __reserved: [bytes32(0), bytes32(0)] }); TaikoData.TierProof memory proof; diff --git a/packages/protocol/test/L1/TaikoL1TestBase.sol b/packages/protocol/test/L1/TaikoL1TestBase.sol index 14e2c395627..d6c7040056d 100644 --- a/packages/protocol/test/L1/TaikoL1TestBase.sol +++ b/packages/protocol/test/L1/TaikoL1TestBase.sol @@ -242,7 +242,8 @@ abstract contract TaikoL1TestBase is TaikoTest { parentHash: parentHash, blockHash: blockHash, stateRoot: stateRoot, - graffiti: 0x0 + graffiti: 0x0, + __reserved: [bytes32(0), bytes32(0)] }); bytes32 instance = diff --git a/packages/protocol/test/verifiers/GuardianVerifier.t.sol b/packages/protocol/test/verifiers/GuardianVerifier.t.sol index 043534e38b3..f47fbea7162 100644 --- a/packages/protocol/test/verifiers/GuardianVerifier.t.sol +++ b/packages/protocol/test/verifiers/GuardianVerifier.t.sol @@ -32,7 +32,8 @@ contract TestGuardianVerifier is TaikoL1TestBase { parentHash: bytes32(0), blockHash: bytes32(0), stateRoot: bytes32(0), - graffiti: bytes32(0) + graffiti: bytes32(0), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -59,7 +60,8 @@ contract TestGuardianVerifier is TaikoL1TestBase { parentHash: bytes32(0), blockHash: bytes32(0), stateRoot: bytes32(0), - graffiti: bytes32(0) + graffiti: bytes32(0), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof diff --git a/packages/protocol/test/verifiers/PseZkVerifier.t.sol b/packages/protocol/test/verifiers/PseZkVerifier.t.sol index 9225394fd80..03834b1ac47 100644 --- a/packages/protocol/test/verifiers/PseZkVerifier.t.sol +++ b/packages/protocol/test/verifiers/PseZkVerifier.t.sol @@ -50,7 +50,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32(0), blockHash: bytes32(0), stateRoot: bytes32(0), - graffiti: bytes32(0) + graffiti: bytes32(0), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -77,7 +78,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32(0), blockHash: bytes32(0), stateRoot: bytes32(0), - graffiti: bytes32(0) + graffiti: bytes32(0), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -128,7 +130,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -165,7 +168,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -194,7 +198,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -232,7 +237,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -269,7 +275,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -303,7 +310,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -344,7 +352,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -385,7 +394,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -423,7 +433,8 @@ contract TestPseZkVerifier is TaikoL1TestBase { parentHash: bytes32("12"), blockHash: bytes32("23"), stateRoot: bytes32("34"), - graffiti: bytes32("1234") + graffiti: bytes32("1234"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof diff --git a/packages/protocol/test/verifiers/SgxVerifier.t.sol b/packages/protocol/test/verifiers/SgxVerifier.t.sol index 6d125bbcd06..5187eb33254 100644 --- a/packages/protocol/test/verifiers/SgxVerifier.t.sol +++ b/packages/protocol/test/verifiers/SgxVerifier.t.sol @@ -195,7 +195,8 @@ contract TestSgxVerifier is TaikoL1TestBase, AttestationBase { parentHash: bytes32("12"), blockHash: bytes32("34"), stateRoot: bytes32("56"), - graffiti: bytes32("78") + graffiti: bytes32("78"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -243,7 +244,8 @@ contract TestSgxVerifier is TaikoL1TestBase, AttestationBase { parentHash: bytes32("12"), blockHash: bytes32("34"), stateRoot: bytes32("56"), - graffiti: bytes32("78") + graffiti: bytes32("78"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -274,7 +276,8 @@ contract TestSgxVerifier is TaikoL1TestBase, AttestationBase { parentHash: bytes32("12"), blockHash: bytes32("34"), stateRoot: bytes32("56"), - graffiti: bytes32("78") + graffiti: bytes32("78"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -307,7 +310,8 @@ contract TestSgxVerifier is TaikoL1TestBase, AttestationBase { parentHash: bytes32("12"), blockHash: bytes32("34"), stateRoot: bytes32("56"), - graffiti: bytes32("78") + graffiti: bytes32("78"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -345,7 +349,8 @@ contract TestSgxVerifier is TaikoL1TestBase, AttestationBase { parentHash: bytes32("12"), blockHash: bytes32("34"), stateRoot: bytes32("56"), - graffiti: bytes32("78") + graffiti: bytes32("78"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof @@ -384,7 +389,8 @@ contract TestSgxVerifier is TaikoL1TestBase, AttestationBase { parentHash: bytes32("12"), blockHash: bytes32("34"), stateRoot: bytes32("56"), - graffiti: bytes32("78") + graffiti: bytes32("78"), + __reserved: [bytes32(0), bytes32(0)] }); // TierProof