Skip to content

Commit 38bd133

Browse files
committed
opcm: Assert all common immutable fields of dispute games.
1 parent 0881797 commit 38bd133

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

packages/contracts-bedrock/test/L1/OPContractsManager.t.sol

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -744,30 +744,41 @@ contract OPContractsManager_AddGameType_Test is OPContractsManager_TestInit, Dis
744744
returns (IFaultDisputeGame)
745745
{
746746
// Create a game so we can assert on game args which aren't baked into the implementation contract
747+
Claim claim = Claim.wrap(bytes32(uint256(9876)));
748+
uint256 l2SequenceNumber = uint256(123);
747749
IFaultDisputeGame game = IFaultDisputeGame(
748750
payable(
749751
createGame(
750752
chainDeployOutput1.disputeGameFactoryProxy,
751753
agi.disputeGameType,
752754
proposer,
753-
Claim.wrap(bytes32(uint256(9876))),
754-
uint256(123)
755+
claim,
756+
l2SequenceNumber
755757
)
756758
)
757759
);
758-
assertEq(game.gameType().raw(), agi.disputeGameType.raw(), "gameType mismatch");
759-
assertEq(game.absolutePrestate().raw(), agi.disputeAbsolutePrestate.raw(), "absolutePrestate mismatch");
760-
assertEq(game.maxGameDepth(), agi.disputeMaxGameDepth, "maxGameDepth mismatch");
761-
assertEq(game.splitDepth(), agi.disputeSplitDepth, "splitDepth mismatch");
762-
assertEq(game.clockExtension().raw(), agi.disputeClockExtension.raw(), "clockExtension mismatch");
763-
assertEq(game.maxClockDuration().raw(), agi.disputeMaxClockDuration.raw(), "maxClockDuration mismatch");
764-
assertEq(address(game.vm()), address(agi.vm), "vm address mismatch");
765-
assertEq(address(game.weth()), address(ago.delayedWETH), "delayedWETH address mismatch");
760+
761+
762+
// Verify immutable fields on the game proxy
763+
assertEq(game.gameType().raw(), agi.disputeGameType.raw(), "Game type should match");
764+
assertEq(game.clockExtension().raw(), agi.disputeClockExtension.raw(), "Clock extension should match");
765+
assertEq(
766+
game.maxClockDuration().raw(), agi.disputeMaxClockDuration.raw(), "Max clock duration should match"
767+
);
768+
assertEq(game.splitDepth(), agi.disputeSplitDepth, "Split depth should match");
769+
assertEq(game.maxGameDepth(), agi.disputeMaxGameDepth, "Max game depth should match");
770+
assertEq(game.gameCreator(), proposer, "Game creator should match");
771+
assertEq(game.rootClaim().raw(), claim.raw(), "Claim should match");
772+
assertEq(game.l1Head().raw(), blockhash(block.number - 1), "L1 head should match");
773+
assertEq(game.l2SequenceNumber(), l2SequenceNumber, "L2 sequence number should match");
766774
assertEq(
767-
address(game.anchorStateRegistry()),
768-
address(chainDeployOutput1.anchorStateRegistryProxy),
769-
"ASR address mismatch"
775+
game.absolutePrestate().raw(),
776+
agi.disputeAbsolutePrestate.raw(),
777+
"Absolute prestate should match input"
770778
);
779+
assertEq(address(game.vm()), address(agi.vm), "VM should match MIPS implementation");
780+
assertEq(address(game.anchorStateRegistry()), address(chainDeployOutput1.anchorStateRegistryProxy), "ASR should match");
781+
assertEq(address(game.weth()), address(ago.delayedWETH), "WETH should match");
771782

772783
// Check the DGF
773784
assertEq(

0 commit comments

Comments
 (0)