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
41dff4ad
Commit
41dff4ad
authored
Jul 20, 2023
by
clabby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add L2OO output root fetching
parent
25876600
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
104 additions
and
47 deletions
+104
-47
faultdisputegame.go
op-bindings/bindings/faultdisputegame.go
+35
-4
faultdisputegame_more.go
op-bindings/bindings/faultdisputegame_more.go
+1
-1
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+22
-22
Deploy.s.sol
packages/contracts-bedrock/scripts/Deploy.s.sol
+2
-1
PreimageKeyLib.sol
packages/contracts-bedrock/src/cannon/PreimageKeyLib.sol
+1
-5
PreimageOracle.sol
packages/contracts-bedrock/src/cannon/PreimageOracle.sol
+5
-1
FaultDisputeGame.sol
packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol
+13
-3
IBigStepper.sol
.../contracts-bedrock/src/dispute/interfaces/IBigStepper.sol
+5
-1
FaultDisputeGame.t.sol
packages/contracts-bedrock/test/FaultDisputeGame.t.sol
+20
-9
No files found.
op-bindings/bindings/faultdisputegame.go
View file @
41dff4ad
...
...
@@ -30,8 +30,8 @@ var (
// FaultDisputeGameMetaData contains all meta data concerning the FaultDisputeGame contract.
var
FaultDisputeGameMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_absolutePrestate
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_maxGameDepth
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"
_gameDuration
\"
,
\"
type
\"
:
\"
uint64
\"
},{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"
_vm
\"
,
\"
type
\"
:
\"
address
\"
}
],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
CannotDefendRootClaim
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClaimAlreadyExists
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockNotExpired
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockTimeExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameDepthExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameNotInProgress
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidParent
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidPrestate
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ValidStep
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
Move
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Resolved
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ABSOLUTE_PRESTATE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GAME_DURATION
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MAX_GAME_DEPTH
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
VM
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
addLocalData
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
attack
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
bondManager
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBondManager
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
claimData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
countered
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
Position
\"
,
\"
name
\"
:
\"
position
\"
,
\"
type
\"
:
\"
uint128
\"
},{
\"
internalType
\"
:
\"
Clock
\"
,
\"
name
\"
:
\"
clock
\"
,
\"
type
\"
:
\"
uint128
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
claimDataLen
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
createdAt
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
createdAt_
\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
defend
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
extraData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameStart
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameType
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1Head
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l2BlockNumber
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
l2BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_challengeIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
}],
\"
name
\"
:
\"
move
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
resolve
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
rootClaim
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
status
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
step
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
Bin
:
"0x6101
606040523480156200001257600080fd5b50604051620026a5380380620026a5833981016040819052620000359162000071565b6000608081905260a052600360c05260e093909352610100919091526001600160401b0316610120526001600160a01b031661014052620000d8565b600080600080608085870312156200008857600080fd5b84516020860151604087015191955093506001600160401b0381168114620000af57600080fd5b60608601519092506001600160a01b0381168114620000cd57600080fd5b939692955090935050565b60805160a05160c05160e05161010051610120516101405161253a6200016b600039600081816103e1015281816114ff01526117dd01526000818161046e0152818161079c0152610ded0152600081816102e3015281816106a401528181610c2c01526113030152600081816101de015261143d01526000610a14015260006109eb015260006109c2015261253a6000f3fe60806040526004361061018b5760003560e01c80638980e0cc116100d6578063c55cd0c71161007f578063d8cc1a3c11610059578063d8cc1a3c14610526578063f05a6c3914610546578063fa24f7431461056657600080fd5b8063c55cd0c714610490578063c6f0308c146104a3578063cf09e0d01461050757600080fd5b8063bbdc02db116100b0578063bbdc02db14610403578063bcef3b551461041f578063c31b29ce1461045c57600080fd5b80638980e0cc1461037a5780638b85902b1461038f57806392931298146103cf57600080fd5b80634778efe811610138578063632247ea11610112578063632247ea1461033c5780636361506d1461034f5780638129fc1c1461036557600080fd5b80634778efe8146102d157806354fd4d5014610305578063609d33341461032757600080fd5b80633218b99d116101695780633218b99d1461022357806335fef5671461025d578063363cc4271461027257600080fd5b8063200d2ed214610190578063266198f9146101cc5780632810e1d61461020e575b600080fd5b34801561019c57600080fd5b506000546101b69068010000000000000000900460ff1681565b6040516101c39190611f8d565b60405180910390f35b3480156101d857600080fd5b506102007f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101c3565b34801561021a57600080fd5b506101b661058a565b34801561022f57600080fd5b506000546102449067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101c3565b61027061026b366004611fce565b6109ab565b005b34801561027e57600080fd5b506000546102ac906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c3565b3480156102dd57600080fd5b506102007f000000000000000000000000000000000000000000000000000000000000000081565b34801561031157600080fd5b5061031a6109bb565b6040516101c3919061206a565b34801561033357600080fd5b5061031a610a5e565b61027061034a366004612099565b610a70565b34801561035b57600080fd5b5061020060015481565b34801561037157600080fd5b5061027061108c565b34801561038657600080fd5b50600254610200565b34801561039b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610200565b3480156103db57600080fd5b506102ac7f000000000000000000000000000000000000000000000000000000000000000081565b34801561040f57600080fd5b50604051600081526020016101c3565b34801561042b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610200565b34801561046857600080fd5b506102447f000000000000000000000000000000000000000000000000000000000000000081565b61027061049e366004611fce565b6111dd565b3480156104af57600080fd5b506104c36104be3660046120ce565b6111e9565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101c3565b34801561051357600080fd5b5060005467ffffffffffffffff16610244565b34801561053257600080fd5b50610270610541366004612130565b61125a565b34801561055257600080fd5b506102706105613660046120ce565b61177e565b34801561057257600080fd5b5061057b611aa8565b6040516101c3939291906121ba565b60008060005468010000000000000000900460ff1660028111156105b0576105b0611f5e565b146105e7576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546000906105f990600190612214565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff8110156106e3576000600282815481106106335761063361222b565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff6401000000009091041615610684575061060e565b60028101546000906106c8906fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000611ae6565b9050838110156106dc578093508260010194505b505061060e565b506000600283815481106106f9576106f961222b565b600091825260208220600390910201805490925063ffffffff9081169190821461076357600282815481106107305761073061222b565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1661078f565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c166107d367ffffffffffffffff831642612214565b6107ef836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610803919061225a565b1161083a576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002838101546108dc906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6108e691906122a1565b67ffffffffffffffff1615801561090d57506fffffffffffffffffffffffffffffffff8414155b1561091b5760029550610920565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff166801000000000000000083600281111561096557610965611f5e565b02179055600281111561097a5761097a611f5e565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b6109b782826000610a70565b5050565b60606109e67f0000000000000000000000000000000000000000000000000000000000000000611b9b565b610a0f7f0000000000000000000000000000000000000000000000000000000000000000611b9b565b610a387f0000000000000000000000000000000000000000000000000000000000000000611b9b565b604051602001610a4a939291906122c8565b604051602081830303815290604052905090565b6060610a6b602080611cd8565b905090565b6000805468010000000000000000900460ff166002811115610a9457610a94611f5e565b14610acb576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610ad7575080155b15610b0e576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b2357610b2361222b565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff80821660608501527001000000000000000000000000000000009091041660808301528254919350919086908110610bbe57610bbe61222b565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909316929092179091556060820151610c28906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f0000000000000000000000000000000000000000000000000000000000000000610ce7826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610d29576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610d89576002836000015163ffffffff1681548110610d5857610d5861222b565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610dc2846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610dd6919061225a565b610de09190612214565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610e53576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421790506000610e74888660009182526020526040902090565b60008181526003602052604090205490915060ff1615610ec0576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060a001604052808b63ffffffff1681526020016000151581526020018a8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548160ff0219169083151502179055506040820151816001015560608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050503373ffffffffffffffffffffffffffffffffffffffff16888a7f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be60405160405180910390a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016111117ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff90931692909217949094178155604083015181850155606083015160809093015182167001000000000000000000000000000000000292909116919091176002909101556111d79043612214565b40600155565b6109b782826001610a70565b600281815481106111f957600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff16600281111561127e5761127e611f5e565b146112b5576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600287815481106112ca576112ca61222b565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506113297f0000000000000000000000000000000000000000000000000000000000000000600161225a565b6113c5826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611406576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561148c5761142a836fffffffffffffffffffffffffffffffff16611d6f565b67ffffffffffffffff16600003611463577f00000000000000000000000000000000000000000000000000000000000000009150611485565b61147e61147160018661233e565b865463ffffffff16611e15565b6001015491505b50836114a6565b846001015491506114a3846001611471919061236f565b90505b8189896040516114b79291906123a3565b6040518091039020146114f6576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b815260040161155c94939291906123fc565b6020604051808303816000875af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159f919061242e565b60028481015492909114925060009161164a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6116e6886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6116f09190612447565b6116fa91906122a1565b67ffffffffffffffff161590508115158103611742576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000805468010000000000000000900460ff1660028111156117a2576117a2611f5e565b146117d9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186a9190612468565b90508160010361190b576001546040517fe52f09370000000000000000000000000000000000000000000000000000000081526004810184905260248101919091526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064015b600060405180830381600087803b1580156118ef57600080fd5b505af1158015611903573d6000803e3d6000fd5b505050505050565b600282146109b757816003036119a5576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560248201526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064016118d5565b81600403611a3d576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013560c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064016118d5565b816005036109b7576040517fe52f0937000000000000000000000000000000000000000000000000000000008152600481018390524660c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064016118d5565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611adf610a5e565b9050909192565b600080611b73847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b606081600003611bde57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611c085780611bf28161249e565b9150611c019050600a836124d6565b9150611be2565b60008167ffffffffffffffff811115611c2357611c236124ea565b6040519080825280601f01601f191660200182016040528015611c4d576020820181803683370190505b5090505b8415611cd057611c62600183612214565b9150611c6f600a86612519565b611c7a90603061225a565b60f81b818381518110611c8f57611c8f61222b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611cc9600a866124d6565b9450611c51565b949350505050565b60606000611d0f84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900361225a565b90508267ffffffffffffffff1667ffffffffffffffff811115611d3457611d346124ea565b6040519080825280601f01601f191660200182016040528015611d5e576020820181803683370190505b509150828160208401375092915050565b600080611dfc837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080611e33846fffffffffffffffffffffffffffffffff16611eb2565b905060028381548110611e4857611e4861222b565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff828116911614611eab57815460028054909163ffffffff16908110611e9657611e9661222b565b90600052602060002090600302019150611e59565b5092915050565b60008119600183011681611f46827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310611fc8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60008060408385031215611fe157600080fd5b50508035926020909101359150565b60005b8381101561200b578181015183820152602001611ff3565b8381111561201a576000848401525b50505050565b60008151808452612038816020860160208601611ff0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061207d6020830184612020565b9392505050565b8035801515811461209457600080fd5b919050565b6000806000606084860312156120ae57600080fd5b83359250602084013591506120c560408501612084565b90509250925092565b6000602082840312156120e057600080fd5b5035919050565b60008083601f8401126120f957600080fd5b50813567ffffffffffffffff81111561211157600080fd5b60208301915083602082850101111561212957600080fd5b9250929050565b6000806000806000806080878903121561214957600080fd5b8635955061215960208801612084565b9450604087013567ffffffffffffffff8082111561217657600080fd5b6121828a838b016120e7565b9096509450606089013591508082111561219b57600080fd5b506121a889828a016120e7565b979a9699509497509295939492505050565b60ff841681528260208201526060604082015260006121dc6060830184612020565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612226576122266121e5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000821982111561226d5761226d6121e5565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff808416806122bc576122bc612272565b92169190910692915050565b600084516122da818460208901611ff0565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612316816001850160208a01611ff0565b60019201918201528351612331816002840160208801611ff0565b0160020195945050505050565b60006fffffffffffffffffffffffffffffffff83811690831681811015612367576123676121e5565b039392505050565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561239a5761239a6121e5565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006124106040830186886123b3565b82810360208401526124238185876123b3565b979650505050505050565b60006020828403121561244057600080fd5b5051919050565b600067ffffffffffffffff83811690831681811015612367576123676121e5565b60006020828403121561247a57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461207d57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124cf576124cf6121e5565b5060010190565b6000826124e5576124e5612272565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008261252857612528612272
565b50069056fea164736f6c634300080f000a"
,
ABI
:
"[{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_absolutePrestate
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_maxGameDepth
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"
_gameDuration
\"
,
\"
type
\"
:
\"
uint64
\"
},{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"
_vm
\"
,
\"
type
\"
:
\"
address
\"
}
,{
\"
internalType
\"
:
\"
contractL2OutputOracle
\"
,
\"
name
\"
:
\"
_l2oo
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
CannotDefendRootClaim
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClaimAlreadyExists
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockNotExpired
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockTimeExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameDepthExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameNotInProgress
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidParent
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidPrestate
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ValidStep
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
Move
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Resolved
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ABSOLUTE_PRESTATE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GAME_DURATION
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
L2_OUTPUT_ORACLE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractL2OutputOracle
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MAX_GAME_DEPTH
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
VM
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
addLocalData
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
attack
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
bondManager
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBondManager
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
claimData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
countered
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
Position
\"
,
\"
name
\"
:
\"
position
\"
,
\"
type
\"
:
\"
uint128
\"
},{
\"
internalType
\"
:
\"
Clock
\"
,
\"
name
\"
:
\"
clock
\"
,
\"
type
\"
:
\"
uint128
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
claimDataLen
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
createdAt
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
createdAt_
\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
defend
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
extraData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameStart
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameType
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1Head
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l2BlockNumber
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
l2BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_challengeIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
}],
\"
name
\"
:
\"
move
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
resolve
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
rootClaim
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
status
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
step
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
Bin
:
"0x6101
806040523480156200001257600080fd5b506040516200294638038062002946833981016040819052620000359162000091565b6000608081905260a052600360c05260e094909452610100929092526001600160401b0316610120526001600160a01b0390811661014052166101605262000105565b6001600160a01b03811681146200008e57600080fd5b50565b600080600080600060a08688031215620000aa57600080fd5b85516020870151604088015191965094506001600160401b0381168114620000d157600080fd5b6060870151909350620000e48162000078565b6080870151909250620000f78162000078565b809150509295509295909350565b60805160a05160c05160e0516101005161012051610140516101605161279c620001aa6000396000818161047901526119c50152600081816103ec0152818161153e015261181c0152600081816104ad015281816107db0152610e2c0152600081816102ee015281816106e301528181610c6b01526113420152600081816101e9015261147c01526000610a5301526000610a2a01526000610a01015261279c6000f3fe6080604052600436106101965760003560e01c80638980e0cc116100e1578063c31b29ce1161008a578063cf09e0d011610064578063cf09e0d014610546578063d8cc1a3c14610565578063f05a6c3914610585578063fa24f743146105a557600080fd5b8063c31b29ce1461049b578063c55cd0c7146104cf578063c6f0308c146104e257600080fd5b8063bbdc02db116100bb578063bbdc02db1461040e578063bcef3b551461042a578063c0c3a0921461046757600080fd5b80638980e0cc146103855780638b85902b1461039a57806392931298146103da57600080fd5b80634778efe811610143578063632247ea1161011d578063632247ea146103475780636361506d1461035a5780638129fc1c1461037057600080fd5b80634778efe8146102dc57806354fd4d5014610310578063609d33341461033257600080fd5b80633218b99d116101745780633218b99d1461022e57806335fef56714610268578063363cc4271461027d57600080fd5b8063200d2ed21461019b578063266198f9146101d75780632810e1d614610219575b600080fd5b3480156101a757600080fd5b506000546101c19068010000000000000000900460ff1681565b6040516101ce9190612143565b60405180910390f35b3480156101e357600080fd5b5061020b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101ce565b34801561022557600080fd5b506101c16105c9565b34801561023a57600080fd5b5060005461024f9067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101ce565b61027b610276366004612184565b6109ea565b005b34801561028957600080fd5b506000546102b7906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ce565b3480156102e857600080fd5b5061020b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031c57600080fd5b506103256109fa565b6040516101ce9190612220565b34801561033e57600080fd5b50610325610a9d565b61027b61035536600461224f565b610aaf565b34801561036657600080fd5b5061020b60015481565b34801561037c57600080fd5b5061027b6110cb565b34801561039157600080fd5b5060025461020b565b3480156103a657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561020b565b3480156103e657600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b34801561041a57600080fd5b50604051600081526020016101ce565b34801561043657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561020b565b34801561047357600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a757600080fd5b5061024f7f000000000000000000000000000000000000000000000000000000000000000081565b61027b6104dd366004612184565b61121c565b3480156104ee57600080fd5b506105026104fd366004612284565b611228565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101ce565b34801561055257600080fd5b5060005467ffffffffffffffff1661024f565b34801561057157600080fd5b5061027b6105803660046122e6565b611299565b34801561059157600080fd5b5061027b6105a0366004612284565b6117bd565b3480156105b157600080fd5b506105ba611c5e565b6040516101ce93929190612370565b60008060005468010000000000000000900460ff1660028111156105ef576105ef612114565b14610626576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600090610638906001906123ca565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff81101561072257600060028281548110610672576106726123e1565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff64010000000090910416156106c3575061064d565b6002810154600090610707906fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000611c9c565b90508381101561071b578093508260010194505b505061064d565b50600060028381548110610738576107386123e1565b600091825260208220600390910201805490925063ffffffff908116919082146107a2576002828154811061076f5761076f6123e1565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff166107ce565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661081267ffffffffffffffff8316426123ca565b61082e836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166108429190612410565b11610879576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028381015461091b906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6109259190612457565b67ffffffffffffffff1615801561094c57506fffffffffffffffffffffffffffffffff8414155b1561095a576002955061095f565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000008360028111156109a4576109a4612114565b0217905560028111156109b9576109b9612114565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b6109f682826000610aaf565b5050565b6060610a257f0000000000000000000000000000000000000000000000000000000000000000611d51565b610a4e7f0000000000000000000000000000000000000000000000000000000000000000611d51565b610a777f0000000000000000000000000000000000000000000000000000000000000000611d51565b604051602001610a899392919061247e565b604051602081830303815290604052905090565b6060610aaa602080611e8e565b905090565b6000805468010000000000000000900460ff166002811115610ad357610ad3612114565b14610b0a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610b16575080155b15610b4d576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b6257610b626123e1565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff80821660608501527001000000000000000000000000000000009091041660808301528254919350919086908110610bfd57610bfd6123e1565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909316929092179091556060820151610c67906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f0000000000000000000000000000000000000000000000000000000000000000610d26826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610d68576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610dc8576002836000015163ffffffff1681548110610d9757610d976123e1565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610e01846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610e159190612410565b610e1f91906123ca565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610e92576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421790506000610eb3888660009182526020526040902090565b60008181526003602052604090205490915060ff1615610eff576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060a001604052808b63ffffffff1681526020016000151581526020018a8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548160ff0219169083151502179055506040820151816001015560608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050503373ffffffffffffffffffffffffffffffffffffffff16888a7f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be60405160405180910390a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016111507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff909316929092179490941781556040830151818501556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015561121690436123ca565b40600155565b6109f682826001610aaf565b6002818154811061123857600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff1660028111156112bd576112bd612114565b146112f4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028781548110611309576113096123e1565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506113687f00000000000000000000000000000000000000000000000000000000000000006001612410565b611404826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611445576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156114cb57611469836fffffffffffffffffffffffffffffffff16611f25565b67ffffffffffffffff166000036114a2577f000000000000000000000000000000000000000000000000000000000000000091506114c4565b6114bd6114b06001866124f4565b865463ffffffff16611fcb565b6001015491505b50836114e5565b846001015491506114e28460016114b09190612525565b90505b8189896040516114f6929190612559565b604051809103902014611535576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b815260040161159b94939291906125b2565b6020604051808303816000875af11580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de91906125e4565b600284810154929091149250600091611689906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611725886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61172f91906125fd565b6117399190612457565b67ffffffffffffffff161590508115158103611781576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000805468010000000000000000900460ff1660028111156117e1576117e1612114565b14611818576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a9919061261e565b90508160010361194a576001546040517fe52f09370000000000000000000000000000000000000000000000000000000081526004810184905260248101919091526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064015b600060405180830381600087803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b505050505050565b81600203611ac9576040517fcf8e5cf0000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135600482015260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cf8e5cf090602401606060405180830381865afa158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906126a3565b80516040517fe52f09370000000000000000000000000000000000000000000000000000000081526004810186905260248101919091526020604482015290915073ffffffffffffffffffffffffffffffffffffffff83169063e52f093790606401600060405180830381600087803b158015611aac57600080fd5b505af1158015611ac0573d6000803e3d6000fd5b50505050505050565b81600303611b5b576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560248201526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f093790606401611914565b81600403611bf3576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013560c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f093790606401611914565b816005036109f6576040517fe52f0937000000000000000000000000000000000000000000000000000000008152600481018390524660c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f093790606401611914565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611c95610a9d565b9050909192565b600080611d29847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b606081600003611d9457505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611dbe5780611da88161272f565b9150611db79050600a83612767565b9150611d98565b60008167ffffffffffffffff811115611dd957611dd9612654565b6040519080825280601f01601f191660200182016040528015611e03576020820181803683370190505b5090505b8415611e8657611e186001836123ca565b9150611e25600a8661277b565b611e30906030612410565b60f81b818381518110611e4557611e456123e1565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611e7f600a86612767565b9450611e07565b949350505050565b60606000611ec584367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003612410565b90508267ffffffffffffffff1667ffffffffffffffff811115611eea57611eea612654565b6040519080825280601f01601f191660200182016040528015611f14576020820181803683370190505b509150828160208401375092915050565b600080611fb2837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080611fe9846fffffffffffffffffffffffffffffffff16612068565b905060028381548110611ffe57611ffe6123e1565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461206157815460028054909163ffffffff1690811061204c5761204c6123e1565b9060005260206000209060030201915061200f565b5092915050565b600081196001830116816120fc827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061217e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561219757600080fd5b50508035926020909101359150565b60005b838110156121c15781810151838201526020016121a9565b838111156121d0576000848401525b50505050565b600081518084526121ee8160208601602086016121a6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061223360208301846121d6565b9392505050565b8035801515811461224a57600080fd5b919050565b60008060006060848603121561226457600080fd5b833592506020840135915061227b6040850161223a565b90509250925092565b60006020828403121561229657600080fd5b5035919050565b60008083601f8401126122af57600080fd5b50813567ffffffffffffffff8111156122c757600080fd5b6020830191508360208285010111156122df57600080fd5b9250929050565b600080600080600080608087890312156122ff57600080fd5b8635955061230f6020880161223a565b9450604087013567ffffffffffffffff8082111561232c57600080fd5b6123388a838b0161229d565b9096509450606089013591508082111561235157600080fd5b5061235e89828a0161229d565b979a9699509497509295939492505050565b60ff8416815282602082015260606040820152600061239260608301846121d6565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156123dc576123dc61239b565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082198211156124235761242361239b565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff8084168061247257612472612428565b92169190910692915050565b600084516124908184602089016121a6565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516124cc816001850160208a016121a6565b600192019182015283516124e78160028401602088016121a6565b0160020195945050505050565b60006fffffffffffffffffffffffffffffffff8381169083168181101561251d5761251d61239b565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156125505761255061239b565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006125c6604083018688612569565b82810360208401526125d9818587612569565b979650505050505050565b6000602082840312156125f657600080fd5b5051919050565b600067ffffffffffffffff8381169083168181101561251d5761251d61239b565b60006020828403121561263057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461223357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461224a57600080fd5b6000606082840312156126b557600080fd5b6040516060810181811067ffffffffffffffff821117156126ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528251815261271260208401612683565b602082015261272360408401612683565b60408201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127605761276061239b565b5060010190565b60008261277657612776612428565b500490565b60008261278a5761278a612428
565b50069056fea164736f6c634300080f000a"
,
}
// FaultDisputeGameABI is the input ABI used to generate the binding from.
...
...
@@ -43,7 +43,7 @@ var FaultDisputeGameABI = FaultDisputeGameMetaData.ABI
var
FaultDisputeGameBin
=
FaultDisputeGameMetaData
.
Bin
// DeployFaultDisputeGame deploys a new Ethereum contract, binding an instance of FaultDisputeGame to it.
func
DeployFaultDisputeGame
(
auth
*
bind
.
TransactOpts
,
backend
bind
.
ContractBackend
,
_absolutePrestate
[
32
]
byte
,
_maxGameDepth
*
big
.
Int
,
_gameDuration
uint64
,
_vm
common
.
Address
)
(
common
.
Address
,
*
types
.
Transaction
,
*
FaultDisputeGame
,
error
)
{
func
DeployFaultDisputeGame
(
auth
*
bind
.
TransactOpts
,
backend
bind
.
ContractBackend
,
_absolutePrestate
[
32
]
byte
,
_maxGameDepth
*
big
.
Int
,
_gameDuration
uint64
,
_vm
common
.
Address
,
_l2oo
common
.
Address
)
(
common
.
Address
,
*
types
.
Transaction
,
*
FaultDisputeGame
,
error
)
{
parsed
,
err
:=
FaultDisputeGameMetaData
.
GetAbi
()
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
...
...
@@ -52,7 +52,7 @@ func DeployFaultDisputeGame(auth *bind.TransactOpts, backend bind.ContractBacken
return
common
.
Address
{},
nil
,
nil
,
errors
.
New
(
"GetABI returned nil"
)
}
address
,
tx
,
contract
,
err
:=
bind
.
DeployContract
(
auth
,
*
parsed
,
common
.
FromHex
(
FaultDisputeGameBin
),
backend
,
_absolutePrestate
,
_maxGameDepth
,
_gameDuration
,
_vm
)
address
,
tx
,
contract
,
err
:=
bind
.
DeployContract
(
auth
,
*
parsed
,
common
.
FromHex
(
FaultDisputeGameBin
),
backend
,
_absolutePrestate
,
_maxGameDepth
,
_gameDuration
,
_vm
,
_l2oo
)
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
}
...
...
@@ -263,6 +263,37 @@ func (_FaultDisputeGame *FaultDisputeGameCallerSession) GAMEDURATION() (uint64,
return
_FaultDisputeGame
.
Contract
.
GAMEDURATION
(
&
_FaultDisputeGame
.
CallOpts
)
}
// L2OUTPUTORACLE is a free data retrieval call binding the contract method 0xc0c3a092.
//
// Solidity: function L2_OUTPUT_ORACLE() view returns(address)
func
(
_FaultDisputeGame
*
FaultDisputeGameCaller
)
L2OUTPUTORACLE
(
opts
*
bind
.
CallOpts
)
(
common
.
Address
,
error
)
{
var
out
[]
interface
{}
err
:=
_FaultDisputeGame
.
contract
.
Call
(
opts
,
&
out
,
"L2_OUTPUT_ORACLE"
)
if
err
!=
nil
{
return
*
new
(
common
.
Address
),
err
}
out0
:=
*
abi
.
ConvertType
(
out
[
0
],
new
(
common
.
Address
))
.
(
*
common
.
Address
)
return
out0
,
err
}
// L2OUTPUTORACLE is a free data retrieval call binding the contract method 0xc0c3a092.
//
// Solidity: function L2_OUTPUT_ORACLE() view returns(address)
func
(
_FaultDisputeGame
*
FaultDisputeGameSession
)
L2OUTPUTORACLE
()
(
common
.
Address
,
error
)
{
return
_FaultDisputeGame
.
Contract
.
L2OUTPUTORACLE
(
&
_FaultDisputeGame
.
CallOpts
)
}
// L2OUTPUTORACLE is a free data retrieval call binding the contract method 0xc0c3a092.
//
// Solidity: function L2_OUTPUT_ORACLE() view returns(address)
func
(
_FaultDisputeGame
*
FaultDisputeGameCallerSession
)
L2OUTPUTORACLE
()
(
common
.
Address
,
error
)
{
return
_FaultDisputeGame
.
Contract
.
L2OUTPUTORACLE
(
&
_FaultDisputeGame
.
CallOpts
)
}
// MAXGAMEDEPTH is a free data retrieval call binding the contract method 0x4778efe8.
//
// Solidity: function MAX_GAME_DEPTH() view returns(uint256)
...
...
op-bindings/bindings/faultdisputegame_more.go
View file @
41dff4ad
...
...
@@ -13,7 +13,7 @@ const FaultDisputeGameStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contr
var
FaultDisputeGameStorageLayout
=
new
(
solc
.
StorageLayout
)
var
FaultDisputeGameDeployedBin
=
"0x6080604052600436106101
8b5760003560e01c80638980e0cc116100d6578063c55cd0c71161007f578063d8cc1a3c11610059578063d8cc1a3c14610526578063f05a6c3914610546578063fa24f7431461056657600080fd5b8063c55cd0c714610490578063c6f0308c146104a3578063cf09e0d01461050757600080fd5b8063bbdc02db116100b0578063bbdc02db14610403578063bcef3b551461041f578063c31b29ce1461045c57600080fd5b80638980e0cc1461037a5780638b85902b1461038f57806392931298146103cf57600080fd5b80634778efe811610138578063632247ea11610112578063632247ea1461033c5780636361506d1461034f5780638129fc1c1461036557600080fd5b80634778efe8146102d157806354fd4d5014610305578063609d33341461032757600080fd5b80633218b99d116101695780633218b99d1461022357806335fef5671461025d578063363cc4271461027257600080fd5b8063200d2ed214610190578063266198f9146101cc5780632810e1d61461020e575b600080fd5b34801561019c57600080fd5b506000546101b69068010000000000000000900460ff1681565b6040516101c39190611f8d565b60405180910390f35b3480156101d857600080fd5b506102007f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101c3565b34801561021a57600080fd5b506101b661058a565b34801561022f57600080fd5b506000546102449067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101c3565b61027061026b366004611fce565b6109ab565b005b34801561027e57600080fd5b506000546102ac906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c3565b3480156102dd57600080fd5b506102007f000000000000000000000000000000000000000000000000000000000000000081565b34801561031157600080fd5b5061031a6109bb565b6040516101c3919061206a565b34801561033357600080fd5b5061031a610a5e565b61027061034a366004612099565b610a70565b34801561035b57600080fd5b5061020060015481565b34801561037157600080fd5b5061027061108c565b34801561038657600080fd5b50600254610200565b34801561039b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610200565b3480156103db57600080fd5b506102ac7f000000000000000000000000000000000000000000000000000000000000000081565b34801561040f57600080fd5b50604051600081526020016101c3565b34801561042b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610200565b34801561046857600080fd5b506102447f000000000000000000000000000000000000000000000000000000000000000081565b61027061049e366004611fce565b6111dd565b3480156104af57600080fd5b506104c36104be3660046120ce565b6111e9565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101c3565b34801561051357600080fd5b5060005467ffffffffffffffff16610244565b34801561053257600080fd5b50610270610541366004612130565b61125a565b34801561055257600080fd5b506102706105613660046120ce565b61177e565b34801561057257600080fd5b5061057b611aa8565b6040516101c3939291906121ba565b60008060005468010000000000000000900460ff1660028111156105b0576105b0611f5e565b146105e7576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546000906105f990600190612214565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff8110156106e3576000600282815481106106335761063361222b565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff6401000000009091041615610684575061060e565b60028101546000906106c8906fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000611ae6565b9050838110156106dc578093508260010194505b505061060e565b506000600283815481106106f9576106f961222b565b600091825260208220600390910201805490925063ffffffff9081169190821461076357600282815481106107305761073061222b565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1661078f565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c166107d367ffffffffffffffff831642612214565b6107ef836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610803919061225a565b1161083a576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002838101546108dc906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6108e691906122a1565b67ffffffffffffffff1615801561090d57506fffffffffffffffffffffffffffffffff8414155b1561091b5760029550610920565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff166801000000000000000083600281111561096557610965611f5e565b02179055600281111561097a5761097a611f5e565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b6109b782826000610a70565b5050565b60606109e67f0000000000000000000000000000000000000000000000000000000000000000611b9b565b610a0f7f0000000000000000000000000000000000000000000000000000000000000000611b9b565b610a387f0000000000000000000000000000000000000000000000000000000000000000611b9b565b604051602001610a4a939291906122c8565b604051602081830303815290604052905090565b6060610a6b602080611cd8565b905090565b6000805468010000000000000000900460ff166002811115610a9457610a94611f5e565b14610acb576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610ad7575080155b15610b0e576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b2357610b2361222b565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff80821660608501527001000000000000000000000000000000009091041660808301528254919350919086908110610bbe57610bbe61222b565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909316929092179091556060820151610c28906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f0000000000000000000000000000000000000000000000000000000000000000610ce7826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610d29576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610d89576002836000015163ffffffff1681548110610d5857610d5861222b565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610dc2846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610dd6919061225a565b610de09190612214565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610e53576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421790506000610e74888660009182526020526040902090565b60008181526003602052604090205490915060ff1615610ec0576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060a001604052808b63ffffffff1681526020016000151581526020018a8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548160ff0219169083151502179055506040820151816001015560608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050503373ffffffffffffffffffffffffffffffffffffffff16888a7f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be60405160405180910390a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016111117ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff90931692909217949094178155604083015181850155606083015160809093015182167001000000000000000000000000000000000292909116919091176002909101556111d79043612214565b40600155565b6109b782826001610a70565b600281815481106111f957600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff16600281111561127e5761127e611f5e565b146112b5576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600287815481106112ca576112ca61222b565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506113297f0000000000000000000000000000000000000000000000000000000000000000600161225a565b6113c5826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611406576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080891561148c5761142a836fffffffffffffffffffffffffffffffff16611d6f565b67ffffffffffffffff16600003611463577f00000000000000000000000000000000000000000000000000000000000000009150611485565b61147e61147160018661233e565b865463ffffffff16611e15565b6001015491505b50836114a6565b846001015491506114a3846001611471919061236f565b90505b8189896040516114b79291906123a3565b6040518091039020146114f6576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b815260040161155c94939291906123fc565b6020604051808303816000875af115801561157b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159f919061242e565b60028481015492909114925060009161164a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6116e6886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6116f09190612447565b6116fa91906122a1565b67ffffffffffffffff161590508115158103611742576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000805468010000000000000000900460ff1660028111156117a2576117a2611f5e565b146117d9576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186a9190612468565b90508160010361190b576001546040517fe52f09370000000000000000000000000000000000000000000000000000000081526004810184905260248101919091526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064015b600060405180830381600087803b1580156118ef57600080fd5b505af1158015611903573d6000803e3d6000fd5b505050505050565b600282146109b757816003036119a5576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560248201526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064016118d5565b81600403611a3d576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013560c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064016118d5565b816005036109b7576040517fe52f0937000000000000000000000000000000000000000000000000000000008152600481018390524660c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064016118d5565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611adf610a5e565b9050909192565b600080611b73847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b606081600003611bde57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611c085780611bf28161249e565b9150611c019050600a836124d6565b9150611be2565b60008167ffffffffffffffff811115611c2357611c236124ea565b6040519080825280601f01601f191660200182016040528015611c4d576020820181803683370190505b5090505b8415611cd057611c62600183612214565b9150611c6f600a86612519565b611c7a90603061225a565b60f81b818381518110611c8f57611c8f61222b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611cc9600a866124d6565b9450611c51565b949350505050565b60606000611d0f84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900361225a565b90508267ffffffffffffffff1667ffffffffffffffff811115611d3457611d346124ea565b6040519080825280601f01601f191660200182016040528015611d5e576020820181803683370190505b509150828160208401375092915050565b600080611dfc837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080611e33846fffffffffffffffffffffffffffffffff16611eb2565b905060028381548110611e4857611e4861222b565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff828116911614611eab57815460028054909163ffffffff16908110611e9657611e9661222b565b90600052602060002090600302019150611e59565b5092915050565b60008119600183011681611f46827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310611fc8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60008060408385031215611fe157600080fd5b50508035926020909101359150565b60005b8381101561200b578181015183820152602001611ff3565b8381111561201a576000848401525b50505050565b60008151808452612038816020860160208601611ff0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061207d6020830184612020565b9392505050565b8035801515811461209457600080fd5b919050565b6000806000606084860312156120ae57600080fd5b83359250602084013591506120c560408501612084565b90509250925092565b6000602082840312156120e057600080fd5b5035919050565b60008083601f8401126120f957600080fd5b50813567ffffffffffffffff81111561211157600080fd5b60208301915083602082850101111561212957600080fd5b9250929050565b6000806000806000806080878903121561214957600080fd5b8635955061215960208801612084565b9450604087013567ffffffffffffffff8082111561217657600080fd5b6121828a838b016120e7565b9096509450606089013591508082111561219b57600080fd5b506121a889828a016120e7565b979a9699509497509295939492505050565b60ff841681528260208201526060604082015260006121dc6060830184612020565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612226576122266121e5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000821982111561226d5761226d6121e5565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff808416806122bc576122bc612272565b92169190910692915050565b600084516122da818460208901611ff0565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612316816001850160208a01611ff0565b60019201918201528351612331816002840160208801611ff0565b0160020195945050505050565b60006fffffffffffffffffffffffffffffffff83811690831681811015612367576123676121e5565b039392505050565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561239a5761239a6121e5565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006124106040830186886123b3565b82810360208401526124238185876123b3565b979650505050505050565b60006020828403121561244057600080fd5b5051919050565b600067ffffffffffffffff83811690831681811015612367576123676121e5565b60006020828403121561247a57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461207d57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036124cf576124cf6121e5565b5060010190565b6000826124e5576124e5612272565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008261252857612528612272
565b50069056fea164736f6c634300080f000a"
var
FaultDisputeGameDeployedBin
=
"0x6080604052600436106101
965760003560e01c80638980e0cc116100e1578063c31b29ce1161008a578063cf09e0d011610064578063cf09e0d014610546578063d8cc1a3c14610565578063f05a6c3914610585578063fa24f743146105a557600080fd5b8063c31b29ce1461049b578063c55cd0c7146104cf578063c6f0308c146104e257600080fd5b8063bbdc02db116100bb578063bbdc02db1461040e578063bcef3b551461042a578063c0c3a0921461046757600080fd5b80638980e0cc146103855780638b85902b1461039a57806392931298146103da57600080fd5b80634778efe811610143578063632247ea1161011d578063632247ea146103475780636361506d1461035a5780638129fc1c1461037057600080fd5b80634778efe8146102dc57806354fd4d5014610310578063609d33341461033257600080fd5b80633218b99d116101745780633218b99d1461022e57806335fef56714610268578063363cc4271461027d57600080fd5b8063200d2ed21461019b578063266198f9146101d75780632810e1d614610219575b600080fd5b3480156101a757600080fd5b506000546101c19068010000000000000000900460ff1681565b6040516101ce9190612143565b60405180910390f35b3480156101e357600080fd5b5061020b7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101ce565b34801561022557600080fd5b506101c16105c9565b34801561023a57600080fd5b5060005461024f9067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101ce565b61027b610276366004612184565b6109ea565b005b34801561028957600080fd5b506000546102b7906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ce565b3480156102e857600080fd5b5061020b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031c57600080fd5b506103256109fa565b6040516101ce9190612220565b34801561033e57600080fd5b50610325610a9d565b61027b61035536600461224f565b610aaf565b34801561036657600080fd5b5061020b60015481565b34801561037c57600080fd5b5061027b6110cb565b34801561039157600080fd5b5060025461020b565b3480156103a657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561020b565b3480156103e657600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b34801561041a57600080fd5b50604051600081526020016101ce565b34801561043657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561020b565b34801561047357600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a757600080fd5b5061024f7f000000000000000000000000000000000000000000000000000000000000000081565b61027b6104dd366004612184565b61121c565b3480156104ee57600080fd5b506105026104fd366004612284565b611228565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a0016101ce565b34801561055257600080fd5b5060005467ffffffffffffffff1661024f565b34801561057157600080fd5b5061027b6105803660046122e6565b611299565b34801561059157600080fd5b5061027b6105a0366004612284565b6117bd565b3480156105b157600080fd5b506105ba611c5e565b6040516101ce93929190612370565b60008060005468010000000000000000900460ff1660028111156105ef576105ef612114565b14610626576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600090610638906001906123ca565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff81101561072257600060028281548110610672576106726123e1565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff64010000000090910416156106c3575061064d565b6002810154600090610707906fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000611c9c565b90508381101561071b578093508260010194505b505061064d565b50600060028381548110610738576107386123e1565b600091825260208220600390910201805490925063ffffffff908116919082146107a2576002828154811061076f5761076f6123e1565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff166107ce565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661081267ffffffffffffffff8316426123ca565b61082e836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166108429190612410565b11610879576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028381015461091b906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6109259190612457565b67ffffffffffffffff1615801561094c57506fffffffffffffffffffffffffffffffff8414155b1561095a576002955061095f565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000008360028111156109a4576109a4612114565b0217905560028111156109b9576109b9612114565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b6109f682826000610aaf565b5050565b6060610a257f0000000000000000000000000000000000000000000000000000000000000000611d51565b610a4e7f0000000000000000000000000000000000000000000000000000000000000000611d51565b610a777f0000000000000000000000000000000000000000000000000000000000000000611d51565b604051602001610a899392919061247e565b604051602081830303815290604052905090565b6060610aaa602080611e8e565b905090565b6000805468010000000000000000900460ff166002811115610ad357610ad3612114565b14610b0a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610b16575080155b15610b4d576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610b6257610b626123e1565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff80821660608501527001000000000000000000000000000000009091041660808301528254919350919086908110610bfd57610bfd6123e1565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909316929092179091556060820151610c67906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f0000000000000000000000000000000000000000000000000000000000000000610d26826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115610d68576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614610dc8576002836000015163ffffffff1681548110610d9757610d976123e1565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642610e01846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610e159190612410565b610e1f91906123ca565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115610e92576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421790506000610eb3888660009182526020526040902090565b60008181526003602052604090205490915060ff1615610eff576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060a001604052808b63ffffffff1681526020016000151581526020018a8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548160ff0219169083151502179055506040820151816001015560608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050503373ffffffffffffffffffffffffffffffffffffffff16888a7f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be60405160405180910390a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016111507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff909316929092179490941781556040830151818501556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015561121690436123ca565b40600155565b6109f682826001610aaf565b6002818154811061123857600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff1660028111156112bd576112bd612114565b146112f4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028781548110611309576113096123e1565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506113687f00000000000000000000000000000000000000000000000000000000000000006001612410565b611404826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611445576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156114cb57611469836fffffffffffffffffffffffffffffffff16611f25565b67ffffffffffffffff166000036114a2577f000000000000000000000000000000000000000000000000000000000000000091506114c4565b6114bd6114b06001866124f4565b865463ffffffff16611fcb565b6001015491505b50836114e5565b846001015491506114e28460016114b09190612525565b90505b8189896040516114f6929190612559565b604051809103902014611535576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b815260040161159b94939291906125b2565b6020604051808303816000875af11580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de91906125e4565b600284810154929091149250600091611689906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611725886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61172f91906125fd565b6117399190612457565b67ffffffffffffffff161590508115158103611781576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000805468010000000000000000900460ff1660028111156117e1576117e1612114565b14611818576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a9919061261e565b90508160010361194a576001546040517fe52f09370000000000000000000000000000000000000000000000000000000081526004810184905260248101919091526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f0937906064015b600060405180830381600087803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b505050505050565b81600203611ac9576040517fcf8e5cf0000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135600482015260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cf8e5cf090602401606060405180830381865afa158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906126a3565b80516040517fe52f09370000000000000000000000000000000000000000000000000000000081526004810186905260248101919091526020604482015290915073ffffffffffffffffffffffffffffffffffffffff83169063e52f093790606401600060405180830381600087803b158015611aac57600080fd5b505af1158015611ac0573d6000803e3d6000fd5b50505050505050565b81600303611b5b576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560248201526020604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f093790606401611914565b81600403611bf3576040517fe52f093700000000000000000000000000000000000000000000000000000000815260048101839052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013560c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f093790606401611914565b816005036109f6576040517fe52f0937000000000000000000000000000000000000000000000000000000008152600481018390524660c01b60248201526008604482015273ffffffffffffffffffffffffffffffffffffffff82169063e52f093790606401611914565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611c95610a9d565b9050909192565b600080611d29847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b606081600003611d9457505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611dbe5780611da88161272f565b9150611db79050600a83612767565b9150611d98565b60008167ffffffffffffffff811115611dd957611dd9612654565b6040519080825280601f01601f191660200182016040528015611e03576020820181803683370190505b5090505b8415611e8657611e186001836123ca565b9150611e25600a8661277b565b611e30906030612410565b60f81b818381518110611e4557611e456123e1565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611e7f600a86612767565b9450611e07565b949350505050565b60606000611ec584367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003612410565b90508267ffffffffffffffff1667ffffffffffffffff811115611eea57611eea612654565b6040519080825280601f01601f191660200182016040528015611f14576020820181803683370190505b509150828160208401375092915050565b600080611fb2837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080611fe9846fffffffffffffffffffffffffffffffff16612068565b905060028381548110611ffe57611ffe6123e1565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461206157815460028054909163ffffffff1690811061204c5761204c6123e1565b9060005260206000209060030201915061200f565b5092915050565b600081196001830116816120fc827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061217e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561219757600080fd5b50508035926020909101359150565b60005b838110156121c15781810151838201526020016121a9565b838111156121d0576000848401525b50505050565b600081518084526121ee8160208601602086016121a6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061223360208301846121d6565b9392505050565b8035801515811461224a57600080fd5b919050565b60008060006060848603121561226457600080fd5b833592506020840135915061227b6040850161223a565b90509250925092565b60006020828403121561229657600080fd5b5035919050565b60008083601f8401126122af57600080fd5b50813567ffffffffffffffff8111156122c757600080fd5b6020830191508360208285010111156122df57600080fd5b9250929050565b600080600080600080608087890312156122ff57600080fd5b8635955061230f6020880161223a565b9450604087013567ffffffffffffffff8082111561232c57600080fd5b6123388a838b0161229d565b9096509450606089013591508082111561235157600080fd5b5061235e89828a0161229d565b979a9699509497509295939492505050565b60ff8416815282602082015260606040820152600061239260608301846121d6565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156123dc576123dc61239b565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082198211156124235761242361239b565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff8084168061247257612472612428565b92169190910692915050565b600084516124908184602089016121a6565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516124cc816001850160208a016121a6565b600192019182015283516124e78160028401602088016121a6565b0160020195945050505050565b60006fffffffffffffffffffffffffffffffff8381169083168181101561251d5761251d61239b565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156125505761255061239b565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006125c6604083018688612569565b82810360208401526125d9818587612569565b979650505050505050565b6000602082840312156125f657600080fd5b5051919050565b600067ffffffffffffffff8381169083168181101561251d5761251d61239b565b60006020828403121561263057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461223357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461224a57600080fd5b6000606082840312156126b557600080fd5b6040516060810181811067ffffffffffffffff821117156126ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528251815261271260208401612683565b602082015261272360408401612683565b60408201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127605761276061239b565b5060010190565b60008261277657612776612428565b500490565b60008261278a5761278a612428
565b50069056fea164736f6c634300080f000a"
func
init
()
{
if
err
:=
json
.
Unmarshal
([]
byte
(
FaultDisputeGameStorageLayoutJSON
),
FaultDisputeGameStorageLayout
);
err
!=
nil
{
...
...
packages/contracts-bedrock/.gas-snapshot
View file @
41dff4ad
...
...
@@ -85,35 +85,35 @@ FaucetTest:test_nonAdmin_drip_fails() (gas: 262520)
FaucetTest:test_receive_succeeds() (gas: 17401)
FaucetTest:test_withdraw_nonAdmin_reverts() (gas: 13145)
FaucetTest:test_withdraw_succeeds() (gas: 78359)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot1:test_resolvesCorrectly_succeeds() (gas: 50
1901
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot2:test_resolvesCorrectly_succeeds() (gas: 508
725
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot3:test_resolvesCorrectly_succeeds() (gas: 505
444
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot4:test_resolvesCorrectly_succeeds() (gas: 508
601
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot5:test_resolvesCorrectly_succeeds() (gas: 50
7940
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot1:test_resolvesCorrectly_succeeds() (gas: 500
666
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot2:test_resolvesCorrectly_succeeds() (gas: 507
490
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot3:test_resolvesCorrectly_succeeds() (gas: 504
209
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot4:test_resolvesCorrectly_succeeds() (gas: 505
366
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot5:test_resolvesCorrectly_succeeds() (gas: 504
705
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot1:test_resolvesCorrectly_succeeds() (gas: 50
2209
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot2:test_resolvesCorrectly_succeeds() (gas: 508
989
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot3:test_resolvesCorrectly_succeeds() (gas: 505
730
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot4:test_resolvesCorrectly_succeeds() (gas: 508
887
)
FaultDisputeGame_ResolvesCorrectly_CorrectRoot5:test_resolvesCorrectly_succeeds() (gas: 50
8226
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot1:test_resolvesCorrectly_succeeds() (gas: 500
974
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot2:test_resolvesCorrectly_succeeds() (gas: 507
754
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot3:test_resolvesCorrectly_succeeds() (gas: 504
495
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot4:test_resolvesCorrectly_succeeds() (gas: 505
652
)
FaultDisputeGame_ResolvesCorrectly_IncorrectRoot5:test_resolvesCorrectly_succeeds() (gas: 504
991
)
FaultDisputeGame_Test:test_extraData_succeeds() (gas: 17449)
FaultDisputeGame_Test:test_gameData_succeeds() (gas: 179
17
)
FaultDisputeGame_Test:test_gameData_succeeds() (gas: 179
39
)
FaultDisputeGame_Test:test_gameStart_succeeds() (gas: 10293)
FaultDisputeGame_Test:test_gameType_succeeds() (gas: 8238)
FaultDisputeGame_Test:test_initialRootClaimData_succeeds() (gas: 176
47
)
FaultDisputeGame_Test:test_move_clockCorrectness_succeeds() (gas: 419
119
)
FaultDisputeGame_Test:test_move_clockTimeExceeded_reverts() (gas: 263
77
)
FaultDisputeGame_Test:test_initialRootClaimData_succeeds() (gas: 176
69
)
FaultDisputeGame_Test:test_move_clockCorrectness_succeeds() (gas: 419
317
)
FaultDisputeGame_Test:test_move_clockTimeExceeded_reverts() (gas: 263
99
)
FaultDisputeGame_Test:test_move_defendRoot_reverts() (gas: 13338)
FaultDisputeGame_Test:test_move_duplicateClaim_reverts() (gas: 1040
32
)
FaultDisputeGame_Test:test_move_gameDepthExceeded_reverts() (gas: 411
30
4)
FaultDisputeGame_Test:test_move_gameNotInProgress_reverts() (gas: 109
46
)
FaultDisputeGame_Test:test_move_nonExistentParent_reverts() (gas: 246
11
)
FaultDisputeGame_Test:test_move_simpleAttack_succeeds() (gas: 1081
12
)
FaultDisputeGame_Test:test_resolve_challengeContested_succeeds() (gas: 2264
68
)
FaultDisputeGame_Test:test_move_duplicateClaim_reverts() (gas: 1040
76
)
FaultDisputeGame_Test:test_move_gameDepthExceeded_reverts() (gas: 411
41
4)
FaultDisputeGame_Test:test_move_gameNotInProgress_reverts() (gas: 109
68
)
FaultDisputeGame_Test:test_move_nonExistentParent_reverts() (gas: 246
33
)
FaultDisputeGame_Test:test_move_simpleAttack_succeeds() (gas: 1081
78
)
FaultDisputeGame_Test:test_resolve_challengeContested_succeeds() (gas: 2264
90
)
FaultDisputeGame_Test:test_resolve_notInProgress_reverts() (gas: 9702)
FaultDisputeGame_Test:test_resolve_rootContested_succeeds() (gas: 1106
21
)
FaultDisputeGame_Test:test_resolve_rootContested_succeeds() (gas: 1106
43
)
FaultDisputeGame_Test:test_resolve_rootUncontestedClockNotExpired_succeeds() (gas: 21482)
FaultDisputeGame_Test:test_resolve_rootUncontested_succeeds() (gas: 27311)
FaultDisputeGame_Test:test_resolve_teamDeathmatch_succeeds() (gas: 3987
50
)
FaultDisputeGame_Test:test_resolve_teamDeathmatch_succeeds() (gas: 3987
94
)
FaultDisputeGame_Test:test_rootClaim_succeeds() (gas: 8203)
FeeVault_Test:test_constructor_succeeds() (gas: 18185)
GasBenchMark_L1CrossDomainMessenger:test_sendMessage_benchmark_0() (gas: 352113)
...
...
packages/contracts-bedrock/scripts/Deploy.s.sol
View file @
41dff4ad
...
...
@@ -698,7 +698,8 @@ contract Deploy is Deployer {
_absolutePrestate: absolutePrestate,
_maxGameDepth: cfg.faultGameMaxDepth(),
_gameDuration: Duration.wrap(uint64(cfg.faultGameMaxDuration())),
_vm: faultVm
_vm: faultVm,
_l2OO: L2OutputOracle(mustGetAddress("L2OutputOracleProxy"))
}));
console.log("DisputeGameFactory: set `FaultDisputeGame` implementation");
}
...
...
packages/contracts-bedrock/src/cannon/PreimageKeyLib.sol
View file @
41dff4ad
...
...
@@ -36,11 +36,7 @@ library PreimageKeyLib {
/// @notice Computes and returns the key for a global keccak pre-image.
/// @param _preimage The pre-image.
/// @return key_ The pre-image key.
function keccak256PreimageKey(bytes memory _preimage)
internal
pure
returns (bytes32 key_)
{
function keccak256PreimageKey(bytes memory _preimage) internal pure returns (bytes32 key_) {
assembly {
// Grab the size of the `_preimage`
let size := mload(_preimage)
...
...
packages/contracts-bedrock/src/cannon/PreimageOracle.sol
View file @
41dff4ad
...
...
@@ -71,7 +71,11 @@ contract PreimageOracle {
/// │ 4 │ L2 Block Number │
/// │ 5 │ Chain ID │
/// └────────────┴─────────────────┘
function loadLocalData(uint256 _ident, bytes32 _word, uint8 _size) external {
function loadLocalData(
uint256 _ident,
bytes32 _word,
uint8 _size
) external {
// Compute the localized key from the given local identifier.
bytes32 key = PreimageKeyLib.localizeIdent(_ident);
...
...
packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol
View file @
41dff4ad
...
...
@@ -6,8 +6,10 @@ import { IFaultDisputeGame } from "./interfaces/IFaultDisputeGame.sol";
import { IInitializable } from "./interfaces/IInitializable.sol";
import { IBondManager } from "./interfaces/IBondManager.sol";
import { IBigStepper, IPreimageOracle } from "./interfaces/IBigStepper.sol";
import { L2OutputOracle } from "../L1/L2OutputOracle.sol";
import { Clone } from "../libraries/Clone.sol";
import { Types } from "../libraries/Types.sol";
import { Semver } from "../universal/Semver.sol";
import { LibHashing } from "./lib/LibHashing.sol";
import { LibPosition } from "./lib/LibPosition.sol";
...
...
@@ -33,9 +35,12 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
/// @notice The duration of the game.
Duration public immutable GAME_DURATION;
/// @notice A
hypervisor
that performs single instruction steps on a fault proof program trace.
/// @notice A
n onchain VM
that performs single instruction steps on a fault proof program trace.
IBigStepper public immutable VM;
/// @notice The trusted L2OutputOracle contract.
L2OutputOracle public immutable L2_OUTPUT_ORACLE;
/// @notice The root claim's position is always at gindex 1.
Position internal constant ROOT_POSITION = Position.wrap(1);
...
...
@@ -62,12 +67,14 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
Claim _absolutePrestate,
uint256 _maxGameDepth,
Duration _gameDuration,
IBigStepper _vm
IBigStepper _vm,
L2OutputOracle _l2oo
) Semver(0, 0, 3) {
ABSOLUTE_PRESTATE = _absolutePrestate;
MAX_GAME_DEPTH = _maxGameDepth;
GAME_DURATION = _gameDuration;
VM = _vm;
L2_OUTPUT_ORACLE = _l2oo;
}
////////////////////////////////////////////////////////////////
...
...
@@ -256,7 +263,10 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, Semver {
} else if (_ident == 2) {
// Load the earliest output root that commits to the passed L2 block number
// into the game's local context in the preimage oracle.
// TODO(clabby): Add an immutable for the L2OO.
Types.OutputProposal memory proposal = L2_OUTPUT_ORACLE.getL2OutputAfter(
l2BlockNumber()
);
oracle.loadLocalData(_ident, proposal.outputRoot, 32);
} else if (_ident == 3) {
// Load the root claim into the game's local context in the preimage oracle.
oracle.loadLocalData(_ident, Claim.unwrap(rootClaim()), 32);
...
...
packages/contracts-bedrock/src/dispute/interfaces/IBigStepper.sol
View file @
41dff4ad
...
...
@@ -39,5 +39,9 @@ interface IBigStepper {
/// @notice Temporary interface for the `IPreimageOracle`. Remove once we've upgraded
/// the cannon contracts to a newer version of solc.
interface IPreimageOracle {
function loadLocalData(uint256 _ident, bytes32 _word, uint8 _size) external;
function loadLocalData(
uint256 _ident,
bytes32 _word,
uint8 _size
) external;
}
packages/contracts-bedrock/test/FaultDisputeGame.t.sol
View file @
41dff4ad
...
...
@@ -4,8 +4,9 @@ pragma solidity ^0.8.15;
import { Test } from "forge-std/Test.sol";
import { Vm } from "forge-std/Vm.sol";
import { DisputeGameFactory_Init } from "./DisputeGameFactory.t.sol";
import { DisputeGameFactory } from "../src/dispute/DisputeGameFactory.sol";
import { FaultDisputeGame } from "../src/dispute/FaultDisputeGame.sol";
import { DisputeGameFactory } from "../dispute/DisputeGameFactory.sol";
import { FaultDisputeGame } from "../dispute/FaultDisputeGame.sol";
import { L2OutputOracle } from "../L1/L2OutputOracle.sol";
import "../libraries/DisputeTypes.sol";
import "../libraries/DisputeErrors.sol";
...
...
@@ -28,12 +29,14 @@ contract FaultDisputeGame_Init is DisputeGameFactory_Init {
function init(Claim rootClaim, Claim absolutePrestate) public {
super.setUp();
// Deploy an implementation of the fault game
gameImpl = new FaultDisputeGame(
absolutePrestate,
4,
Duration.wrap(7 days),
new AlphabetVM(absolutePrestate)
new AlphabetVM(absolutePrestate),
L2OutputOracle(deployNoop())
);
// Register the game implementation with the factory.
factory.setImplementation(GAME_TYPE, gameImpl);
...
...
@@ -893,12 +896,7 @@ contract AlphabetVM is IBigStepper {
constructor(Claim _absolutePrestate) {
ABSOLUTE_PRESTATE = _absolutePrestate;
// Deploy a noop preimage oracle
assembly {
mstore(0x00, 0x60016000F3)
let size := 5
sstore(oracle.slot, create(0, sub(0x20, size), size))
}
oracle = IPreimageOracle(deployNoop());
}
/// @inheritdoc IBigStepper
...
...
@@ -922,3 +920,16 @@ contract AlphabetVM is IBigStepper {
postState_ = keccak256(abi.encode(traceIndex, claim + 1));
}
}
////////////////////////////////////////////////////////////////
// HELPERS //
////////////////////////////////////////////////////////////////
/// @notice Deploys a noop contract.
function deployNoop() returns (address noop_) {
assembly {
mstore(0x00, 0x60016000F3)
let size := 5
noop_ := create(0, sub(0x20, size), size)
}
}
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