Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
21d91de
test: update succinct tests to follow our conventions
stevennevins Nov 26, 2025
ed79700
fix: test naming and remove unused imports
stevennevins Dec 1, 2025
69ed95d
chore: add AccessManager snapshots
stevennevins Dec 1, 2025
4bfabfc
fix: specify GameOver revert in expectRevert
stevennevins Dec 1, 2025
552b212
fix: snapshot for access manager
stevennevins Dec 1, 2025
d7b0ba2
fix: create interface for contract
stevennevins Dec 1, 2025
9a1e804
fix: snapshot semver bump
stevennevins Dec 1, 2025
65df03a
fix: bump semver
stevennevins Dec 2, 2025
5fa0566
chore: bump semver
stevennevins Dec 2, 2025
39400d7
fix: semver lock mismatch
stevennevins Dec 2, 2025
121bd00
fix: enforce strict pragma for deterministic init code hashes
stevennevins Dec 3, 2025
1d6ccc9
chore: fix pragma
stevennevins Dec 3, 2025
022a53e
fix: lock pragma versions
stevennevins Dec 3, 2025
3f9b2eb
fix: semver lock passing
stevennevins Dec 3, 2025
4500cc1
chore: cleanup whitespace
stevennevins Dec 3, 2025
2e9c44c
chore: bump semver
stevennevins Dec 4, 2025
a23d5f6
chore: reduce diff
stevennevins Dec 4, 2025
88c3570
fix: strict pragma
stevennevins Dec 4, 2025
3d82c14
feat: fix for ci and compiler profile
stevennevins Dec 5, 2025
1944f51
chore: forge fmt
stevennevins Dec 5, 2025
3e78b66
fix: regenerate semver-lock with clean build
stevennevins Dec 5, 2025
3ff77e9
fix: semgrep for proxy
stevennevins Dec 5, 2025
a72768d
fix: workaround for potential cache issue
stevennevins Dec 5, 2025
34e0af1
chore: clean build semver bump
stevennevins Dec 8, 2025
58605b3
fix: remove troubleshooting
stevennevins Dec 8, 2025
189056a
chore: bump semver
stevennevins Dec 8, 2025
8e6078a
fix: compiler setting issues
stevennevins Dec 8, 2025
a331141
chore: remove helper for vm.getCode
stevennevins Dec 9, 2025
1a94292
refactor: reuse DisputeGameFactory_TestInit in OPSuccinct tests
stevennevins Dec 10, 2025
442ebc0
refactor: rename OPSuccinctFaultDisputeGame to OptimisticZkGame
stevennevins Dec 10, 2025
197af1f
chore: remove unused import
stevennevins Dec 11, 2025
785bf2a
chore: bump snapshots
stevennevins Dec 11, 2025
51ecc7d
fix: update abi_loader.go embed path after rename
stevennevins Dec 12, 2025
09479a5
fix: update snapshots
stevennevins Dec 15, 2025
0af0880
fix: circle ci cache fix
stevennevins Dec 15, 2025
745a252
fix: ci cache
stevennevins Dec 15, 2025
ebd3c98
chore: add back placeholder for opsuccinet
stevennevins Dec 16, 2025
f09ce6f
chore: remove cache-lite
stevennevins Dec 16, 2025
cb25b47
fix: make OptimisticZkGame tests compatible with fork mode
stevennevins Dec 16, 2025
ed545a9
fix: skip OptimisticZkGame tests on fork
stevennevins Dec 17, 2025
fd3704f
fix: use same pattern as fault dispute game
stevennevins Dec 17, 2025
32dc745
chore: check CI skpping for tests for op zk
stevennevins Dec 17, 2025
2285c42
fix: remove OPSuccinctFaultDisputeGame from compiler restrictions
stevennevins Dec 18, 2025
ee716de
fix: move OptimisticZk type into GameTypes and update usage
stevennevins Dec 18, 2025
50c3ce5
fix: bump semver
stevennevins Dec 18, 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
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1373,7 +1373,7 @@ jobs:
command: forge --version
- run:
name: Pull cached artifacts
command: bash scripts/ops/pull-artifacts.sh --fallback-to-latest
command: bash scripts/ops/pull-artifacts.sh
working_directory: packages/contracts-bedrock
- run:
name: Run checks
Expand Down
2 changes: 0 additions & 2 deletions packages/contracts-bedrock/foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ compilation_restrictions = [
{ paths = "src/dispute/v2/FaultDisputeGameV2.sol", optimizer_runs = 5000 },
{ paths = "src/dispute/PermissionedDisputeGame.sol", optimizer_runs = 5000 },
{ paths = "src/dispute/v2/PermissionedDisputeGameV2.sol", optimizer_runs = 5000 },
{ paths = "src/dispute/zk/OPSuccinctFaultDisputeGame.sol", optimizer_runs = 5000 },
{ paths = "src/dispute/SuperFaultDisputeGame.sol", optimizer_runs = 5000 },
{ paths = "src/dispute/SuperPermissionedDisputeGame.sol", optimizer_runs = 5000 },
{ paths = "src/L1/OPContractsManager.sol", optimizer_runs = 5000 },
Expand Down Expand Up @@ -157,7 +156,6 @@ compilation_restrictions = [
{ paths = "src/dispute/v2/FaultDisputeGameV2.sol", optimizer_runs = 0 },
{ paths = "src/dispute/PermissionedDisputeGame.sol", optimizer_runs = 0 },
{ paths = "src/dispute/v2/PermissionedDisputeGameV2.sol", optimizer_runs = 0 },
{ paths = "src/dispute/zk/OPSuccinctFaultDisputeGame.sol", optimizer_runs = 0 },
{ paths = "src/dispute/SuperFaultDisputeGame.sol", optimizer_runs = 0 },
{ paths = "src/dispute/SuperPermissionedDisputeGame.sol", optimizer_runs = 0 },
{ paths = "src/L1/OPContractsManager.sol", optimizer_runs = 0 },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ import { ISP1Verifier } from "src/dispute/zk/ISP1Verifier.sol";
import { IAnchorStateRegistry } from "interfaces/dispute/IAnchorStateRegistry.sol";
import { AccessManager } from "src/dispute/zk/AccessManager.sol";

/// @title IOPSuccinctFaultDisputeGame
/// @notice Interface for the OPSuccinctFaultDisputeGame contract.
interface IOPSuccinctFaultDisputeGame is IDisputeGame, ISemver {
/// @title IOptimisticZkGame
/// @notice Interface for the OptimisticZkGame contract.
interface IOptimisticZkGame is IDisputeGame, ISemver {
enum ProposalStatus {
Unchallenged,
Challenged,
Expand Down
285 changes: 285 additions & 0 deletions packages/contracts-bedrock/snapshots/abi/AccessManager.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,285 @@
[
{
"inputs": [
{
"internalType": "uint256",
"name": "_fallbackTimeout",
"type": "uint256"
},
{
"internalType": "contract IDisputeGameFactory",
"name": "_disputeGameFactory",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "DEPLOYMENT_TIMESTAMP",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DISPUTE_GAME_FACTORY",
"outputs": [
{
"internalType": "contract IDisputeGameFactory",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "FALLBACK_TIMEOUT",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "challengers",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLastProposalTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_challenger",
"type": "address"
}
],
"name": "isAllowedChallenger",
"outputs": [
{
"internalType": "bool",
"name": "allowed_",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_proposer",
"type": "address"
}
],
"name": "isAllowedProposer",
"outputs": [
{
"internalType": "bool",
"name": "allowed_",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isProposalPermissionlessMode",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "proposers",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_challenger",
"type": "address"
},
{
"internalType": "bool",
"name": "_allowed",
"type": "bool"
}
],
"name": "setChallenger",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_proposer",
"type": "address"
},
{
"internalType": "bool",
"name": "_allowed",
"type": "bool"
}
],
"name": "setProposer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "challenger",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "ChallengerPermissionUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "proposer",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "ProposerPermissionUpdated",
"type": "event"
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
"name": "challenge",
"outputs": [
{
"internalType": "enum OPSuccinctFaultDisputeGame.ProposalStatus",
"internalType": "enum OptimisticZkGame.ProposalStatus",
"name": "",
"type": "uint8"
}
Expand Down Expand Up @@ -171,7 +171,7 @@
"type": "bytes32"
},
{
"internalType": "enum OPSuccinctFaultDisputeGame.ProposalStatus",
"internalType": "enum OptimisticZkGame.ProposalStatus",
"name": "status",
"type": "uint8"
},
Expand Down Expand Up @@ -413,7 +413,7 @@
"name": "prove",
"outputs": [
{
"internalType": "enum OPSuccinctFaultDisputeGame.ProposalStatus",
"internalType": "enum OptimisticZkGame.ProposalStatus",
"name": "",
"type": "uint8"
}
Expand Down
2 changes: 1 addition & 1 deletion packages/contracts-bedrock/snapshots/abi_loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ var superFaultDisputeGame []byte
//go:embed abi/FaultDisputeGame.json
var faultDisputeGame []byte

//go:embed abi/OPSuccinctFaultDisputeGame.json
//go:embed abi/OptimisticZkGame.json
var zkDisputeGame []byte

//go:embed abi/PreimageOracle.json
Expand Down
6 changes: 3 additions & 3 deletions packages/contracts-bedrock/snapshots/semver-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -219,9 +219,9 @@
"initCodeHash": "0x9896fd04e9a3f9fe4f1d6e93eb298b37a6bfa33424aa705e68cc58d0ba7f3f90",
"sourceCodeHash": "0xc0ff6e93b6e2b9111c11e81b5df8948ab71d02b9d2c4dfda982fcb615519f1f7"
},
"src/dispute/zk/OPSuccinctFaultDisputeGame.sol:OPSuccinctFaultDisputeGame": {
"initCodeHash": "0xb9d0d9ca4df242f188b2d5be7d692459a12409a67a6504ef44ef589c6ca2c1a9",
"sourceCodeHash": "0x85f80adb845f59e9137d462e219c0cdba27058be77d855075e286aa316735aa0"
"src/dispute/zk/OptimisticZkGame.sol:OptimisticZkGame": {
"initCodeHash": "0x0e905fc81f45b1e9aa786e66bfe70b3ec4abd8d550be5d4c8f43cdad6f2618b2",
"sourceCodeHash": "0x162408c90e8d9d8afd982e9825db093eba5c387cbe1145c1a9b86e2361547138"
},
"src/legacy/DeployerWhitelist.sol:DeployerWhitelist": {
"initCodeHash": "0x2e0ef4c341367eb59cc6c25190c64eff441d3fe130189da91d4d126f6bdbc9b5",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
[
{
"bytes": "20",
"label": "_owner",
"offset": 0,
"slot": "0",
"type": "address"
},
{
"bytes": "32",
"label": "proposers",
"offset": 0,
"slot": "1",
"type": "mapping(address => bool)"
},
{
"bytes": "32",
"label": "challengers",
"offset": 0,
"slot": "2",
"type": "mapping(address => bool)"
}
]
Loading