Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
7b68fe4d
Commit
7b68fe4d
authored
Sep 06, 2023
by
clabby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow for a game to be created with a root claim committing to a paniced VM state
Fix test
parent
508fbf35
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
79 additions
and
77 deletions
+79
-77
faultdisputegame.go
op-bindings/bindings/faultdisputegame.go
+1
-1
faultdisputegame_more.go
op-bindings/bindings/faultdisputegame_more.go
+1
-1
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+72
-72
semver-lock.json
packages/contracts-bedrock/semver-lock.json
+1
-1
FaultDisputeGame.sol
packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol
+2
-1
FaultDisputeGame.t.sol
packages/contracts-bedrock/test/FaultDisputeGame.t.sol
+2
-1
No files found.
op-bindings/bindings/faultdisputegame.go
View file @
7b68fe4d
This diff is collapsed.
Click to expand it.
op-bindings/bindings/faultdisputegame_more.go
View file @
7b68fe4d
This diff is collapsed.
Click to expand it.
packages/contracts-bedrock/.gas-snapshot
View file @
7b68fe4d
...
@@ -104,8 +104,8 @@ FaultDisputeGame_Test:test_extraData_succeeds() (gas: 32377)
...
@@ -104,8 +104,8 @@ FaultDisputeGame_Test:test_extraData_succeeds() (gas: 32377)
FaultDisputeGame_Test:test_gameData_succeeds() (gas: 32804)
FaultDisputeGame_Test:test_gameData_succeeds() (gas: 32804)
FaultDisputeGame_Test:test_gameType_succeeds() (gas: 8309)
FaultDisputeGame_Test:test_gameType_succeeds() (gas: 8309)
FaultDisputeGame_Test:test_initialize_correctData_succeeds() (gas: 57628)
FaultDisputeGame_Test:test_initialize_correctData_succeeds() (gas: 57628)
FaultDisputeGame_Test:test_initialize_firstOutput_reverts() (gas: 2106
0
9)
FaultDisputeGame_Test:test_initialize_firstOutput_reverts() (gas: 2106
2
9)
FaultDisputeGame_Test:test_initialize_l1HeadTooOld_reverts() (gas: 2283
7
0)
FaultDisputeGame_Test:test_initialize_l1HeadTooOld_reverts() (gas: 2283
9
0)
FaultDisputeGame_Test:test_move_clockCorrectness_succeeds() (gas: 415971)
FaultDisputeGame_Test:test_move_clockCorrectness_succeeds() (gas: 415971)
FaultDisputeGame_Test:test_move_clockTimeExceeded_reverts() (gas: 23197)
FaultDisputeGame_Test:test_move_clockTimeExceeded_reverts() (gas: 23197)
FaultDisputeGame_Test:test_move_defendRoot_reverts() (gas: 13344)
FaultDisputeGame_Test:test_move_defendRoot_reverts() (gas: 13344)
...
@@ -298,81 +298,81 @@ LegacyERC20ETH_Test:test_transferFrom_doesNotExist_reverts() (gas: 12957)
...
@@ -298,81 +298,81 @@ LegacyERC20ETH_Test:test_transferFrom_doesNotExist_reverts() (gas: 12957)
LegacyERC20ETH_Test:test_transfer_doesNotExist_reverts() (gas: 10755)
LegacyERC20ETH_Test:test_transfer_doesNotExist_reverts() (gas: 10755)
LegacyMessagePasser_Test:test_passMessageToL1_succeeds() (gas: 34524)
LegacyMessagePasser_Test:test_passMessageToL1_succeeds() (gas: 34524)
LibPosition_Test:test_pos_correctness_succeeds() (gas: 38689)
LibPosition_Test:test_pos_correctness_succeeds() (gas: 38689)
MIPS_Test:test_add_succeeds() (gas: 12242
4
)
MIPS_Test:test_add_succeeds() (gas: 12242
0
)
MIPS_Test:test_addiSign_succeeds() (gas: 12241
5
)
MIPS_Test:test_addiSign_succeeds() (gas: 12241
1
)
MIPS_Test:test_addi_succeeds() (gas: 1226
12
)
MIPS_Test:test_addi_succeeds() (gas: 1226
08
)
MIPS_Test:test_addu_succeeds() (gas: 12246
6
)
MIPS_Test:test_addu_succeeds() (gas: 12246
2
)
MIPS_Test:test_addui_succeeds() (gas: 12267
4
)
MIPS_Test:test_addui_succeeds() (gas: 12267
0
)
MIPS_Test:test_and_succeeds() (gas: 12248
5
)
MIPS_Test:test_and_succeeds() (gas: 12248
1
)
MIPS_Test:test_andi_succeeds() (gas: 12241
8
)
MIPS_Test:test_andi_succeeds() (gas: 12241
4
)
MIPS_Test:test_beq_succeeds() (gas: 20280
9
)
MIPS_Test:test_beq_succeeds() (gas: 20280
1
)
MIPS_Test:test_bgez_succeeds() (gas: 1217
11
)
MIPS_Test:test_bgez_succeeds() (gas: 1217
07
)
MIPS_Test:test_bgtz_succeeds() (gas: 1216
32
)
MIPS_Test:test_bgtz_succeeds() (gas: 1216
28
)
MIPS_Test:test_blez_succeeds() (gas: 12158
8
)
MIPS_Test:test_blez_succeeds() (gas: 12158
4
)
MIPS_Test:test_bltz_succeeds() (gas: 1217
31
)
MIPS_Test:test_bltz_succeeds() (gas: 1217
27
)
MIPS_Test:test_bne_succeeds() (gas: 12179
7
)
MIPS_Test:test_bne_succeeds() (gas: 12179
3
)
MIPS_Test:test_branch_inDelaySlot_fails() (gas: 85999)
MIPS_Test:test_branch_inDelaySlot_fails() (gas: 85999)
MIPS_Test:test_brk_succeeds() (gas: 12209
6
)
MIPS_Test:test_brk_succeeds() (gas: 12209
2
)
MIPS_Test:test_clo_succeeds() (gas: 1221
53
)
MIPS_Test:test_clo_succeeds() (gas: 1221
49
)
MIPS_Test:test_clone_succeeds() (gas: 12204
9
)
MIPS_Test:test_clone_succeeds() (gas: 12204
5
)
MIPS_Test:test_clz_succeeds() (gas: 12262
4
)
MIPS_Test:test_clz_succeeds() (gas: 12262
0
)
MIPS_Test:test_div_succeeds() (gas: 122
603
)
MIPS_Test:test_div_succeeds() (gas: 122
599
)
MIPS_Test:test_divu_succeeds() (gas: 12258
8
)
MIPS_Test:test_divu_succeeds() (gas: 12258
4
)
MIPS_Test:test_exit_succeeds() (gas: 12209
6
)
MIPS_Test:test_exit_succeeds() (gas: 12209
4
)
MIPS_Test:test_fcntl_succeeds() (gas: 2042
81
)
MIPS_Test:test_fcntl_succeeds() (gas: 2042
73
)
MIPS_Test:test_illegal_instruction_fails() (gas: 91462)
MIPS_Test:test_illegal_instruction_fails() (gas: 91462)
MIPS_Test:test_invalid_root_fails() (gas: 435636)
MIPS_Test:test_invalid_root_fails() (gas: 435636)
MIPS_Test:test_jal_nonzeroRegion_succeeds() (gas: 1207
41
)
MIPS_Test:test_jal_nonzeroRegion_succeeds() (gas: 1207
37
)
MIPS_Test:test_jal_succeeds() (gas: 1207
30
)
MIPS_Test:test_jal_succeeds() (gas: 1207
26
)
MIPS_Test:test_jalr_succeeds() (gas: 12184
9
)
MIPS_Test:test_jalr_succeeds() (gas: 12184
5
)
MIPS_Test:test_jr_succeeds() (gas: 1215
43
)
MIPS_Test:test_jr_succeeds() (gas: 1215
39
)
MIPS_Test:test_jump_inDelaySlot_fails() (gas: 85367)
MIPS_Test:test_jump_inDelaySlot_fails() (gas: 85367)
MIPS_Test:test_jump_nonzeroRegion_succeeds() (gas: 12048
5
)
MIPS_Test:test_jump_nonzeroRegion_succeeds() (gas: 12048
1
)
MIPS_Test:test_jump_succeeds() (gas: 12041
5
)
MIPS_Test:test_jump_succeeds() (gas: 12041
1
)
MIPS_Test:test_lb_succeeds() (gas: 12765
6
)
MIPS_Test:test_lb_succeeds() (gas: 12765
2
)
MIPS_Test:test_lbu_succeeds() (gas: 12755
4
)
MIPS_Test:test_lbu_succeeds() (gas: 12755
0
)
MIPS_Test:test_lh_succeeds() (gas: 12767
7
)
MIPS_Test:test_lh_succeeds() (gas: 12767
3
)
MIPS_Test:test_lhu_succeeds() (gas: 12759
4
)
MIPS_Test:test_lhu_succeeds() (gas: 12759
0
)
MIPS_Test:test_ll_succeeds() (gas: 12781
6
)
MIPS_Test:test_ll_succeeds() (gas: 12781
2
)
MIPS_Test:test_lui_succeeds() (gas: 12169
7
)
MIPS_Test:test_lui_succeeds() (gas: 12169
3
)
MIPS_Test:test_lw_succeeds() (gas: 12744
5
)
MIPS_Test:test_lw_succeeds() (gas: 12744
1
)
MIPS_Test:test_lwl_succeeds() (gas: 2420
54
)
MIPS_Test:test_lwl_succeeds() (gas: 2420
46
)
MIPS_Test:test_lwr_succeeds() (gas: 2423
42
)
MIPS_Test:test_lwr_succeeds() (gas: 2423
34
)
MIPS_Test:test_mfhi_succeeds() (gas: 12205
8
)
MIPS_Test:test_mfhi_succeeds() (gas: 12205
4
)
MIPS_Test:test_mflo_succeeds() (gas: 12218
7
)
MIPS_Test:test_mflo_succeeds() (gas: 12218
3
)
MIPS_Test:test_mmap_succeeds() (gas: 11901
6
)
MIPS_Test:test_mmap_succeeds() (gas: 11901
2
)
MIPS_Test:test_movn_succeeds() (gas: 2034
81
)
MIPS_Test:test_movn_succeeds() (gas: 2034
73
)
MIPS_Test:test_movz_succeeds() (gas: 20334
9
)
MIPS_Test:test_movz_succeeds() (gas: 20334
1
)
MIPS_Test:test_mthi_succeeds() (gas: 122
102
)
MIPS_Test:test_mthi_succeeds() (gas: 122
098
)
MIPS_Test:test_mtlo_succeeds() (gas: 1222
10
)
MIPS_Test:test_mtlo_succeeds() (gas: 1222
06
)
MIPS_Test:test_mul_succeeds() (gas: 121
702
)
MIPS_Test:test_mul_succeeds() (gas: 121
698
)
MIPS_Test:test_mult_succeeds() (gas: 12240
6
)
MIPS_Test:test_mult_succeeds() (gas: 12240
2
)
MIPS_Test:test_multu_succeeds() (gas: 1224
43
)
MIPS_Test:test_multu_succeeds() (gas: 1224
39
)
MIPS_Test:test_nor_succeeds() (gas: 12253
5
)
MIPS_Test:test_nor_succeeds() (gas: 12253
1
)
MIPS_Test:test_or_succeeds() (gas: 1224
92
)
MIPS_Test:test_or_succeeds() (gas: 1224
88
)
MIPS_Test:test_ori_succeeds() (gas: 12249
5
)
MIPS_Test:test_ori_succeeds() (gas: 12249
1
)
MIPS_Test:test_preimage_read_succeeds() (gas: 2344
12
)
MIPS_Test:test_preimage_read_succeeds() (gas: 2344
08
)
MIPS_Test:test_preimage_write_succeeds() (gas: 12703
8
)
MIPS_Test:test_preimage_write_succeeds() (gas: 12703
4
)
MIPS_Test:test_prestate_exited_succeeds() (gas: 11328
2
)
MIPS_Test:test_prestate_exited_succeeds() (gas: 11328
0
)
MIPS_Test:test_sb_succeeds() (gas: 16052
7
)
MIPS_Test:test_sb_succeeds() (gas: 16052
3
)
MIPS_Test:test_sc_succeeds() (gas: 1607
21
)
MIPS_Test:test_sc_succeeds() (gas: 1607
17
)
MIPS_Test:test_sh_succeeds() (gas: 16056
4
)
MIPS_Test:test_sh_succeeds() (gas: 16056
0
)
MIPS_Test:test_sll_succeeds() (gas: 1216
63
)
MIPS_Test:test_sll_succeeds() (gas: 1216
59
)
MIPS_Test:test_sllv_succeeds() (gas: 1218
92
)
MIPS_Test:test_sllv_succeeds() (gas: 1218
88
)
MIPS_Test:test_slt_succeeds() (gas: 2046
76
)
MIPS_Test:test_slt_succeeds() (gas: 2046
68
)
MIPS_Test:test_sltu_succeeds() (gas: 12270
9
)
MIPS_Test:test_sltu_succeeds() (gas: 12270
5
)
MIPS_Test:test_sra_succeeds() (gas: 12191
4
)
MIPS_Test:test_sra_succeeds() (gas: 12191
0
)
MIPS_Test:test_srav_succeeds() (gas: 1221
82
)
MIPS_Test:test_srav_succeeds() (gas: 1221
78
)
MIPS_Test:test_srl_succeeds() (gas: 12174
5
)
MIPS_Test:test_srl_succeeds() (gas: 12174
1
)
MIPS_Test:test_srlv_succeeds() (gas: 1219
10
)
MIPS_Test:test_srlv_succeeds() (gas: 1219
06
)
MIPS_Test:test_step_abi_succeeds() (gas: 58417)
MIPS_Test:test_step_abi_succeeds() (gas: 58417)
MIPS_Test:test_sub_succeeds() (gas: 12251
9
)
MIPS_Test:test_sub_succeeds() (gas: 12251
5
)
MIPS_Test:test_subu_succeeds() (gas: 12251
6
)
MIPS_Test:test_subu_succeeds() (gas: 12251
2
)
MIPS_Test:test_sw_succeeds() (gas: 16053
9
)
MIPS_Test:test_sw_succeeds() (gas: 16053
5
)
MIPS_Test:test_swl_succeeds() (gas: 160
600
)
MIPS_Test:test_swl_succeeds() (gas: 160
596
)
MIPS_Test:test_swr_succeeds() (gas: 16067
5
)
MIPS_Test:test_swr_succeeds() (gas: 16067
1
)
MIPS_Test:test_xor_succeeds() (gas: 1225
20
)
MIPS_Test:test_xor_succeeds() (gas: 1225
16
)
MIPS_Test:test_xori_succeeds() (gas: 1225
72
)
MIPS_Test:test_xori_succeeds() (gas: 1225
68
)
MerkleTrie_get_Test:test_get_corruptedProof_reverts() (gas: 5733)
MerkleTrie_get_Test:test_get_corruptedProof_reverts() (gas: 5733)
MerkleTrie_get_Test:test_get_extraProofElements_reverts() (gas: 58889)
MerkleTrie_get_Test:test_get_extraProofElements_reverts() (gas: 58889)
MerkleTrie_get_Test:test_get_invalidDataRemainder_reverts() (gas: 35845)
MerkleTrie_get_Test:test_get_invalidDataRemainder_reverts() (gas: 35845)
...
...
packages/contracts-bedrock/semver-lock.json
View file @
7b68fe4d
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
"src/L2/L2StandardBridge.sol"
:
"0xe025dcccbf21d48828ecf588941c9ba04c91b87bdd177a653d3f1b265b0b02a8"
,
"src/L2/L2StandardBridge.sol"
:
"0xe025dcccbf21d48828ecf588941c9ba04c91b87bdd177a653d3f1b265b0b02a8"
,
"src/L2/L2ToL1MessagePasser.sol"
:
"0xda56ba2e5b2c28fa8ca2df24077d49e96155a00ecc99cd0778d681be6ed166fe"
,
"src/L2/L2ToL1MessagePasser.sol"
:
"0xda56ba2e5b2c28fa8ca2df24077d49e96155a00ecc99cd0778d681be6ed166fe"
,
"src/L2/SequencerFeeVault.sol"
:
"0x37816035c992d38cf7e3d5a1846b02d017dd7bdca46abe6e5c5171b9ee6225ab"
,
"src/L2/SequencerFeeVault.sol"
:
"0x37816035c992d38cf7e3d5a1846b02d017dd7bdca46abe6e5c5171b9ee6225ab"
,
"src/dispute/FaultDisputeGame.sol"
:
"0x
43a8ef33b55a90532760cf4062038fe548aa68316457520bcf64e206a160a453
"
,
"src/dispute/FaultDisputeGame.sol"
:
"0x
7b8462c29d003e96a73491c644001e1a9034bcc45c5be2a7bac3caf80d521635
"
,
"src/legacy/DeployerWhitelist.sol"
:
"0xf2129ec3da75307ba8e21bc943c332bb04704642e6e263149b5c8ee92dbcb7a8"
,
"src/legacy/DeployerWhitelist.sol"
:
"0xf2129ec3da75307ba8e21bc943c332bb04704642e6e263149b5c8ee92dbcb7a8"
,
"src/legacy/L1BlockNumber.sol"
:
"0x30aae1fc85103476af0226b6e98c71c01feebbdc35d93401390b1ad438a37be6"
,
"src/legacy/L1BlockNumber.sol"
:
"0x30aae1fc85103476af0226b6e98c71c01feebbdc35d93401390b1ad438a37be6"
,
"src/legacy/LegacyMessagePasser.sol"
:
"0x5c08b0a663cc49d30e4e38540f6aefab19ef287c3ecd31c8d8c3decd5f5bd497"
,
"src/legacy/LegacyMessagePasser.sol"
:
"0x5c08b0a663cc49d30e4e38540f6aefab19ef287c3ecd31c8d8c3decd5f5bd497"
,
...
...
packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol
View file @
7b68fe4d
...
@@ -445,7 +445,8 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
...
@@ -445,7 +445,8 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
// The VMStatus must indicate (1) 'invalid', to argue that disputed thing is invalid.
// The VMStatus must indicate (1) 'invalid', to argue that disputed thing is invalid.
// Games that agree with the existing outcome are not allowed.
// Games that agree with the existing outcome are not allowed.
// NOTE(clabby): This assumption will change in Alpha Chad.
// NOTE(clabby): This assumption will change in Alpha Chad.
if (uint8(Claim.unwrap(rootClaim())[0]) != VMStatus.unwrap(VMStatuses.INVALID)) {
uint8 vmStatus = uint8(Claim.unwrap(rootClaim())[0]);
if (!(vmStatus == VMStatus.unwrap(VMStatuses.INVALID) || vmStatus == VMStatus.unwrap(VMStatuses.PANIC))) {
revert UnexpectedRootClaim(rootClaim());
revert UnexpectedRootClaim(rootClaim());
}
}
...
...
packages/contracts-bedrock/test/FaultDisputeGame.t.sol
View file @
7b68fe4d
...
@@ -147,7 +147,8 @@ contract FaultDisputeGame_Test is FaultDisputeGame_Init {
...
@@ -147,7 +147,8 @@ contract FaultDisputeGame_Test is FaultDisputeGame_Init {
function testFuzz_initialize_badRootStatus_reverts(Claim rootClaim, bytes calldata extraData) public {
function testFuzz_initialize_badRootStatus_reverts(Claim rootClaim, bytes calldata extraData) public {
// Ensure that the `gameType` is within the bounds of the `GameType` enum's possible values.
// Ensure that the `gameType` is within the bounds of the `GameType` enum's possible values.
// Ensure the root claim does not have the correct VM status
// Ensure the root claim does not have the correct VM status
if (uint8(Claim.unwrap(rootClaim)[0]) == 1) rootClaim = changeClaimStatus(rootClaim, VMStatuses.VALID);
uint8 vmStatus = uint8(Claim.unwrap(rootClaim)[0]);
if (vmStatus == 1 || vmStatus == 2) rootClaim = changeClaimStatus(rootClaim, VMStatuses.VALID);
vm.expectRevert(abi.encodeWithSelector(UnexpectedRootClaim.selector, rootClaim));
vm.expectRevert(abi.encodeWithSelector(UnexpectedRootClaim.selector, rootClaim));
factory.create(GameTypes.FAULT, rootClaim, extraData);
factory.create(GameTypes.FAULT, rootClaim, extraData);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment