Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
dffacc8
Add proposer field to StandarValidator.ValidationInput
mbaxter Oct 16, 2025
616bf85
Update deploy to save PDG address depending on v2 feature flag
mbaxter Oct 10, 2025
1912beb
Start working on tests
mbaxter Oct 16, 2025
e6ec05e
Fix test that mocks a prestate value
mbaxter Oct 15, 2025
3c67a14
Move helpers into shared library
mbaxter Oct 15, 2025
b302b92
Cut unnecessary bytes utils
mbaxter Oct 16, 2025
d14f08c
Update StandardValidator to check proposer
mbaxter Oct 16, 2025
e192416
Start updating tests to mock gameArgs
mbaxter Oct 16, 2025
f9aa6d8
Add game arg mocking helpers to DisputeGames.sol
mbaxter Oct 16, 2025
866c822
Add mock helpers for remaining game args
mbaxter Oct 17, 2025
4ad6a79
Delete unused library
mbaxter Oct 17, 2025
d9999c4
Fix new asr and weth mock helpers
mbaxter Oct 17, 2025
01849d8
Reorganize gameArg offsets
mbaxter Oct 17, 2025
4b89999
Add tests for invalid weth, asr addresses
mbaxter Oct 17, 2025
e6eb184
Add tests for invalid game args
mbaxter Oct 17, 2025
19398c1
Update expected dispute game version
mbaxter Oct 20, 2025
da7dd3b
Fix stack-too-deep error
mbaxter Oct 20, 2025
37b20be
Inject correct gametype for v2 games
mbaxter Oct 20, 2025
9392759
Fix handling of errors
mbaxter Oct 20, 2025
7991006
Pull game implementation handling into a helper method
mbaxter Oct 20, 2025
6a69680
Skip gameType tests for v2 contracts
mbaxter Oct 20, 2025
7f4cd5d
Cut unused event
mbaxter Oct 20, 2025
bedb072
Fix proposer value in upgrade tests
mbaxter Oct 21, 2025
dc8d127
Remove unused import
mbaxter Oct 21, 2025
82ab604
Bump contract versions
mbaxter Oct 21, 2025
1cb89f2
Run pre-pr
mbaxter Oct 21, 2025
00ecdc1
Sticter testing: pull challenger, proposer values before upgrading
mbaxter Oct 22, 2025
d6a6088
Revert change to comment
mbaxter Oct 22, 2025
fc888cf
Make var naming more consistent
mbaxter Oct 22, 2025
b72325d
Update semver-lock
ajsutton Oct 23, 2025
f3bbafb
Avoid name conflict.
ajsutton Oct 23, 2025
bac987f
Major version bump since ValidationInput changed.
ajsutton Oct 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ interface IOPContractsManagerStandardValidator {
ISystemConfig sysCfg;
bytes32 absolutePrestate;
uint256 l2ChainID;
address proposer;
}

struct ValidationOverrides {
Expand Down
8 changes: 7 additions & 1 deletion packages/contracts-bedrock/scripts/deploy/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { StandardConstants } from "scripts/deploy/StandardConstants.sol";
// Libraries
import { Types } from "scripts/libraries/Types.sol";
import { Duration } from "src/dispute/lib/LibUDT.sol";
import { DevFeatures } from "src/libraries/DevFeatures.sol";
import { GameType, Claim, GameTypes, Proposal, Hash } from "src/dispute/lib/Types.sol";

// Interfaces
Expand Down Expand Up @@ -292,6 +293,9 @@ contract Deploy is Deployer {
artifacts.save("OPContractsManager", address(dio.opcm));
artifacts.save("DelayedWETHImpl", address(dio.delayedWETHImpl));
artifacts.save("PreimageOracle", address(dio.preimageOracleSingleton));
if (DevFeatures.isDevFeatureEnabled(dio.opcm.devFeatureBitmap(), DevFeatures.DEPLOY_V2_DISPUTE_GAMES)) {
artifacts.save("PermissionedDisputeGame", address(dio.permissionedDisputeGameV2Impl));
}

// Get a contract set from the implementation addresses which were just deployed.
Types.ContractSet memory impls = ChainAssertions.dioToContractSet(dio);
Expand Down Expand Up @@ -357,9 +361,11 @@ contract Deploy is Deployer {
artifacts.save("DisputeGameFactoryProxy", address(deployOutput.disputeGameFactoryProxy));
artifacts.save("PermissionedDelayedWETHProxy", address(deployOutput.delayedWETHPermissionedGameProxy));
artifacts.save("AnchorStateRegistryProxy", address(deployOutput.anchorStateRegistryProxy));
artifacts.save("PermissionedDisputeGame", address(deployOutput.permissionedDisputeGame));
artifacts.save("OptimismPortalProxy", address(deployOutput.optimismPortalProxy));
artifacts.save("OptimismPortal2Proxy", address(deployOutput.optimismPortalProxy));
if (!DevFeatures.isDevFeatureEnabled(opcm.devFeatureBitmap(), DevFeatures.DEPLOY_V2_DISPUTE_GAMES)) {
artifacts.save("PermissionedDisputeGame", address(deployOutput.permissionedDisputeGame));
}

// Check if the permissionless game implementation is already set
IDisputeGameFactory factory = IDisputeGameFactory(artifacts.mustGetAddress("DisputeGameFactoryProxy"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -847,6 +847,11 @@
"internalType": "uint256",
"name": "l2ChainID",
"type": "uint256"
},
{
"internalType": "address",
"name": "proposer",
"type": "address"
}
],
"internalType": "struct OPContractsManagerStandardValidator.ValidationInput",
Expand Down Expand Up @@ -893,6 +898,11 @@
"internalType": "uint256",
"name": "l2ChainID",
"type": "uint256"
},
{
"internalType": "address",
"name": "proposer",
"type": "address"
}
],
"internalType": "struct OPContractsManagerStandardValidator.ValidationInput",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,11 @@
"internalType": "uint256",
"name": "l2ChainID",
"type": "uint256"
},
{
"internalType": "address",
"name": "proposer",
"type": "address"
}
],
"internalType": "struct OPContractsManagerStandardValidator.ValidationInput",
Expand Down Expand Up @@ -400,6 +405,11 @@
"internalType": "uint256",
"name": "l2ChainID",
"type": "uint256"
},
{
"internalType": "address",
"name": "proposer",
"type": "address"
}
],
"internalType": "struct OPContractsManagerStandardValidator.ValidationInput",
Expand Down
8 changes: 4 additions & 4 deletions packages/contracts-bedrock/snapshots/semver-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
"sourceCodeHash": "0xfca613b5d055ffc4c3cbccb0773ddb9030abedc1aa6508c9e2e7727cc0cd617b"
},
"src/L1/OPContractsManager.sol:OPContractsManager": {
"initCodeHash": "0x1a1de93a1e15a32fd621b572211bd1ceccf82d5d2b936e0aa337ea7593c1ce19",
"sourceCodeHash": "0xbe7ceb48b39fc1d6c311b9d6dd9095ee72fa5cf82f72d27ec4511c97c01b02aa"
"initCodeHash": "0x0fec1db69fa99c31c4b13140bceee87419b8d3342cc952063a7a268242f3a199",
"sourceCodeHash": "0x2b0abd0e179a5449be392b301677554fa1d4f93af1083baa23f43ccf3cac9d02"
},
"src/L1/OPContractsManagerStandardValidator.sol:OPContractsManagerStandardValidator": {
"initCodeHash": "0x2eaa345ba05582c67b40a1eb7ec9d54823aa08468e697e2d6c04bb74cc574abc",
"sourceCodeHash": "0x30d7e4243a3bab7fea8504be2cd24f2c5ab3335b802d62282a374a458a08feec"
"initCodeHash": "0xe0e6d892d38211dc0165ca00dc1e8aa558eb7a1240560260e23262f066f6be72",
"sourceCodeHash": "0xe40f42a857c9b0905db4c91d61073d9dd572a6bc49921c5ee6e875cf54dc9407"
},
"src/L1/OptimismPortal2.sol:OptimismPortal2": {
"initCodeHash": "0x5bf576ea7f566e402a997204988471fc9b971410aa9dff8fe810b10baf6b7456",
Expand Down
4 changes: 2 additions & 2 deletions packages/contracts-bedrock/src/L1/OPContractsManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2153,9 +2153,9 @@ contract OPContractsManager is ISemver {

// -------- Constants and Variables --------

/// @custom:semver 4.6.0
/// @custom:semver 5.0.0
function version() public pure virtual returns (string memory) {
return "4.6.0";
return "5.0.0";
}

OPContractsManagerGameTypeAdder public immutable opcmGameTypeAdder;
Expand Down
Loading