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
cbb7c3b2
Unverified
Commit
cbb7c3b2
authored
Feb 13, 2024
by
clabby
Committed by
GitHub
Feb 13, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(ctb): Set L1 head hash in DGF rather than the FDG (#9499)
* Set L1 head in dispute game factory * semver
parent
70bd6234
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
51 additions
and
59 deletions
+51
-59
disputegamefactory.go
op-bindings/bindings/disputegamefactory.go
+1
-1
disputegamefactory_more.go
op-bindings/bindings/disputegamefactory_more.go
+1
-1
faultdisputegame.go
op-bindings/bindings/faultdisputegame.go
+5
-5
faultdisputegame_more.go
op-bindings/bindings/faultdisputegame_more.go
+2
-2
semver-lock.json
packages/contracts-bedrock/semver-lock.json
+4
-4
FaultDisputeGame.json
...ges/contracts-bedrock/snapshots/abi/FaultDisputeGame.json
+2
-2
PermissionedDisputeGame.json
...tracts-bedrock/snapshots/abi/PermissionedDisputeGame.json
+2
-2
FaultDisputeGame.json
...cts-bedrock/snapshots/storageLayout/FaultDisputeGame.json
+6
-13
PermissionedDisputeGame.json
...rock/snapshots/storageLayout/PermissionedDisputeGame.json
+6
-13
DisputeGameFactory.sol
...ages/contracts-bedrock/src/dispute/DisputeGameFactory.sol
+6
-3
FaultDisputeGame.sol
packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol
+12
-13
DisputeGameFactory.t.sol
...s/contracts-bedrock/test/dispute/DisputeGameFactory.t.sol
+4
-0
No files found.
op-bindings/bindings/disputegamefactory.go
View file @
cbb7c3b2
...
...
@@ -40,7 +40,7 @@ type IDisputeGameFactoryGameSearchResult struct {
// DisputeGameFactoryMetaData contains all meta data concerning the DisputeGameFactory contract.
var
DisputeGameFactoryMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
type
\"
:
\"
constructor
\"
,
\"
inputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
create
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
proxy_
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIDisputeGame
\"
}],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
findLatestGames
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_start
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_n
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
games_
\"
,
\"
type
\"
:
\"
tuple[]
\"
,
\"
internalType
\"
:
\"
structIDisputeGameFactory.GameSearchResult[]
\"
,
\"
components
\"
:[{
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
metadata
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
GameId
\"
},{
\"
name
\"
:
\"
timestamp
\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Timestamp
\"
},{
\"
name
\"
:
\"
rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
extraData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}]}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameAtIndex
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_index
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
timestamp_
\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Timestamp
\"
},{
\"
name
\"
:
\"
proxy_
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIDisputeGame
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameCount
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameCount_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameImpls
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIDisputeGame
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
games
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
proxy_
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIDisputeGame
\"
},{
\"
name
\"
:
\"
timestamp_
\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Timestamp
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
getGameUUID
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
_extraData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
uuid_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
initBonds
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
initialize
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_owner
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
owner
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
renounceOwnership
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
setImplementation
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_impl
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIDisputeGame
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
setInitBond
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_initBond
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
transferOwnership
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
newOwner
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
version
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
,
\"
internalType
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
DisputeGameCreated
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
disputeProxy
\"
,
\"
type
\"
:
\"
address
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
ImplementationSet
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
impl
\"
,
\"
type
\"
:
\"
address
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
GameType
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
InitBondUpdated
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
newBond
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
Initialized
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
version
\"
,
\"
type
\"
:
\"
uint8
\"
,
\"
indexed
\"
:false,
\"
internalType
\"
:
\"
uint8
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
OwnershipTransferred
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
previousOwner
\"
,
\"
type
\"
:
\"
address
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
newOwner
\"
,
\"
type
\"
:
\"
address
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
GameAlreadyExists
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
uuid
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
}]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InsufficientBond
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
NoImplementation
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
}]}]"
,
Bin
:
"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000292565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016260201b62000c
c91760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b6200010c62000171565b6200011782620001d9565b80156200015e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001cd5760405162461bcd60e51b815260206004820152602b6024820152600080516020620017e683398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d76200022b565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620002875760405162461bcd60e51b815260206004820152602b6024820152600080516020620017e683398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d733620001d9565b61154480620002a26000396000f3fe6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d610108366004611086565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110bd565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d6101973660046110d8565b61045e565b3480156101a857600080fd5b506101bc6101b7366004611102565b6104aa565b60405161017391906111af565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b604051610173919061126c565b34801561024a57600080fd5b5061025e61025936600461127f565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110bd565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e336600461127f565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e36600461127f565b6109db565b34801561033f57600080fd5b5061035361034e366004611306565b610a14565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af36600461131f565b610a76565b3480156103c057600080fd5b5061010d6103cf36600461131f565b610c12565b6103dc610ce5565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610ce5565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f061133c565b600091825260209091200154905060e081901c67ffffffffffffffff60a083901c1673ffffffffffffffffffffffffffffffffffffffff831660ff808a16908416036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d0919081019061139a565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106439190611465565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a51610685919061147e565b815181106106955761069561133c565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109db565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610ce5565b6107536000610d66565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff8616600090815260666020526040902054341015610814576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087785858560405160200161082c939291906114bc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff831690610ddd565b91508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108c157600080fd5b505af11580156108d5573d6000803e3d6000fd5b505050505060006108e8878787876109db565b60008181526067602052604090205490915015610934576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e089901b178417600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250889163ffffffff8b169173ffffffffffffffffffffffffffffffffffffffff8816917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a4505050949350505050565b6000848484846040516020016109f494939291906114d6565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a6960688581548110610a2f57610a2f61133c565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610a965750600054600160ff909116105b80610ab05750303b158015610ab0575060005460ff166001145b610b3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b9a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610ba2610f11565b610bab82610d66565b8015610c0e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c1a610ce5565b73ffffffffffffffffffffffffffffffffffffffff8116610cbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cc681610d66565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610e9557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610e58565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610f02577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b600054610100900460ff16610fa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753600054610100900460ff16611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d66565b803563ffffffff8116811461105f57600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cc657600080fd5b6000806040838503121561109957600080fd5b6110a28361104b565b915060208301356110b281611064565b809150509250929050565b6000602082840312156110cf57600080fd5b6106e78261104b565b600080604083850312156110eb57600080fd5b6110f48361104b565b946020939093013593505050565b60008060006060848603121561111757600080fd5b6111208461104b565b95602085013595506040909401359392505050565b60005b83811015611150578181015183820152602001611138565b8381111561115f576000848401525b50505050565b6000815180845261117d816020860160208601611135565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561125e578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a09185018290529061124a81860183611165565b9689019694505050908601906001016111d6565b509098975050505050505050565b6020815260006106e76020830184611165565b6000806000806060858703121561129557600080fd5b61129e8561104b565b935060208501359250604085013567ffffffffffffffff808211156112c257600080fd5b818701915087601f8301126112d657600080fd5b8135818111156112e557600080fd5b8860208285010111156112f757600080fd5b95989497505060200194505050565b60006020828403121561131857600080fd5b5035919050565b60006020828403121561133157600080fd5b81356106e781611064565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113ac57600080fd5b815167ffffffffffffffff808211156113c457600080fd5b818401915084601f8301126113d857600080fd5b8151818111156113ea576113ea61136b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156114305761143061136b565b8160405282815287602084870101111561144957600080fd5b61145a836020830160208801611135565b979650505050505050565b60006020828403121561147757600080fd5b5051919050565b6000828210156114b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b83815281836020830137600091016020019081529291
5050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069"
,
Bin
:
"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000292565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016260201b62000c
dc1760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b6200010c62000171565b6200011782620001d9565b80156200015e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001cd5760405162461bcd60e51b815260206004820152602b60248201526000805160206200180083398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d76200022b565b565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16620002875760405162461bcd60e51b815260206004820152602b60248201526000805160206200180083398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b620001d733620001d9565b61155e80620002a26000396000f3fe6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d610108366004611099565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110d0565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d6101973660046110eb565b61045e565b3480156101a857600080fd5b506101bc6101b7366004611115565b6104aa565b60405161017391906111c2565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e322e3000000000000000000000000000000000000000000000000000000081525081565b604051610173919061127f565b34801561024a57600080fd5b5061025e610259366004611292565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110d0565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e3366004611292565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e366004611292565b6109ee565b34801561033f57600080fd5b5061035361034e366004611319565b610a27565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af366004611332565b610a89565b3480156103c057600080fd5b5061010d6103cf366004611332565b610c25565b6103dc610cf8565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610cf8565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f061134f565b600091825260209091200154905060e081901c67ffffffffffffffff60a083901c1673ffffffffffffffffffffffffffffffffffffffff831660ff808a16908416036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d091908101906113ad565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106439190611478565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a516106859190611491565b815181106106955761069561134f565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109ee565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610cf8565b6107536000610d79565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff8616600090815260666020526040902054341015610814576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610821600143611491565b4090506108898682878760405160200161083e94939291906114cf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff841690610df0565b92508273ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b505050505060006108fa888888886109ee565b60008181526067602052604090205490915015610946576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e08a901b178517600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250899163ffffffff8c169173ffffffffffffffffffffffffffffffffffffffff8916917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050949350505050565b600084848484604051602001610a0794939291906114f0565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a7c60688581548110610a4257610a4261134f565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610aa95750600054600160ff909116105b80610ac35750303b158015610ac3575060005460ff166001145b610b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bad57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610bb5610f24565b610bbe82610d79565b8015610c2157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c2d610cf8565b73ffffffffffffffffffffffffffffffffffffffff8116610cd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cd981610d79565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610ea857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610e6b565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610f15577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b600054610100900460ff16610fbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753600054610100900460ff16611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d79565b803563ffffffff8116811461107257600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cd957600080fd5b600080604083850312156110ac57600080fd5b6110b58361105e565b915060208301356110c581611077565b809150509250929050565b6000602082840312156110e257600080fd5b6106e78261105e565b600080604083850312156110fe57600080fd5b6111078361105e565b946020939093013593505050565b60008060006060848603121561112a57600080fd5b6111338461105e565b95602085013595506040909401359392505050565b60005b8381101561116357818101518382015260200161114b565b83811115611172576000848401525b50505050565b60008151808452611190816020860160208601611148565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611271578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a09185018290529061125d81860183611178565b9689019694505050908601906001016111e9565b509098975050505050505050565b6020815260006106e76020830184611178565b600080600080606085870312156112a857600080fd5b6112b18561105e565b935060208501359250604085013567ffffffffffffffff808211156112d557600080fd5b818701915087601f8301126112e957600080fd5b8135818111156112f857600080fd5b88602082850101111561130a57600080fd5b95989497505060200194505050565b60006020828403121561132b57600080fd5b5035919050565b60006020828403121561134457600080fd5b81356106e781611077565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113bf57600080fd5b815167ffffffffffffffff808211156113d757600080fd5b818401915084601f8301126113eb57600080fd5b8151818111156113fd576113fd61137e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156114435761144361137e565b8160405282815287602084870101111561145c57600080fd5b61146d836020830160208801611148565b979650505050505050565b60006020828403121561148a57600080fd5b5051919050565b6000828210156114ca577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b8481528360208201528183604083013760009101604001908152939250
5050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069"
,
}
// DisputeGameFactoryABI is the input ABI used to generate the binding from.
...
...
op-bindings/bindings/disputegamefactory_more.go
View file @
cbb7c3b2
...
...
@@ -13,7 +13,7 @@ const DisputeGameFactoryStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"con
var
DisputeGameFactoryStorageLayout
=
new
(
solc
.
StorageLayout
)
var
DisputeGameFactoryDeployedBin
=
"0x6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d6101083660046110
86565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110bd565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d6101973660046110d8565b61045e565b3480156101a857600080fd5b506101bc6101b7366004611102565b6104aa565b60405161017391906111af565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b604051610173919061126c565b34801561024a57600080fd5b5061025e61025936600461127f565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110bd565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e336600461127f565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e36600461127f565b6109db565b34801561033f57600080fd5b5061035361034e366004611306565b610a14565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af36600461131f565b610a76565b3480156103c057600080fd5b5061010d6103cf36600461131f565b610c12565b6103dc610ce5565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610ce5565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f061133c565b600091825260209091200154905060e081901c67ffffffffffffffff60a083901c1673ffffffffffffffffffffffffffffffffffffffff831660ff808a16908416036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d0919081019061139a565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106439190611465565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a51610685919061147e565b815181106106955761069561133c565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109db565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610ce5565b6107536000610d66565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff8616600090815260666020526040902054341015610814576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087785858560405160200161082c939291906114bc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff831690610ddd565b91508173ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108c157600080fd5b505af11580156108d5573d6000803e3d6000fd5b505050505060006108e8878787876109db565b60008181526067602052604090205490915015610934576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e089901b178417600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250889163ffffffff8b169173ffffffffffffffffffffffffffffffffffffffff8816917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a4505050949350505050565b6000848484846040516020016109f494939291906114d6565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a6960688581548110610a2f57610a2f61133c565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610a965750600054600160ff909116105b80610ab05750303b158015610ab0575060005460ff166001145b610b3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610b9a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610ba2610f11565b610bab82610d66565b8015610c0e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c1a610ce5565b73ffffffffffffffffffffffffffffffffffffffff8116610cbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cc681610d66565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610e9557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610e58565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610f02577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b600054610100900460ff16610fa8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753600054610100900460ff16611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d66565b803563ffffffff8116811461105f57600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cc657600080fd5b6000806040838503121561109957600080fd5b6110a28361104b565b915060208301356110b281611064565b809150509250929050565b6000602082840312156110cf57600080fd5b6106e78261104b565b600080604083850312156110eb57600080fd5b6110f48361104b565b946020939093013593505050565b60008060006060848603121561111757600080fd5b6111208461104b565b95602085013595506040909401359392505050565b60005b83811015611150578181015183820152602001611138565b8381111561115f576000848401525b50505050565b6000815180845261117d816020860160208601611135565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561125e578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a09185018290529061124a81860183611165565b9689019694505050908601906001016111d6565b509098975050505050505050565b6020815260006106e76020830184611165565b6000806000806060858703121561129557600080fd5b61129e8561104b565b935060208501359250604085013567ffffffffffffffff808211156112c257600080fd5b818701915087601f8301126112d657600080fd5b8135818111156112e557600080fd5b8860208285010111156112f757600080fd5b95989497505060200194505050565b60006020828403121561131857600080fd5b5035919050565b60006020828403121561133157600080fd5b81356106e781611064565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113ac57600080fd5b815167ffffffffffffffff808211156113c457600080fd5b818401915084601f8301126113d857600080fd5b8151818111156113ea576113ea61136b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156114305761143061136b565b8160405282815287602084870101111561144957600080fd5b61145a836020830160208801611135565b979650505050505050565b60006020828403121561147757600080fd5b5051919050565b6000828210156114b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b83815281836020830137600091016020019081529291
5050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a"
var
DisputeGameFactoryDeployedBin
=
"0x6080604052600436106100e85760003560e01c80636593dc6e1161008a57806396cd97201161005957806396cd972014610313578063bb8aa1fc14610333578063c4d66de814610394578063f2fde38b146103b457600080fd5b80636593dc6e14610293578063715018a6146102c057806382ecf2f6146102d55780638da5cb5b146102e857600080fd5b8063254bd683116100c6578063254bd6831461019c5780634d1975b4146101c957806354fd4d50146101e85780635f0150cb1461023e57600080fd5b806314f6b1a3146100ed5780631b685b9e1461010f5780631e3342401461017c575b600080fd5b3480156100f957600080fd5b5061010d6101083660046110
99565b6103d4565b005b34801561011b57600080fd5b5061015261012a3660046110d0565b60656020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561018857600080fd5b5061010d6101973660046110eb565b61045e565b3480156101a857600080fd5b506101bc6101b7366004611115565b6104aa565b60405161017391906111c2565b3480156101d557600080fd5b506068545b604051908152602001610173565b3480156101f457600080fd5b506102316040518060400160405280600581526020017f302e322e3000000000000000000000000000000000000000000000000000000081525081565b604051610173919061127f565b34801561024a57600080fd5b5061025e610259366004611292565b6106ee565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff909116602083015201610173565b34801561029f57600080fd5b506101da6102ae3660046110d0565b60666020526000908152604090205481565b3480156102cc57600080fd5b5061010d610741565b6101526102e3366004611292565b610755565b3480156102f457600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610152565b34801561031f57600080fd5b506101da61032e366004611292565b6109ee565b34801561033f57600080fd5b5061035361034e366004611319565b610a27565b6040805163ffffffff909416845267ffffffffffffffff909216602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001610173565b3480156103a057600080fd5b5061010d6103af366004611332565b610a89565b3480156103c057600080fd5b5061010d6103cf366004611332565b610c25565b6103dc610cf8565b63ffffffff821660008181526065602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917fff513d80e2c7fa487608f70a618dfbc0cf415699dc69588c747e8c71566c88de91a35050565b610466610cf8565b63ffffffff8216600081815260666020526040808220849055518392917f74d6665c4b26d5596a5aa13d3014e0c06af4d322075a797f87b03cd4c5bc91ca91a35050565b606854606090831015806104bc575081155b6106e7575060408051600583901b8101602001909152825b8381116106e5576000606882815481106104f0576104f061134f565b600091825260209091200154905060e081901c67ffffffffffffffff60a083901c1673ffffffffffffffffffffffffffffffffffffffff831660ff808a16908416036106b6576001865101865260008173ffffffffffffffffffffffffffffffffffffffff1663609d33346040518163ffffffff1660e01b8152600401600060405180830381865afa15801561058a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d091908101906113ad565b905060008273ffffffffffffffffffffffffffffffffffffffff1663bcef3b556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106439190611478565b90506040518060a001604052808881526020018781526020018567ffffffffffffffff168152602001828152602001838152508860018a516106859190611491565b815181106106955761069561134f565b6020026020010181905250888851106106b3575050505050506106e5565b50505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191506104d49050565b505b9392505050565b60008060006106ff878787876109ee565b60009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff81169860a09190911c67ffffffffffffffff16975095505050505050565b610749610cf8565b6107536000610d79565b565b63ffffffff841660009081526065602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107c5576040517f031c6de400000000000000000000000000000000000000000000000000000000815263ffffffff871660048201526024015b60405180910390fd5b63ffffffff8616600090815260666020526040902054341015610814576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610821600143611491565b4090506108898682878760405160200161083e94939291906114cf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905273ffffffffffffffffffffffffffffffffffffffff841690610df0565b92508273ffffffffffffffffffffffffffffffffffffffff16638129fc1c346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b505050505060006108fa888888886109ee565b60008181526067602052604090205490915015610946576040517f014f6fe5000000000000000000000000000000000000000000000000000000008152600481018290526024016107bc565b60004260a01b60e08a901b178517600083815260676020526040808220839055606880546001810182559083527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530183905551919250899163ffffffff8c169173ffffffffffffffffffffffffffffffffffffffff8916917f5b565efe82411da98814f356d0e7bcb8f0219b8d970307c5afb4a6903a8b2e359190a450505050949350505050565b600084848484604051602001610a0794939291906114f0565b604051602081830303815290604052805190602001209050949350505050565b6000806000610a7c60688581548110610a4257610a4261134f565b906000526020600020015460e081901c9160a082901c67ffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff1690565b9196909550909350915050565b600054610100900460ff1615808015610aa95750600054600160ff909116105b80610ac35750303b158015610ac3575060005460ff166001145b610b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107bc565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610bad57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610bb5610f24565b610bbe82610d79565b8015610c2157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b610c2d610cf8565b73ffffffffffffffffffffffffffffffffffffffff8116610cd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bc565b610cd981610d79565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60335473ffffffffffffffffffffffffffffffffffffffff163314610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bc565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006002825101603f8101600a81036040518360581b8260e81b177f6100003d81600a3d39f3363d3d373d3d3d3d610000806035363936013d7300001781528660601b601e8201527f5af43d3d93803e603357fd5bf300000000000000000000000000000000000000603282015285519150603f8101602087015b60208410610ea857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610e6b565b517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602085900360031b1b16815260f085901b9083015282816000f0945084610f15577febfef1880000000000000000000000000000000000000000000000000000000060005260206000fd5b90910160405250909392505050565b600054610100900460ff16610fbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b610753600054610100900460ff16611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107bc565b61075333610d79565b803563ffffffff8116811461107257600080fd5b919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610cd957600080fd5b600080604083850312156110ac57600080fd5b6110b58361105e565b915060208301356110c581611077565b809150509250929050565b6000602082840312156110e257600080fd5b6106e78261105e565b600080604083850312156110fe57600080fd5b6111078361105e565b946020939093013593505050565b60008060006060848603121561112a57600080fd5b6111338461105e565b95602085013595506040909401359392505050565b60005b8381101561116357818101518382015260200161114b565b83811115611172576000848401525b50505050565b60008151808452611190816020860160208601611148565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611271578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001855281518051845287810151888501528681015167ffffffffffffffff16878501526060808201519085015260809081015160a09185018290529061125d81860183611178565b9689019694505050908601906001016111e9565b509098975050505050505050565b6020815260006106e76020830184611178565b600080600080606085870312156112a857600080fd5b6112b18561105e565b935060208501359250604085013567ffffffffffffffff808211156112d557600080fd5b818701915087601f8301126112e957600080fd5b8135818111156112f857600080fd5b88602082850101111561130a57600080fd5b95989497505060200194505050565b60006020828403121561132b57600080fd5b5035919050565b60006020828403121561134457600080fd5b81356106e781611077565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156113bf57600080fd5b815167ffffffffffffffff808211156113d757600080fd5b818401915084601f8301126113eb57600080fd5b8151818111156113fd576113fd61137e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156114435761144361137e565b8160405282815287602084870101111561145c57600080fd5b61146d836020830160208801611148565b979650505050505050565b60006020828403121561148a57600080fd5b5051919050565b6000828210156114ca577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b8481528360208201528183604083013760009101604001908152939250
5050565b63ffffffff8516815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101939250505056fea164736f6c634300080f000a"
func
init
()
{
...
...
op-bindings/bindings/faultdisputegame.go
View file @
cbb7c3b2
...
...
@@ -30,8 +30,8 @@ var (
// FaultDisputeGameMetaData contains all meta data concerning the FaultDisputeGame contract.
var
FaultDisputeGameMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
type
\"
:
\"
constructor
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_absolutePrestate
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
_genesisBlockNumber
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_genesisOutputRoot
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
},{
\"
name
\"
:
\"
_maxGameDepth
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_splitDepth
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_gameDuration
\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Duration
\"
},{
\"
name
\"
:
\"
_vm
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIBigStepper
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
absolutePrestate
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
absolutePrestate_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
addLocalData
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_execLeafIdx
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
attack
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimCredit
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_recipient
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimData
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
},{
\"
name
\"
:
\"
counteredBy
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
bond
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
uint128
\"
},{
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
position
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
Position
\"
},{
\"
name
\"
:
\"
clock
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
Clock
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimDataLen
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimedBondFlag
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
claimedBondFlag_
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
uint128
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
createdAt
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Timestamp
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
credit
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
defend
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameData
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameDuration
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameDuration_
\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Duration
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
genesisBlockNumber
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
genesisBlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
genesisOutputRoot
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
genesisOutputRoot_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
getRequiredBond
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_position
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
Position
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
requiredBond_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
initialize
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
l1Head
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
l2BlockNumber
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
l2BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
maxGameDepth
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
maxGameDepth_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
move
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_challengeIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
resolve
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
status_
\"
,
\"
type
\"
:
\"
uint8
\"
,
\"
internalType
\"
:
\"
enumGameStatus
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
resolveClaim
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
resolvedAt
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Timestamp
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
rootClaim
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
splitDepth
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
splitDepth_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
status
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
,
\"
internalType
\"
:
\"
enumGameStatus
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
step
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
},{
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
version
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
,
\"
internalType
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
vm
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
vm_
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIBigStepper
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
Move
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
Resolved
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
status
\"
,
\"
type
\"
:
\"
uint8
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
enumGameStatus
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
AlreadyInitialized
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
BondTransferFailed
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
CannotDefendRootClaim
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClaimAboveSplit
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClaimAlreadyExists
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClaimAlreadyResolved
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClockNotExpired
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClockTimeExceeded
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
GameDepthExceeded
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
GameNotInProgress
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InsufficientBond
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidLocalIdent
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidParent
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidPrestate
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidSplitDepth
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
OutOfOrderResolution
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
UnexpectedRootClaim
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ValidStep
\"
,
\"
inputs
\"
:[]}]"
,
Bin
:
"0x6101806040523480156200001257600080fd5b5060405162003
ac138038062003ac183398101604081905262000035916200009b565b838310620000565760405163e62ccf3960e01b815260040160405180910390fd5b63ffffffff90971661016052608095909552610120939093526101409190915260a05260c0526001600160401b031660e0526001600160a01b03166101005262000140565b600080600080600080600080610100898b031215620000b957600080fd5b885163ffffffff81168114620000ce57600080fd5b60208a015160408b015160608c015160808d015160a08e015160c08f0151959d50939b509199509750955093506001600160401b03811681146200011157600080fd5b60e08a01519092506001600160a01b03811681146200012f57600080fd5b809150509295985092959890939650565b60805160a05160c05160e0516101005161012051610140516101605161388162000240600039600081816104a90152611fce0152600081816103de0152612c240152600081816101ec0152818161120001528181611e020152611e380152600081816102f1015281816118ec0152611bf101526000818161064b01528181610ded015261212c01526000818161067e01528181610c1c01528181610ce50152818161174701528181611dd80152818161256d015281816127b0015281816128de015281816129e60152612ac201526000818161072001528181610c8801528181611636015261176801526000818161046e01526117fe01526138816000f3fe6080604052600436106101d85760003560e01c80638d450a9511610102578063d8cc1a3c11610095578063f8f43ff611610064578063f8f43ff6146106cd578063fa24f743146106ed578063fa315aa914610711578063fdffbb281461074457600080fd5b8063d8cc1a3c1461061c578063e1f0c3761461063c578063ec5e63081461066f578063f3f7214e146106a257600080fd5b8063c55cd0c7116100d1578063c55cd0c714610531578063c6f0308c14610544578063cf09e0d0146105ce578063d5d44d80146105ef57600080fd5b80638d450a951461045f578063bbdc02db14610492578063bcef3b55146104d3578063c395e1ca1461051057600080fd5b8063609d33341161017a57806368800abf1161014957806368800abf146103cf5780638129fc1c146104025780638980e0cc1461040a5780638b85902b1461041f57600080fd5b8063609d33341461037157806360e2746414610386578063632247ea146103a65780636361506d146103b957600080fd5b80632810e1d6116101b65780632810e1d6146102a057806335fef567146102b55780633a768463146102ca57806354fd4d501461031b57600080fd5b80630356fe3a146101dd57806319effeb41461021f578063200d2ed214610265575b600080fd5b3480156101e957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561022b57600080fd5b5060005461024c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610216565b34801561027157600080fd5b5060005461029390700100000000000000000000000000000000900460ff1681565b60405161021691906132bb565b3480156102ac57600080fd5b50610293610757565b6102c86102c33660046132fc565b610954565b005b3480156102d657600080fd5b5060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b34801561032757600080fd5b506103646040518060400160405280600581526020017f302e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516102169190613389565b34801561037d57600080fd5b50610364610964565b34801561039257600080fd5b506102c86103a13660046133be565b610976565b6102c86103b43660046133f7565b610a26565b3480156103c557600080fd5b5061020c60015481565b3480156103db57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c86111bc565b34801561041657600080fd5b5060025461020c565b34801561042b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561020c565b34801561046b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b34801561049e57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b3480156104df57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561020c565b34801561051c57600080fd5b5061020c61052b36600461342c565b50600090565b6102c861053f3660046132fc565b6114e2565b34801561055057600080fd5b5061056461055f36600461345e565b6114ee565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610216565b3480156105da57600080fd5b5060005461024c9067ffffffffffffffff1681565b3480156105fb57600080fd5b5061020c61060a3660046133be565b60036020526000908152604090205481565b34801561062857600080fd5b506102c86106373660046134c0565b611585565b34801561064857600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024c565b34801561067b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b3480156106ae57600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610216565b3480156106d957600080fd5b506102c86106e836600461354a565b611b63565b3480156106f957600080fd5b50610702611fcc565b60405161021693929190613576565b34801561071d57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c861075236600461345e565b612029565b600080600054700100000000000000000000000000000000900460ff1660028111156107855761078561328c565b146107bc576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065460ff166107f8576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600081548110610824576108246135a4565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff161461085f576001610862565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156109135761091361328c565b0217905560028111156109285761092861328c565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61096082826000610a26565b5050565b606061097160208061248a565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260036020526040808220805490839055905190929083908381818185875af1925050503d80600081146109e1576040519150601f19603f3d011682016040523d82523d6000602084013e6109e6565b606091505b5050905080610a21576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610a5257610a5261328c565b14610a89576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610a9e57610a9e6135a4565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610b63908390869061252116565b90506000610c03826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610c455750610c427f00000000000000000000000000000000000000000000000000000000000000006002613602565b81145b8015610c4f575084155b15610c86576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610ce0576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f00000000000000000000000000000000000000000000000000000000000000006001613602565b8103610d1d57610d1d86888588612529565b835160009063ffffffff90811614610d7d576002856000015163ffffffff1681548110610d4c57610d4c6135a4565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610da19067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610dcb610d94856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610ddf9190613602565b610de9919061361a565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115610e5c576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526004602052604090205490915060ff1615610eda576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600560008c81526020019081526020016000206001600280549050611170919061361a565b8154600181018355600092835260208320015560405133918c918e917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a45050505050505050505050565b600654610100900460ff16156111fe576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135116112b5576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60463611156112cc5763c407e0256000526004601cfd5b6040805160e08101825263ffffffff8152600060208201523291810191909152346fffffffffffffffffffffffffffffffff16606082015260029060808101367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335815260016020820152604001426fffffffffffffffffffffffffffffffff90811690915282546001808201855560009485526020808620855160059094020180549186015163ffffffff9094167fffffffffffffffff0000000000000000000000000000000000000000000000009092169190911764010000000073ffffffffffffffffffffffffffffffffffffffff94851602178155604085015181830180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919094161790925560608401516002830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169185169190911790556080840151600383015560a084015160c09094015193831670010000000000000000000000000000000094909316939093029190911760049091015581547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff16179091556114b0904361361a565b40600155600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b61096082826001610a26565b600281815481106114fe57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff1660028111156115b1576115b161328c565b146115e8576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600287815481106115fd576115fd6135a4565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b905061165c7f00000000000000000000000000000000000000000000000000000000000000006001613602565b6116f8826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611739576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156118285761178c7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061361a565b6001901b6117ab846fffffffffffffffffffffffffffffffff166126ea565b67ffffffffffffffff166117bf9190613660565b156117fc576117f36117e460016fffffffffffffffffffffffffffffffff8716613674565b865463ffffffff166000612790565b6003015461181e565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611852565b6003850154915061184f6117e46fffffffffffffffffffffffffffffffff861660016136a5565b90505b600882901b60088a8a6040516118699291906136d9565b6040518091039020901b146118aa576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006118b58c612874565b905060006118c4836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced329061193e908f908f908f908f908a90600401613732565b6020604051808303816000875af115801561195d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611981919061376c565b600485015491149150600090600290611a2c906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611ac8896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611ad29190613785565b611adc91906137a6565b67ffffffffffffffff161590508115158103611b24576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611b8f57611b8f61328c565b14611bc6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611bd5866128a3565b93509350935093506000611beb85858585612cd0565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7e91906137cd565b905060018903611d465773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a846001545b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015611d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d40919061376c565b50611fc1565b60028903611d725773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489611caa565b60038903611d9e5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487611caa565b60048903611f165760006fffffffffffffffffffffffffffffffff861615611e3657611dfc6fffffffffffffffffffffffffffffffff87167f0000000000000000000000000000000000000000000000000000000000000000612d8f565b611e26907f0000000000000000000000000000000000000000000000000000000000000000613602565b611e31906001613602565b611e58565b7f00000000000000000000000000000000000000000000000000000000000000005b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015611eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0f919061376c565b5050611fc1565b60058903611f8f576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390524660c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401611cfd565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060612022610964565b9050909192565b60008054700100000000000000000000000000000000900460ff1660028111156120555761205561328c565b1461208c576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282815481106120a1576120a16135a4565b6000918252602082206005919091020160048101549092506120e390700100000000000000000000000000000000900460401c67ffffffffffffffff16610d94565b600483015490915060009061211590700100000000000000000000000000000000900467ffffffffffffffff16610d94565b61211f9042613785565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661215982846137ea565b67ffffffffffffffff161161219a576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602052604090208054851580156121ba575060065460ff165b156121f1576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801580156121fe57508515155b15612263578454640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115612231578161224d565b600187015473ffffffffffffffffffffffffffffffffffffffff165b90506122598188612e44565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b838110156123a9576000858281548110612294576122946135a4565b60009182526020808320909101548083526005909152604090912054909150156122ea576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282815481106122ff576122ff6135a4565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612358575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612396576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b5050806123a29061380d565b9050612278565b506123f173ffffffffffffffffffffffffffffffffffffffff8316156123cf57826123eb565b600188015473ffffffffffffffffffffffffffffffffffffffff165b88612e44565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff841602178755600088815260056020526040812061244d91613252565b8760000361225957600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b606060006124c184367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003613602565b90508267ffffffffffffffff1667ffffffffffffffff8111156124e6576124e6613845565b6040519080825280601f01601f191660200182016040528015612510576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60006125486fffffffffffffffffffffffffffffffff841660016136a5565b9050600061255882866001612790565b9050600086901a838061264b575061259160027f0000000000000000000000000000000000000000000000000000000000000000613660565b6004830154600290612635906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61263f91906137a6565b67ffffffffffffffff16145b156126a35760ff811660011480612665575060ff81166002145b61269e576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112ac565b6126e1565b60ff8116156126e1576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112ac565b50505050505050565b600080612777837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080826127d9576127d46fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000612f2f565b6127f4565b6127f4856fffffffffffffffffffffffffffffffff166130f6565b905060028481548110612809576128096135a4565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461286c57815460028054909163ffffffff16908110612857576128576135a4565b9060005260206000209060050201915061281a565b509392505050565b6000806000806000612885866128a3565b935093509350935061289984848484612cd0565b9695505050505050565b60008060008060008590506000600282815481106128c3576128c36135a4565b600091825260209091206004600590920201908101549091507f00000000000000000000000000000000000000000000000000000000000000009061299a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116129db576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612aa2906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612b1e57825463ffffffff16612ae87f00000000000000000000000000000000000000000000000000000000000000006001613602565b8303612af2578391505b60028181548110612b0557612b056135a4565b90600052602060002090600502019350809450506129df565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612b87612b72856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015612c6c576000612bbf836fffffffffffffffffffffffffffffffff166126ea565b67ffffffffffffffff161115612c22576000612bf9612bf160016fffffffffffffffffffffffffffffffff8616613674565b896001612790565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50612c469050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750612cc2565b6000612c8e612bf16fffffffffffffffffffffffffffffffff851660016136a5565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff84168103612d36578282604051602001612d199291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b604051602081830303815290604052805190602001209050612d87565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080612e1c847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000018101612eb4576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002820180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054839290612f25908490613602565b9091555050505050565b600081612fce846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161161300f576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613018836130f6565b9050816130b7826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116130f0576130ed6130d4836001613602565b6fffffffffffffffffffffffffffffffff8316906131a2565b90505b92915050565b6000811960018301168161318a827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b60008061322f847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b50805460008255906000526020600020908101906132709190613273565b50565b5b808211156132885760008155600101613274565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106132f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561330f57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561334457602081850181015186830182015201613328565b81811115613356576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006130ed602083018461331e565b73ffffffffffffffffffffffffffffffffffffffff8116811461327057600080fd5b6000602082840312156133d057600080fd5b81356133db8161339c565b9392505050565b803580151581146133f257600080fd5b919050565b60008060006060848603121561340c57600080fd5b8335925060208401359150613423604085016133e2565b90509250925092565b60006020828403121561343e57600080fd5b81356fffffffffffffffffffffffffffffffff811681146133db57600080fd5b60006020828403121561347057600080fd5b5035919050565b60008083601f84011261348957600080fd5b50813567ffffffffffffffff8111156134a157600080fd5b6020830191508360208285010111156134b957600080fd5b9250929050565b600080600080600080608087890312156134d957600080fd5b863595506134e9602088016133e2565b9450604087013567ffffffffffffffff8082111561350657600080fd5b6135128a838b01613477565b9096509450606089013591508082111561352b57600080fd5b5061353889828a01613477565b979a9699509497509295939492505050565b60008060006060848603121561355f57600080fd5b505081359360208301359350604090920135919050565b63ffffffff8416815282602082015260606040820152600061359b606083018461331e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613615576136156135d3565b500190565b60008282101561362c5761362c6135d3565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261366f5761366f613631565b500690565b60006fffffffffffffffffffffffffffffffff8381169083168181101561369d5761369d6135d3565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156136d0576136d06135d3565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006137466060830187896136e9565b82810360208401526137598186886136e9565b9150508260408301529695505050505050565b60006020828403121561377e57600080fd5b5051919050565b600067ffffffffffffffff8381169083168181101561369d5761369d6135d3565b600067ffffffffffffffff808416806137c1576137c1613631565b92169190910692915050565b6000602082840312156137df57600080fd5b81516133db8161339c565b600067ffffffffffffffff8083168185168083038211156136d0576136d06135d3565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361383e5761383e6135d3
565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
,
ABI
:
"[{
\"
type
\"
:
\"
constructor
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_gameType
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
_absolutePrestate
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
_genesisBlockNumber
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_genesisOutputRoot
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
},{
\"
name
\"
:
\"
_maxGameDepth
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_splitDepth
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_gameDuration
\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Duration
\"
},{
\"
name
\"
:
\"
_vm
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIBigStepper
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
absolutePrestate
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
absolutePrestate_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
addLocalData
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_execLeafIdx
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
attack
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimCredit
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_recipient
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimData
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
uint32
\"
},{
\"
name
\"
:
\"
counteredBy
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
},{
\"
name
\"
:
\"
bond
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
uint128
\"
},{
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
position
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
Position
\"
},{
\"
name
\"
:
\"
clock
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
Clock
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimDataLen
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
claimedBondFlag
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
claimedBondFlag_
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
uint128
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
createdAt
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Timestamp
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
credit
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
address
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
defend
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
extraData
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameData
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
},{
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameDuration
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameDuration_
\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Duration
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
gameType
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint32
\"
,
\"
internalType
\"
:
\"
GameType
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
genesisBlockNumber
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
genesisBlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
genesisOutputRoot
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
genesisOutputRoot_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
getRequiredBond
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_position
\"
,
\"
type
\"
:
\"
uint128
\"
,
\"
internalType
\"
:
\"
Position
\"
}],
\"
outputs
\"
:[{
\"
name
\"
:
\"
requiredBond_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
initialize
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
l1Head
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
l1Head_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Hash
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
l2BlockNumber
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
l2BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
maxGameDepth
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
maxGameDepth_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
move
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_challengeIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
resolve
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
status_
\"
,
\"
type
\"
:
\"
uint8
\"
,
\"
internalType
\"
:
\"
enumGameStatus
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
resolveClaim
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
resolvedAt
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
,
\"
internalType
\"
:
\"
Timestamp
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
rootClaim
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
splitDepth
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
splitDepth_
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
status
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
,
\"
internalType
\"
:
\"
enumGameStatus
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
step
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
,
\"
internalType
\"
:
\"
bool
\"
},{
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
},{
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
,
\"
internalType
\"
:
\"
bytes
\"
}],
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
version
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
,
\"
internalType
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
function
\"
,
\"
name
\"
:
\"
vm
\"
,
\"
inputs
\"
:[],
\"
outputs
\"
:[{
\"
name
\"
:
\"
vm_
\"
,
\"
type
\"
:
\"
address
\"
,
\"
internalType
\"
:
\"
contractIBigStepper
\"
}],
\"
stateMutability
\"
:
\"
view
\"
},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
Move
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
uint256
\"
},{
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
},{
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
event
\"
,
\"
name
\"
:
\"
Resolved
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
status
\"
,
\"
type
\"
:
\"
uint8
\"
,
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
enumGameStatus
\"
}],
\"
anonymous
\"
:false},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
AlreadyInitialized
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
BondTransferFailed
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
CannotDefendRootClaim
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClaimAboveSplit
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClaimAlreadyExists
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClaimAlreadyResolved
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClockNotExpired
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ClockTimeExceeded
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
GameDepthExceeded
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
GameNotInProgress
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InsufficientBond
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidLocalIdent
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidParent
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidPrestate
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
InvalidSplitDepth
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
OutOfOrderResolution
\"
,
\"
inputs
\"
:[]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
UnexpectedRootClaim
\"
,
\"
inputs
\"
:[{
\"
name
\"
:
\"
rootClaim
\"
,
\"
type
\"
:
\"
bytes32
\"
,
\"
internalType
\"
:
\"
Claim
\"
}]},{
\"
type
\"
:
\"
error
\"
,
\"
name
\"
:
\"
ValidStep
\"
,
\"
inputs
\"
:[]}]"
,
Bin
:
"0x6101806040523480156200001257600080fd5b5060405162003
b8b38038062003b8b83398101604081905262000035916200009b565b838310620000565760405163e62ccf3960e01b815260040160405180910390fd5b63ffffffff90971661016052608095909552610120939093526101409190915260a05260c0526001600160401b031660e0526001600160a01b03166101005262000140565b600080600080600080600080610100898b031215620000b957600080fd5b885163ffffffff81168114620000ce57600080fd5b60208a015160408b015160608c015160808d015160a08e015160c08f0151959d50939b509199509750955093506001600160401b03811681146200011157600080fd5b60e08a01519092506001600160a01b03811681146200012f57600080fd5b809150509295985092959890939650565b60805160a05160c05160e0516101005161012051610140516101605161394b62000240600039600081816104d301526120960152600081816104080152612cec0152600081816101ec0152818161122a01528181611eca0152611f000152600081816102f1015281816119840152611c8901526000818161067501528181610e1801526121f40152600081816106a801528181610c4701528181610d10015281816117df01528181611ea00152818161263501528181612878015281816129a601528181612aae0152612b8a01526000818161074a01528181610cb3015281816116ce01526118000152600081816104980152611896015261394b6000f3fe6080604052600436106101d85760003560e01c80638d450a9511610102578063d8cc1a3c11610095578063f8f43ff611610064578063f8f43ff6146106f7578063fa24f74314610717578063fa315aa91461073b578063fdffbb281461076e57600080fd5b8063d8cc1a3c14610646578063e1f0c37614610666578063ec5e630814610699578063f3f7214e146106cc57600080fd5b8063c55cd0c7116100d1578063c55cd0c71461055b578063c6f0308c1461056e578063cf09e0d0146105f8578063d5d44d801461061957600080fd5b80638d450a9514610489578063bbdc02db146104bc578063bcef3b55146104fd578063c395e1ca1461053a57600080fd5b8063609d33341161017a57806368800abf1161014957806368800abf146103f95780638129fc1c1461042c5780638980e0cc146104345780638b85902b1461044957600080fd5b8063609d33341461037157806360e2746414610386578063632247ea146103a65780636361506d146103b957600080fd5b80632810e1d6116101b65780632810e1d6146102a057806335fef567146102b55780633a768463146102ca57806354fd4d501461031b57600080fd5b80630356fe3a146101dd57806319effeb41461021f578063200d2ed214610265575b600080fd5b3480156101e957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561022b57600080fd5b5060005461024c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610216565b34801561027157600080fd5b5060005461029390700100000000000000000000000000000000900460ff1681565b6040516102169190613385565b3480156102ac57600080fd5b50610293610781565b6102c86102c33660046133c6565b61097e565b005b3480156102d657600080fd5b5060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b34801561032757600080fd5b506103646040518060400160405280600581526020017f302e342e3000000000000000000000000000000000000000000000000000000081525081565b6040516102169190613453565b34801561037d57600080fd5b5061036461098e565b34801561039257600080fd5b506102c86103a1366004613488565b6109a1565b6102c86103b43660046134c1565b610a51565b3480156103c557600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561020c565b34801561040557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c86111e6565b34801561044057600080fd5b5060015461020c565b34801561045557600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561020c565b34801561049557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b3480156104c857600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b34801561050957600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561020c565b34801561054657600080fd5b5061020c6105553660046134f6565b50600090565b6102c86105693660046133c6565b61157a565b34801561057a57600080fd5b5061058e610589366004613528565b611586565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610216565b34801561060457600080fd5b5060005461024c9067ffffffffffffffff1681565b34801561062557600080fd5b5061020c610634366004613488565b60026020526000908152604090205481565b34801561065257600080fd5b506102c861066136600461358a565b61161d565b34801561067257600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024c565b3480156106a557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b3480156106d857600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610216565b34801561070357600080fd5b506102c8610712366004613614565b611bfb565b34801561072357600080fd5b5061072c612094565b60405161021693929190613640565b34801561074757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c861077c366004613528565b6120f1565b600080600054700100000000000000000000000000000000900460ff1660028111156107af576107af613356565b146107e6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460ff16610822576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008154811061084e5761084e61366e565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff161461088957600161088c565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff9091161770010000000000000000000000000000000083600281111561093d5761093d613356565b02179055600281111561095257610952613356565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61098a82826000610a51565b5050565b606061099c60406020612552565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260026020526040808220805490839055905190929083908381818185875af1925050503d8060008114610a0c576040519150601f19603f3d011682016040523d82523d6000602084013e610a11565b606091505b5050905080610a4c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610a7d57610a7d613356565b14610ab4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610ac957610ac961366e565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610b8e90839086906125e916565b90506000610c2e826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610c705750610c6d7f000000000000000000000000000000000000000000000000000000000000000060026136cc565b81145b8015610c7a575084155b15610cb1576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610d0b576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d367f000000000000000000000000000000000000000000000000000000000000000060016136cc565b8103610d4857610d48868885886125f1565b835160009063ffffffff90811614610da8576001856000015163ffffffff1681548110610d7757610d7761366e565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610dcc9067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610df6610dbf856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610e0a91906136cc565b610e1491906136e4565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115610e87576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff1615610f05576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c81526020019081526020016000206001808054905061119a91906136e4565b8154600181018355600092835260208320015560405133918c918e917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a45050505050505050505050565b600554610100900460ff1615611228576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135116112df576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60663611156112f65763c407e0256000526004601cfd5b6040805160e08101825263ffffffff808252600060208301818152329484019485526fffffffffffffffffffffffffffffffff348116606086019081527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560808701908152600160a088018181524280861660c08b0190815283548085018555938952995160059384027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995192909b167fffffffffffffffff0000000000000000000000000000000000000000000000009099169890981764010000000073ffffffffffffffffffffffffffffffffffffffff928316021790995599517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7870180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919099161790975591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016918516919091179055517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9840155935194519481167001000000000000000000000000000000009590911694909402939093177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9093019290925581547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff90931692909217905580546101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116179055565b61098a82826001610a51565b6001818154811061159657600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561164957611649613356565b14611680576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600187815481106116955761169561366e565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506116f47f000000000000000000000000000000000000000000000000000000000000000060016136cc565b611790826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146117d1576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156118c0576118247f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006136e4565b6001901b611843846fffffffffffffffffffffffffffffffff166127b2565b67ffffffffffffffff16611857919061372a565b156118945761188b61187c60016fffffffffffffffffffffffffffffffff871661373e565b865463ffffffff166000612858565b600301546118b6565b7f00000000000000000000000000000000000000000000000000000000000000005b91508490506118ea565b600385015491506118e761187c6fffffffffffffffffffffffffffffffff8616600161376f565b90505b600882901b60088a8a6040516119019291906137a3565b6040518091039020901b14611942576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061194d8c61293c565b9050600061195c836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced32906119d6908f908f908f908f908a906004016137fc565b6020604051808303816000875af11580156119f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a199190613836565b600485015491149150600090600290611ac4906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611b60896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611b6a919061384f565b611b749190613870565b67ffffffffffffffff161590508115158103611bbc576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611c2757611c27613356565b14611c5e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611c6d8661296b565b93509350935093506000611c8385858585612d98565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d169190613897565b905060018903611e0e5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84611d72367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015611de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e089190613836565b50612089565b60028903611e3a5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489611d72565b60038903611e665773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487611d72565b60048903611fde5760006fffffffffffffffffffffffffffffffff861615611efe57611ec46fffffffffffffffffffffffffffffffff87167f0000000000000000000000000000000000000000000000000000000000000000612e57565b611eee907f00000000000000000000000000000000000000000000000000000000000000006136cc565b611ef99060016136cc565b611f20565b7f00000000000000000000000000000000000000000000000000000000000000005b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015611fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd79190613836565b5050612089565b60058903612057576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390524660c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401611dc5565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560606120ea61098e565b9050909192565b60008054700100000000000000000000000000000000900460ff16600281111561211d5761211d613356565b14612154576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182815481106121695761216961366e565b6000918252602082206005919091020160048101549092506121ab90700100000000000000000000000000000000900460401c67ffffffffffffffff16610dbf565b60048301549091506000906121dd90700100000000000000000000000000000000900467ffffffffffffffff16610dbf565b6121e7904261384f565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661222182846138b4565b67ffffffffffffffff1611612262576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805485158015612282575060055460ff165b156122b9576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801580156122c657508515155b1561232b578454640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156122f95781612315565b600187015473ffffffffffffffffffffffffffffffffffffffff165b90506123218188612f0c565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b8381101561247157600085828154811061235c5761235c61366e565b60009182526020808320909101548083526004909152604090912054909150156123b2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182815481106123c7576123c761366e565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612420575060048101546fffffffffffffffffffffffffffffffff908116908516115b1561245e576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b50508061246a906138d7565b9050612340565b506124b973ffffffffffffffffffffffffffffffffffffffff83161561249757826124b3565b600188015473ffffffffffffffffffffffffffffffffffffffff165b88612f0c565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff84160217875560008881526004602052604081206125159161331c565b8760000361232157600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b6060600061258984367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036136cc565b90508267ffffffffffffffff1667ffffffffffffffff8111156125ae576125ae61390f565b6040519080825280601f01601f1916602001820160405280156125d8576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60006126106fffffffffffffffffffffffffffffffff8416600161376f565b9050600061262082866001612858565b9050600086901a8380612713575061265960027f000000000000000000000000000000000000000000000000000000000000000061372a565b60048301546002906126fd906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6127079190613870565b67ffffffffffffffff16145b1561276b5760ff81166001148061272d575060ff81166002145b612766576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112d6565b6127a9565b60ff8116156127a9576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112d6565b50505050505050565b60008061283f837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080826128a15761289c6fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000612ff9565b6128bc565b6128bc856fffffffffffffffffffffffffffffffff166131c0565b9050600184815481106128d1576128d161366e565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461293457815460018054909163ffffffff1690811061291f5761291f61366e565b906000526020600020906005020191506128e2565b509392505050565b600080600080600061294d8661296b565b935093509350935061296184848484612d98565b9695505050505050565b600080600080600085905060006001828154811061298b5761298b61366e565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612a62906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612aa3576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612b6a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612be657825463ffffffff16612bb07f000000000000000000000000000000000000000000000000000000000000000060016136cc565b8303612bba578391505b60018181548110612bcd57612bcd61366e565b9060005260206000209060050201935080945050612aa7565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612c4f612c3a856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015612d34576000612c87836fffffffffffffffffffffffffffffffff166127b2565b67ffffffffffffffff161115612cea576000612cc1612cb960016fffffffffffffffffffffffffffffffff861661373e565b896001612858565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50612d0e9050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750612d8a565b6000612d56612cb96fffffffffffffffffffffffffffffffff8516600161376f565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff84168103612dfe578282604051602001612de19291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b604051602081830303815290604052805190602001209050612e4f565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080612ee4847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000018101612f7c576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff84166000908152602091909152604081208054839290612fef9084906136cc565b9091555050505050565b600081613098846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116130d9576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6130e2836131c0565b905081613181826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116131ba576131b761319e8360016136cc565b6fffffffffffffffffffffffffffffffff83169061326c565b90505b92915050565b60008119600183011681613254827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b6000806132f9847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b508054600082559060005260206000209081019061333a919061333d565b50565b5b80821115613352576000815560010161333e565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106133c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600080604083850312156133d957600080fd5b50508035926020909101359150565b6000815180845260005b8181101561340e576020818501810151868301820152016133f2565b81811115613420576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006131b760208301846133e8565b73ffffffffffffffffffffffffffffffffffffffff8116811461333a57600080fd5b60006020828403121561349a57600080fd5b81356134a581613466565b9392505050565b803580151581146134bc57600080fd5b919050565b6000806000606084860312156134d657600080fd5b83359250602084013591506134ed604085016134ac565b90509250925092565b60006020828403121561350857600080fd5b81356fffffffffffffffffffffffffffffffff811681146134a557600080fd5b60006020828403121561353a57600080fd5b5035919050565b60008083601f84011261355357600080fd5b50813567ffffffffffffffff81111561356b57600080fd5b60208301915083602082850101111561358357600080fd5b9250929050565b600080600080600080608087890312156135a357600080fd5b863595506135b3602088016134ac565b9450604087013567ffffffffffffffff808211156135d057600080fd5b6135dc8a838b01613541565b909650945060608901359150808211156135f557600080fd5b5061360289828a01613541565b979a9699509497509295939492505050565b60008060006060848603121561362957600080fd5b505081359360208301359350604090920135919050565b63ffffffff8416815282602082015260606040820152600061366560608301846133e8565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156136df576136df61369d565b500190565b6000828210156136f6576136f661369d565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613739576137396136fb565b500690565b60006fffffffffffffffffffffffffffffffff838116908316818110156137675761376761369d565b039392505050565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561379a5761379a61369d565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006138106060830187896137b3565b82810360208401526138238186886137b3565b9150508260408301529695505050505050565b60006020828403121561384857600080fd5b5051919050565b600067ffffffffffffffff838116908316818110156137675761376761369d565b600067ffffffffffffffff8084168061388b5761388b6136fb565b92169190910692915050565b6000602082840312156138a957600080fd5b81516134a581613466565b600067ffffffffffffffff80831681851680830382111561379a5761379a61369d565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139085761390861369d
565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
,
}
// FaultDisputeGameABI is the input ABI used to generate the binding from.
...
...
@@ -664,7 +664,7 @@ func (_FaultDisputeGame *FaultDisputeGameCallerSession) GetRequiredBond(_positio
// L1Head is a free data retrieval call binding the contract method 0x6361506d.
//
// Solidity: function l1Head()
view returns(bytes32
)
// Solidity: function l1Head()
pure returns(bytes32 l1Head_
)
func
(
_FaultDisputeGame
*
FaultDisputeGameCaller
)
L1Head
(
opts
*
bind
.
CallOpts
)
([
32
]
byte
,
error
)
{
var
out
[]
interface
{}
err
:=
_FaultDisputeGame
.
contract
.
Call
(
opts
,
&
out
,
"l1Head"
)
...
...
@@ -681,14 +681,14 @@ func (_FaultDisputeGame *FaultDisputeGameCaller) L1Head(opts *bind.CallOpts) ([3
// L1Head is a free data retrieval call binding the contract method 0x6361506d.
//
// Solidity: function l1Head()
view returns(bytes32
)
// Solidity: function l1Head()
pure returns(bytes32 l1Head_
)
func
(
_FaultDisputeGame
*
FaultDisputeGameSession
)
L1Head
()
([
32
]
byte
,
error
)
{
return
_FaultDisputeGame
.
Contract
.
L1Head
(
&
_FaultDisputeGame
.
CallOpts
)
}
// L1Head is a free data retrieval call binding the contract method 0x6361506d.
//
// Solidity: function l1Head()
view returns(bytes32
)
// Solidity: function l1Head()
pure returns(bytes32 l1Head_
)
func
(
_FaultDisputeGame
*
FaultDisputeGameCallerSession
)
L1Head
()
([
32
]
byte
,
error
)
{
return
_FaultDisputeGame
.
Contract
.
L1Head
(
&
_FaultDisputeGame
.
CallOpts
)
}
...
...
op-bindings/bindings/faultdisputegame_more.go
View file @
cbb7c3b2
...
...
@@ -9,11 +9,11 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
const
FaultDisputeGameStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
createdAt
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Timestamp)101
7
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
resolvedAt
\"
,
\"
offset
\"
:8,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Timestamp)1017
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
status
\"
,
\"
offset
\"
:16,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_enum(GameStatus)1010
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
l1Head
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Hash)1015
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claimData
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_array(t_struct(ClaimData)1011_storage)dyn_storage
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
credit
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},{
\"
astId
\"
:1006,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claims
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_mapping(t_userDefinedValueType(ClaimHash)1013,t_bool)
\"
},{
\"
astId
\"
:1007,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
subgames
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_mapping(t_uint256,t_array(t_uint256)dyn_storage)
\"
},{
\"
astId
\"
:1008,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
subgameAtRootResolved
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
6
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1009,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
initialized
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
6
\"
,
\"
type
\"
:
\"
t_bool
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_struct(ClaimData)1011_storage)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
base
\"
:
\"
t_struct(ClaimData)1011_storage
\"
},
\"
t_array(t_uint256)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
uint256[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
base
\"
:
\"
t_uint256
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_enum(GameStatus)1010
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
enum GameStatus
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_mapping(t_uint256,t_array(t_uint256)dyn_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(uint256 =
\u003e
uint256[])
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_uint256
\"
,
\"
value
\"
:
\"
t_array(t_uint256)dyn_storage
\"
},
\"
t_mapping(t_userDefinedValueType(ClaimHash)1013,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(ClaimHash =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_userDefinedValueType(ClaimHash)1013
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_struct(ClaimData)1011_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData
\"
,
\"
numberOfBytes
\"
:
\"
160
\"
},
\"
t_uint128
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint128
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint32
\"
,
\"
numberOfBytes
\"
:
\"
4
\"
},
\"
t_userDefinedValueType(Claim)1012
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Claim
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(ClaimHash)1013
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
ClaimHash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Clock)1014
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Clock
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_userDefinedValueType(Hash)1015
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Hash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Position)1016
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Position
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_userDefinedValueType(Timestamp)1017
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Timestamp
\"
,
\"
numberOfBytes
\"
:
\"
8
\"
}}}"
const
FaultDisputeGameStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
createdAt
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Timestamp)101
5
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
resolvedAt
\"
,
\"
offset
\"
:8,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Timestamp)1015
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
status
\"
,
\"
offset
\"
:16,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_enum(GameStatus)1009
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claimData
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_array(t_struct(ClaimData)1010_storage)dyn_storage
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
credit
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_mapping(t_address,t_uint256)
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claims
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_mapping(t_userDefinedValueType(ClaimHash)1012,t_bool)
\"
},{
\"
astId
\"
:1006,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
subgames
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
4
\"
,
\"
type
\"
:
\"
t_mapping(t_uint256,t_array(t_uint256)dyn_storage)
\"
},{
\"
astId
\"
:1007,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
subgameAtRootResolved
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_bool
\"
},{
\"
astId
\"
:1008,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
initialized
\"
,
\"
offset
\"
:1,
\"
slot
\"
:
\"
5
\"
,
\"
type
\"
:
\"
t_bool
\"
}],
\"
types
\"
:{
\"
t_address
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
address
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_array(t_struct(ClaimData)1010_storage)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
base
\"
:
\"
t_struct(ClaimData)1010_storage
\"
},
\"
t_array(t_uint256)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
uint256[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
base
\"
:
\"
t_uint256
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_enum(GameStatus)1009
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
enum GameStatus
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_mapping(t_address,t_uint256)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(address =
\u003e
uint256)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_address
\"
,
\"
value
\"
:
\"
t_uint256
\"
},
\"
t_mapping(t_uint256,t_array(t_uint256)dyn_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(uint256 =
\u003e
uint256[])
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_uint256
\"
,
\"
value
\"
:
\"
t_array(t_uint256)dyn_storage
\"
},
\"
t_mapping(t_userDefinedValueType(ClaimHash)1012,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(ClaimHash =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_userDefinedValueType(ClaimHash)1012
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_struct(ClaimData)1010_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData
\"
,
\"
numberOfBytes
\"
:
\"
160
\"
},
\"
t_uint128
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint128
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_uint32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint32
\"
,
\"
numberOfBytes
\"
:
\"
4
\"
},
\"
t_userDefinedValueType(Claim)1011
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Claim
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(ClaimHash)1012
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
ClaimHash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Clock)1013
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Clock
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_userDefinedValueType(Position)1014
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Position
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_userDefinedValueType(Timestamp)1015
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Timestamp
\"
,
\"
numberOfBytes
\"
:
\"
8
\"
}}}"
var
FaultDisputeGameStorageLayout
=
new
(
solc
.
StorageLayout
)
var
FaultDisputeGameDeployedBin
=
"0x6080604052600436106101d85760003560e01c80638d450a9511610102578063d8cc1a3c11610095578063f8f43ff611610064578063f8f43ff6146106
cd578063fa24f743146106ed578063fa315aa914610711578063fdffbb281461074457600080fd5b8063d8cc1a3c1461061c578063e1f0c3761461063c578063ec5e63081461066f578063f3f7214e146106a257600080fd5b8063c55cd0c7116100d1578063c55cd0c714610531578063c6f0308c14610544578063cf09e0d0146105ce578063d5d44d80146105ef57600080fd5b80638d450a951461045f578063bbdc02db14610492578063bcef3b55146104d3578063c395e1ca1461051057600080fd5b8063609d33341161017a57806368800abf1161014957806368800abf146103cf5780638129fc1c146104025780638980e0cc1461040a5780638b85902b1461041f57600080fd5b8063609d33341461037157806360e2746414610386578063632247ea146103a65780636361506d146103b957600080fd5b80632810e1d6116101b65780632810e1d6146102a057806335fef567146102b55780633a768463146102ca57806354fd4d501461031b57600080fd5b80630356fe3a146101dd57806319effeb41461021f578063200d2ed214610265575b600080fd5b3480156101e957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561022b57600080fd5b5060005461024c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610216565b34801561027157600080fd5b5060005461029390700100000000000000000000000000000000900460ff1681565b60405161021691906132bb565b3480156102ac57600080fd5b50610293610757565b6102c86102c33660046132fc565b610954565b005b3480156102d657600080fd5b5060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b34801561032757600080fd5b506103646040518060400160405280600581526020017f302e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516102169190613389565b34801561037d57600080fd5b50610364610964565b34801561039257600080fd5b506102c86103a13660046133be565b610976565b6102c86103b43660046133f7565b610a26565b3480156103c557600080fd5b5061020c60015481565b3480156103db57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c86111bc565b34801561041657600080fd5b5060025461020c565b34801561042b57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561020c565b34801561046b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b34801561049e57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b3480156104df57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561020c565b34801561051c57600080fd5b5061020c61052b36600461342c565b50600090565b6102c861053f3660046132fc565b6114e2565b34801561055057600080fd5b5061056461055f36600461345e565b6114ee565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610216565b3480156105da57600080fd5b5060005461024c9067ffffffffffffffff1681565b3480156105fb57600080fd5b5061020c61060a3660046133be565b60036020526000908152604090205481565b34801561062857600080fd5b506102c86106373660046134c0565b611585565b34801561064857600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024c565b34801561067b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b3480156106ae57600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610216565b3480156106d957600080fd5b506102c86106e836600461354a565b611b63565b3480156106f957600080fd5b50610702611fcc565b60405161021693929190613576565b34801561071d57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c861075236600461345e565b612029565b600080600054700100000000000000000000000000000000900460ff1660028111156107855761078561328c565b146107bc576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60065460ff166107f8576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600081548110610824576108246135a4565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff161461085f576001610862565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156109135761091361328c565b0217905560028111156109285761092861328c565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61096082826000610a26565b5050565b606061097160208061248a565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260036020526040808220805490839055905190929083908381818185875af1925050503d80600081146109e1576040519150601f19603f3d011682016040523d82523d6000602084013e6109e6565b606091505b5050905080610a21576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610a5257610a5261328c565b14610a89576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028481548110610a9e57610a9e6135a4565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610b63908390869061252116565b90506000610c03826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610c455750610c427f00000000000000000000000000000000000000000000000000000000000000006002613602565b81145b8015610c4f575084155b15610c86576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610ce0576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0b7f00000000000000000000000000000000000000000000000000000000000000006001613602565b8103610d1d57610d1d86888588612529565b835160009063ffffffff90811614610d7d576002856000015163ffffffff1681548110610d4c57610d4c6135a4565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610da19067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610dcb610d94856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610ddf9190613602565b610de9919061361a565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115610e5c576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526004602052604090205490915060ff1615610eda576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016004600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600560008c81526020019081526020016000206001600280549050611170919061361a565b8154600181018355600092835260208320015560405133918c918e917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a45050505050505050505050565b600654610100900460ff16156111fe576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135116112b5576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60463611156112cc5763c407e0256000526004601cfd5b6040805160e08101825263ffffffff8152600060208201523291810191909152346fffffffffffffffffffffffffffffffff16606082015260029060808101367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335815260016020820152604001426fffffffffffffffffffffffffffffffff90811690915282546001808201855560009485526020808620855160059094020180549186015163ffffffff9094167fffffffffffffffff0000000000000000000000000000000000000000000000009092169190911764010000000073ffffffffffffffffffffffffffffffffffffffff94851602178155604085015181830180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919094161790925560608401516002830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169185169190911790556080840151600383015560a084015160c09094015193831670010000000000000000000000000000000094909316939093029190911760049091015581547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff16179091556114b0904361361a565b40600155600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055565b61096082826001610a26565b600281815481106114fe57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff1660028111156115b1576115b161328c565b146115e8576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600287815481106115fd576115fd6135a4565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b905061165c7f00000000000000000000000000000000000000000000000000000000000000006001613602565b6116f8826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611739576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156118285761178c7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061361a565b6001901b6117ab846fffffffffffffffffffffffffffffffff166126ea565b67ffffffffffffffff166117bf9190613660565b156117fc576117f36117e460016fffffffffffffffffffffffffffffffff8716613674565b865463ffffffff166000612790565b6003015461181e565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611852565b6003850154915061184f6117e46fffffffffffffffffffffffffffffffff861660016136a5565b90505b600882901b60088a8a6040516118699291906136d9565b6040518091039020901b146118aa576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006118b58c612874565b905060006118c4836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced329061193e908f908f908f908f908a90600401613732565b6020604051808303816000875af115801561195d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611981919061376c565b600485015491149150600090600290611a2c906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611ac8896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611ad29190613785565b611adc91906137a6565b67ffffffffffffffff161590508115158103611b24576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611b8f57611b8f61328c565b14611bc6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611bd5866128a3565b93509350935093506000611beb85858585612cd0565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7e91906137cd565b905060018903611d465773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a846001545b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015611d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d40919061376c565b50611fc1565b60028903611d725773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489611caa565b60038903611d9e5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487611caa565b60048903611f165760006fffffffffffffffffffffffffffffffff861615611e3657611dfc6fffffffffffffffffffffffffffffffff87167f0000000000000000000000000000000000000000000000000000000000000000612d8f565b611e26907f0000000000000000000000000000000000000000000000000000000000000000613602565b611e31906001613602565b611e58565b7f00000000000000000000000000000000000000000000000000000000000000005b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015611eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0f919061376c565b5050611fc1565b60058903611f8f576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390524660c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401611cfd565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060612022610964565b9050909192565b60008054700100000000000000000000000000000000900460ff1660028111156120555761205561328c565b1461208c576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282815481106120a1576120a16135a4565b6000918252602082206005919091020160048101549092506120e390700100000000000000000000000000000000900460401c67ffffffffffffffff16610d94565b600483015490915060009061211590700100000000000000000000000000000000900467ffffffffffffffff16610d94565b61211f9042613785565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661215982846137ea565b67ffffffffffffffff161161219a576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008481526005602052604090208054851580156121ba575060065460ff165b156121f1576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801580156121fe57508515155b15612263578454640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115612231578161224d565b600187015473ffffffffffffffffffffffffffffffffffffffff165b90506122598188612e44565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b838110156123a9576000858281548110612294576122946135a4565b60009182526020808320909101548083526005909152604090912054909150156122ea576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600282815481106122ff576122ff6135a4565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612358575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612396576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b5050806123a29061380d565b9050612278565b506123f173ffffffffffffffffffffffffffffffffffffffff8316156123cf57826123eb565b600188015473ffffffffffffffffffffffffffffffffffffffff165b88612e44565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff841602178755600088815260056020526040812061244d91613252565b8760000361225957600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b606060006124c184367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003613602565b90508267ffffffffffffffff1667ffffffffffffffff8111156124e6576124e6613845565b6040519080825280601f01601f191660200182016040528015612510576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60006125486fffffffffffffffffffffffffffffffff841660016136a5565b9050600061255882866001612790565b9050600086901a838061264b575061259160027f0000000000000000000000000000000000000000000000000000000000000000613660565b6004830154600290612635906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b61263f91906137a6565b67ffffffffffffffff16145b156126a35760ff811660011480612665575060ff81166002145b61269e576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112ac565b6126e1565b60ff8116156126e1576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112ac565b50505050505050565b600080612777837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080826127d9576127d46fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000612f2f565b6127f4565b6127f4856fffffffffffffffffffffffffffffffff166130f6565b905060028481548110612809576128096135a4565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461286c57815460028054909163ffffffff16908110612857576128576135a4565b9060005260206000209060050201915061281a565b509392505050565b6000806000806000612885866128a3565b935093509350935061289984848484612cd0565b9695505050505050565b60008060008060008590506000600282815481106128c3576128c36135a4565b600091825260209091206004600590920201908101549091507f00000000000000000000000000000000000000000000000000000000000000009061299a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116129db576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612aa2906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612b1e57825463ffffffff16612ae87f00000000000000000000000000000000000000000000000000000000000000006001613602565b8303612af2578391505b60028181548110612b0557612b056135a4565b90600052602060002090600502019350809450506129df565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612b87612b72856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015612c6c576000612bbf836fffffffffffffffffffffffffffffffff166126ea565b67ffffffffffffffff161115612c22576000612bf9612bf160016fffffffffffffffffffffffffffffffff8616613674565b896001612790565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50612c469050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750612cc2565b6000612c8e612bf16fffffffffffffffffffffffffffffffff851660016136a5565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff84168103612d36578282604051602001612d199291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b604051602081830303815290604052805190602001209050612d87565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080612e1c847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000018101612eb4576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002820180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054839290612f25908490613602565b9091555050505050565b600081612fce846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161161300f576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613018836130f6565b9050816130b7826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116130f0576130ed6130d4836001613602565b6fffffffffffffffffffffffffffffffff8316906131a2565b90505b92915050565b6000811960018301168161318a827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b60008061322f847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b50805460008255906000526020600020908101906132709190613273565b50565b5b808211156132885760008155600101613274565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106132f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561330f57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561334457602081850181015186830182015201613328565b81811115613356576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006130ed602083018461331e565b73ffffffffffffffffffffffffffffffffffffffff8116811461327057600080fd5b6000602082840312156133d057600080fd5b81356133db8161339c565b9392505050565b803580151581146133f257600080fd5b919050565b60008060006060848603121561340c57600080fd5b8335925060208401359150613423604085016133e2565b90509250925092565b60006020828403121561343e57600080fd5b81356fffffffffffffffffffffffffffffffff811681146133db57600080fd5b60006020828403121561347057600080fd5b5035919050565b60008083601f84011261348957600080fd5b50813567ffffffffffffffff8111156134a157600080fd5b6020830191508360208285010111156134b957600080fd5b9250929050565b600080600080600080608087890312156134d957600080fd5b863595506134e9602088016133e2565b9450604087013567ffffffffffffffff8082111561350657600080fd5b6135128a838b01613477565b9096509450606089013591508082111561352b57600080fd5b5061353889828a01613477565b979a9699509497509295939492505050565b60008060006060848603121561355f57600080fd5b505081359360208301359350604090920135919050565b63ffffffff8416815282602082015260606040820152600061359b606083018461331e565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613615576136156135d3565b500190565b60008282101561362c5761362c6135d3565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261366f5761366f613631565b500690565b60006fffffffffffffffffffffffffffffffff8381169083168181101561369d5761369d6135d3565b039392505050565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156136d0576136d06135d3565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006137466060830187896136e9565b82810360208401526137598186886136e9565b9150508260408301529695505050505050565b60006020828403121561377e57600080fd5b5051919050565b600067ffffffffffffffff8381169083168181101561369d5761369d6135d3565b600067ffffffffffffffff808416806137c1576137c1613631565b92169190910692915050565b6000602082840312156137df57600080fd5b81516133db8161339c565b600067ffffffffffffffff8083168185168083038211156136d0576136d06135d3565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361383e5761383e6135d3
565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
var
FaultDisputeGameDeployedBin
=
"0x6080604052600436106101d85760003560e01c80638d450a9511610102578063d8cc1a3c11610095578063f8f43ff611610064578063f8f43ff6146106
f7578063fa24f74314610717578063fa315aa91461073b578063fdffbb281461076e57600080fd5b8063d8cc1a3c14610646578063e1f0c37614610666578063ec5e630814610699578063f3f7214e146106cc57600080fd5b8063c55cd0c7116100d1578063c55cd0c71461055b578063c6f0308c1461056e578063cf09e0d0146105f8578063d5d44d801461061957600080fd5b80638d450a9514610489578063bbdc02db146104bc578063bcef3b55146104fd578063c395e1ca1461053a57600080fd5b8063609d33341161017a57806368800abf1161014957806368800abf146103f95780638129fc1c1461042c5780638980e0cc146104345780638b85902b1461044957600080fd5b8063609d33341461037157806360e2746414610386578063632247ea146103a65780636361506d146103b957600080fd5b80632810e1d6116101b65780632810e1d6146102a057806335fef567146102b55780633a768463146102ca57806354fd4d501461031b57600080fd5b80630356fe3a146101dd57806319effeb41461021f578063200d2ed214610265575b600080fd5b3480156101e957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561022b57600080fd5b5060005461024c9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610216565b34801561027157600080fd5b5060005461029390700100000000000000000000000000000000900460ff1681565b6040516102169190613385565b3480156102ac57600080fd5b50610293610781565b6102c86102c33660046133c6565b61097e565b005b3480156102d657600080fd5b5060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b34801561032757600080fd5b506103646040518060400160405280600581526020017f302e342e3000000000000000000000000000000000000000000000000000000081525081565b6040516102169190613453565b34801561037d57600080fd5b5061036461098e565b34801561039257600080fd5b506102c86103a1366004613488565b6109a1565b6102c86103b43660046134c1565b610a51565b3480156103c557600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561020c565b34801561040557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c86111e6565b34801561044057600080fd5b5060015461020c565b34801561045557600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561020c565b34801561049557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b3480156104c857600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610216565b34801561050957600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561020c565b34801561054657600080fd5b5061020c6105553660046134f6565b50600090565b6102c86105693660046133c6565b61157a565b34801561057a57600080fd5b5061058e610589366004613528565b611586565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610216565b34801561060457600080fd5b5060005461024c9067ffffffffffffffff1681565b34801561062557600080fd5b5061020c610634366004613488565b60026020526000908152604090205481565b34801561065257600080fd5b506102c861066136600461358a565b61161d565b34801561067257600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061024c565b3480156106a557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b3480156106d857600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610216565b34801561070357600080fd5b506102c8610712366004613614565b611bfb565b34801561072357600080fd5b5061072c612094565b60405161021693929190613640565b34801561074757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061020c565b6102c861077c366004613528565b6120f1565b600080600054700100000000000000000000000000000000900460ff1660028111156107af576107af613356565b146107e6576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460ff16610822576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008154811061084e5761084e61366e565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff161461088957600161088c565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff9091161770010000000000000000000000000000000083600281111561093d5761093d613356565b02179055600281111561095257610952613356565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b61098a82826000610a51565b5050565b606061099c60406020612552565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260026020526040808220805490839055905190929083908381818185875af1925050503d8060008114610a0c576040519150601f19603f3d011682016040523d82523d6000602084013e610a11565b606091505b5050905080610a4c576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610a7d57610a7d613356565b14610ab4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610ac957610ac961366e565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610b8e90839086906125e916565b90506000610c2e826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610c705750610c6d7f000000000000000000000000000000000000000000000000000000000000000060026136cc565b81145b8015610c7a575084155b15610cb1576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610d0b576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d367f000000000000000000000000000000000000000000000000000000000000000060016136cc565b8103610d4857610d48868885886125f1565b835160009063ffffffff90811614610da8576001856000015163ffffffff1681548110610d7757610d7761366e565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610dcc9067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610df6610dbf856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610e0a91906136cc565b610e1491906136e4565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115610e87576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff1615610f05576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c81526020019081526020016000206001808054905061119a91906136e4565b8154600181018355600092835260208320015560405133918c918e917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a45050505050505050505050565b600554610100900460ff1615611228576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135116112df576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60663611156112f65763c407e0256000526004601cfd5b6040805160e08101825263ffffffff808252600060208301818152329484019485526fffffffffffffffffffffffffffffffff348116606086019081527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560808701908152600160a088018181524280861660c08b0190815283548085018555938952995160059384027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995192909b167fffffffffffffffff0000000000000000000000000000000000000000000000009099169890981764010000000073ffffffffffffffffffffffffffffffffffffffff928316021790995599517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7870180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919099161790975591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016918516919091179055517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9840155935194519481167001000000000000000000000000000000009590911694909402939093177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9093019290925581547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff90931692909217905580546101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116179055565b61098a82826001610a51565b6001818154811061159657600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561164957611649613356565b14611680576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600187815481106116955761169561366e565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506116f47f000000000000000000000000000000000000000000000000000000000000000060016136cc565b611790826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16146117d1576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156118c0576118247f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006136e4565b6001901b611843846fffffffffffffffffffffffffffffffff166127b2565b67ffffffffffffffff16611857919061372a565b156118945761188b61187c60016fffffffffffffffffffffffffffffffff871661373e565b865463ffffffff166000612858565b600301546118b6565b7f00000000000000000000000000000000000000000000000000000000000000005b91508490506118ea565b600385015491506118e761187c6fffffffffffffffffffffffffffffffff8616600161376f565b90505b600882901b60088a8a6040516119019291906137a3565b6040518091039020901b14611942576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061194d8c61293c565b9050600061195c836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced32906119d6908f908f908f908f908a906004016137fc565b6020604051808303816000875af11580156119f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a199190613836565b600485015491149150600090600290611ac4906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611b60896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611b6a919061384f565b611b749190613870565b67ffffffffffffffff161590508115158103611bbc576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611c2757611c27613356565b14611c5e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611c6d8661296b565b93509350935093506000611c8385858585612d98565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d169190613897565b905060018903611e0e5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84611d72367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015611de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e089190613836565b50612089565b60028903611e3a5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489611d72565b60038903611e665773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487611d72565b60048903611fde5760006fffffffffffffffffffffffffffffffff861615611efe57611ec46fffffffffffffffffffffffffffffffff87167f0000000000000000000000000000000000000000000000000000000000000000612e57565b611eee907f00000000000000000000000000000000000000000000000000000000000000006136cc565b611ef99060016136cc565b611f20565b7f00000000000000000000000000000000000000000000000000000000000000005b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015611fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd79190613836565b5050612089565b60058903612057576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390524660c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401611dc5565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560606120ea61098e565b9050909192565b60008054700100000000000000000000000000000000900460ff16600281111561211d5761211d613356565b14612154576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182815481106121695761216961366e565b6000918252602082206005919091020160048101549092506121ab90700100000000000000000000000000000000900460401c67ffffffffffffffff16610dbf565b60048301549091506000906121dd90700100000000000000000000000000000000900467ffffffffffffffff16610dbf565b6121e7904261384f565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661222182846138b4565b67ffffffffffffffff1611612262576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805485158015612282575060055460ff165b156122b9576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801580156122c657508515155b1561232b578454640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156122f95781612315565b600187015473ffffffffffffffffffffffffffffffffffffffff165b90506123218188612f0c565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b8381101561247157600085828154811061235c5761235c61366e565b60009182526020808320909101548083526004909152604090912054909150156123b2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182815481106123c7576123c761366e565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612420575060048101546fffffffffffffffffffffffffffffffff908116908516115b1561245e576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b50508061246a906138d7565b9050612340565b506124b973ffffffffffffffffffffffffffffffffffffffff83161561249757826124b3565b600188015473ffffffffffffffffffffffffffffffffffffffff165b88612f0c565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff84160217875560008881526004602052604081206125159161331c565b8760000361232157600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b6060600061258984367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036136cc565b90508267ffffffffffffffff1667ffffffffffffffff8111156125ae576125ae61390f565b6040519080825280601f01601f1916602001820160405280156125d8576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60006126106fffffffffffffffffffffffffffffffff8416600161376f565b9050600061262082866001612858565b9050600086901a8380612713575061265960027f000000000000000000000000000000000000000000000000000000000000000061372a565b60048301546002906126fd906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6127079190613870565b67ffffffffffffffff16145b1561276b5760ff81166001148061272d575060ff81166002145b612766576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112d6565b6127a9565b60ff8116156127a9576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016112d6565b50505050505050565b60008061283f837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b600080826128a15761289c6fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000612ff9565b6128bc565b6128bc856fffffffffffffffffffffffffffffffff166131c0565b9050600184815481106128d1576128d161366e565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff82811691161461293457815460018054909163ffffffff1690811061291f5761291f61366e565b906000526020600020906005020191506128e2565b509392505050565b600080600080600061294d8661296b565b935093509350935061296184848484612d98565b9695505050505050565b600080600080600085905060006001828154811061298b5761298b61366e565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612a62906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612aa3576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612b6a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612be657825463ffffffff16612bb07f000000000000000000000000000000000000000000000000000000000000000060016136cc565b8303612bba578391505b60018181548110612bcd57612bcd61366e565b9060005260206000209060050201935080945050612aa7565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612c4f612c3a856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015612d34576000612c87836fffffffffffffffffffffffffffffffff166127b2565b67ffffffffffffffff161115612cea576000612cc1612cb960016fffffffffffffffffffffffffffffffff861661373e565b896001612858565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50612d0e9050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750612d8a565b6000612d56612cb96fffffffffffffffffffffffffffffffff8516600161376f565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff84168103612dfe578282604051602001612de19291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b604051602081830303815290604052805190602001209050612e4f565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080612ee4847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000018101612f7c576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff84166000908152602091909152604081208054839290612fef9084906136cc565b9091555050505050565b600081613098846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116130d9576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6130e2836131c0565b905081613181826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116131ba576131b761319e8360016136cc565b6fffffffffffffffffffffffffffffffff83169061326c565b90505b92915050565b60008119600183011681613254827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b6000806132f9847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b508054600082559060005260206000209081019061333a919061333d565b50565b5b80821115613352576000815560010161333e565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106133c0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600080604083850312156133d957600080fd5b50508035926020909101359150565b6000815180845260005b8181101561340e576020818501810151868301820152016133f2565b81811115613420576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006131b760208301846133e8565b73ffffffffffffffffffffffffffffffffffffffff8116811461333a57600080fd5b60006020828403121561349a57600080fd5b81356134a581613466565b9392505050565b803580151581146134bc57600080fd5b919050565b6000806000606084860312156134d657600080fd5b83359250602084013591506134ed604085016134ac565b90509250925092565b60006020828403121561350857600080fd5b81356fffffffffffffffffffffffffffffffff811681146134a557600080fd5b60006020828403121561353a57600080fd5b5035919050565b60008083601f84011261355357600080fd5b50813567ffffffffffffffff81111561356b57600080fd5b60208301915083602082850101111561358357600080fd5b9250929050565b600080600080600080608087890312156135a357600080fd5b863595506135b3602088016134ac565b9450604087013567ffffffffffffffff808211156135d057600080fd5b6135dc8a838b01613541565b909650945060608901359150808211156135f557600080fd5b5061360289828a01613541565b979a9699509497509295939492505050565b60008060006060848603121561362957600080fd5b505081359360208301359350604090920135919050565b63ffffffff8416815282602082015260606040820152600061366560608301846133e8565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156136df576136df61369d565b500190565b6000828210156136f6576136f661369d565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613739576137396136fb565b500690565b60006fffffffffffffffffffffffffffffffff838116908316818110156137675761376761369d565b039392505050565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561379a5761379a61369d565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006138106060830187896137b3565b82810360208401526138238186886137b3565b9150508260408301529695505050505050565b60006020828403121561384857600080fd5b5051919050565b600067ffffffffffffffff838116908316818110156137675761376761369d565b600067ffffffffffffffff8084168061388b5761388b6136fb565b92169190910692915050565b6000602082840312156138a957600080fd5b81516134a581613466565b600067ffffffffffffffff80831681851680830382111561379a5761379a61369d565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139085761390861369d
565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
func
init
()
{
...
...
packages/contracts-bedrock/semver-lock.json
View file @
cbb7c3b2
...
...
@@ -92,12 +92,12 @@
"sourceCodeHash"
:
"0x1afb1d392e8f6a58ff86ea7f648e0d1756d4ba8d0d964279d58a390deaa53b7e"
},
"src/dispute/DisputeGameFactory.sol"
:
{
"initCodeHash"
:
"0x
2ca7307516f9d0bb0abb299df67f2483f3168eed4055e46e377f637a719cfb77
"
,
"sourceCodeHash"
:
"0x
e1891e7e6a1928b9a2ddc47d1f010650f1125a0617b8bf32190176a3bb674b4f
"
"initCodeHash"
:
"0x
80d749a56c1776930fe0deb5c3c646217716e5875ace99c4d036af0452236476
"
,
"sourceCodeHash"
:
"0x
1e5a6deded88804971fc1847c9eac65921771bff353437c0b29ed2f55513b984
"
},
"src/dispute/FaultDisputeGame.sol"
:
{
"initCodeHash"
:
"0x
ca9b1b10500ef59c60f0d575cc3bad28bf6554fbbd1edc26ee0e9225e2c36c86
"
,
"sourceCodeHash"
:
"0x
d1e1f952c6112f5126601740cfabfdd3e5692cfaadcc9f5316a30bd48c10cc0b
"
"initCodeHash"
:
"0x
206faab5d19598def839adac4f85427b945b222adc8401626fd1d7a58ec52262
"
,
"sourceCodeHash"
:
"0x
fafd5423f3ffb2101cba4feb023127a887838423146f1838a9d8c6e9853c73c7
"
},
"src/legacy/DeployerWhitelist.sol"
:
{
"initCodeHash"
:
"0x8de80fb23b26dd9d849f6328e56ea7c173cd9e9ce1f05c9beea559d1720deb3d"
,
...
...
packages/contracts-bedrock/snapshots/abi/FaultDisputeGame.json
View file @
cbb7c3b2
...
...
@@ -357,11 +357,11 @@
"outputs"
:
[
{
"internalType"
:
"Hash"
,
"name"
:
""
,
"name"
:
"
l1Head_
"
,
"type"
:
"bytes32"
}
],
"stateMutability"
:
"
view
"
,
"stateMutability"
:
"
pure
"
,
"type"
:
"function"
},
{
...
...
packages/contracts-bedrock/snapshots/abi/PermissionedDisputeGame.json
View file @
cbb7c3b2
...
...
@@ -367,11 +367,11 @@
"outputs"
:
[
{
"internalType"
:
"Hash"
,
"name"
:
""
,
"name"
:
"
l1Head_
"
,
"type"
:
"bytes32"
}
],
"stateMutability"
:
"
view
"
,
"stateMutability"
:
"
pure
"
,
"type"
:
"function"
},
{
...
...
packages/contracts-bedrock/snapshots/storageLayout/FaultDisputeGame.json
View file @
cbb7c3b2
...
...
@@ -20,53 +20,46 @@
"slot"
:
"0"
,
"type"
:
"enum GameStatus"
},
{
"bytes"
:
"32"
,
"label"
:
"l1Head"
,
"offset"
:
0
,
"slot"
:
"1"
,
"type"
:
"Hash"
},
{
"bytes"
:
"32"
,
"label"
:
"claimData"
,
"offset"
:
0
,
"slot"
:
"
2
"
,
"slot"
:
"
1
"
,
"type"
:
"struct IFaultDisputeGame.ClaimData[]"
},
{
"bytes"
:
"32"
,
"label"
:
"credit"
,
"offset"
:
0
,
"slot"
:
"
3
"
,
"slot"
:
"
2
"
,
"type"
:
"mapping(address => uint256)"
},
{
"bytes"
:
"32"
,
"label"
:
"claims"
,
"offset"
:
0
,
"slot"
:
"
4
"
,
"slot"
:
"
3
"
,
"type"
:
"mapping(ClaimHash => bool)"
},
{
"bytes"
:
"32"
,
"label"
:
"subgames"
,
"offset"
:
0
,
"slot"
:
"
5
"
,
"slot"
:
"
4
"
,
"type"
:
"mapping(uint256 => uint256[])"
},
{
"bytes"
:
"1"
,
"label"
:
"subgameAtRootResolved"
,
"offset"
:
0
,
"slot"
:
"
6
"
,
"slot"
:
"
5
"
,
"type"
:
"bool"
},
{
"bytes"
:
"1"
,
"label"
:
"initialized"
,
"offset"
:
1
,
"slot"
:
"
6
"
,
"slot"
:
"
5
"
,
"type"
:
"bool"
}
]
\ No newline at end of file
packages/contracts-bedrock/snapshots/storageLayout/PermissionedDisputeGame.json
View file @
cbb7c3b2
...
...
@@ -20,53 +20,46 @@
"slot"
:
"0"
,
"type"
:
"enum GameStatus"
},
{
"bytes"
:
"32"
,
"label"
:
"l1Head"
,
"offset"
:
0
,
"slot"
:
"1"
,
"type"
:
"Hash"
},
{
"bytes"
:
"32"
,
"label"
:
"claimData"
,
"offset"
:
0
,
"slot"
:
"
2
"
,
"slot"
:
"
1
"
,
"type"
:
"struct IFaultDisputeGame.ClaimData[]"
},
{
"bytes"
:
"32"
,
"label"
:
"credit"
,
"offset"
:
0
,
"slot"
:
"
3
"
,
"slot"
:
"
2
"
,
"type"
:
"mapping(address => uint256)"
},
{
"bytes"
:
"32"
,
"label"
:
"claims"
,
"offset"
:
0
,
"slot"
:
"
4
"
,
"slot"
:
"
3
"
,
"type"
:
"mapping(ClaimHash => bool)"
},
{
"bytes"
:
"32"
,
"label"
:
"subgames"
,
"offset"
:
0
,
"slot"
:
"
5
"
,
"slot"
:
"
4
"
,
"type"
:
"mapping(uint256 => uint256[])"
},
{
"bytes"
:
"1"
,
"label"
:
"subgameAtRootResolved"
,
"offset"
:
0
,
"slot"
:
"
6
"
,
"slot"
:
"
5
"
,
"type"
:
"bool"
},
{
"bytes"
:
"1"
,
"label"
:
"initialized"
,
"offset"
:
1
,
"slot"
:
"
6
"
,
"slot"
:
"
5
"
,
"type"
:
"bool"
}
]
\ No newline at end of file
packages/contracts-bedrock/src/dispute/DisputeGameFactory.sol
View file @
cbb7c3b2
...
...
@@ -24,8 +24,8 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, ISemver
using ClonesWithImmutableArgs for address;
/// @notice Semantic version.
/// @custom:semver 0.
1
.0
string public constant version = "0.
1
.0";
/// @custom:semver 0.
2
.0
string public constant version = "0.
2
.0";
/// @inheritdoc IDisputeGameFactory
mapping(GameType => IDisputeGame) public gameImpls;
...
...
@@ -102,8 +102,11 @@ contract DisputeGameFactory is OwnableUpgradeable, IDisputeGameFactory, ISemver
// If the required initialization bond is not met, revert.
if (msg.value < initBonds[_gameType]) revert InsufficientBond();
// Get the hash of the parent block.
bytes32 parentHash = blockhash(block.number - 1);
// Clone the implementation contract and initialize it with the given parameters.
proxy_ = IDisputeGame(address(impl).clone(abi.encodePacked(_rootClaim, _extraData)));
proxy_ = IDisputeGame(address(impl).clone(abi.encodePacked(_rootClaim,
parentHash,
_extraData)));
proxy_.initialize{ value: msg.value }();
// Compute the unique identifier for the dispute game.
...
...
packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol
View file @
cbb7c3b2
...
...
@@ -62,9 +62,6 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
/// @inheritdoc IDisputeGame
GameStatus public status;
/// @inheritdoc IFaultDisputeGame
Hash public l1Head;
/// @notice An append-only array of all claims made during the dispute game.
ClaimData[] public claimData;
...
...
@@ -84,8 +81,8 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
bool internal initialized;
/// @notice Semantic version.
/// @custom:semver 0.
3
.0
string public constant version = "0.
3
.0";
/// @custom:semver 0.
4
.0
string public constant version = "0.
4
.0";
/// @param _gameType The type ID of the game.
/// @param _absolutePrestate The absolute prestate of the instruction trace.
...
...
@@ -318,7 +315,7 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
IPreimageOracle oracle = VM.oracle();
if (_ident == LocalPreimageKey.L1_HEAD_HASH) {
// Load the L1 head hash
oracle.loadLocalData(_ident, uuid.raw(), l1Head.raw(), 32, _partOffset);
oracle.loadLocalData(_ident, uuid.raw(), l1Head
()
.raw(), 32, _partOffset);
} else if (_ident == LocalPreimageKey.STARTING_OUTPUT_ROOT) {
// Load the starting proposal's output root.
oracle.loadLocalData(_ident, uuid.raw(), starting.raw(), 32, _partOffset);
...
...
@@ -344,9 +341,14 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
}
}
/// @inheritdoc IFaultDisputeGame
function l1Head() public pure returns (Hash l1Head_) {
l1Head_ = Hash.wrap(_getArgFixedBytes(0x20));
}
/// @inheritdoc IFaultDisputeGame
function l2BlockNumber() public pure returns (uint256 l2BlockNumber_) {
l2BlockNumber_ = _getArgUint256(0x
2
0);
l2BlockNumber_ = _getArgUint256(0x
4
0);
}
////////////////////////////////////////////////////////////////
...
...
@@ -457,7 +459,7 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
function extraData() public pure returns (bytes memory extraData_) {
// The extra data starts at the second word within the cwia calldata and
// is 32 bytes long.
extraData_ = _getArgDynBytes(0x
2
0, 0x20);
extraData_ = _getArgDynBytes(0x
4
0, 0x20);
}
/// @inheritdoc IDisputeGame
...
...
@@ -495,9 +497,9 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
// This is to prevent adding extra bytes to the `extraData` that result in a different game UUID in the factory,
// but are not used by the game, which would allow for multiple dispute games for the same output proposal to
// be created.
// Expected length: 0x
46 (0x04 selector + 0x20 root claim
+ 0x20 extraData + 0x02 CWIA bytes)
// Expected length: 0x
66 (0x04 selector + 0x20 root claim + 0x20 l1 head
+ 0x20 extraData + 0x02 CWIA bytes)
assembly {
if gt(calldatasize(), 0x
4
6) {
if gt(calldatasize(), 0x
6
6) {
// Store the selector for `ExtraDataTooLong()` & revert
mstore(0x00, 0xc407e025)
revert(0x1C, 0x04)
...
...
@@ -520,9 +522,6 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
// Set the game's starting timestamp
createdAt = Timestamp.wrap(uint64(block.timestamp));
// Persist the blockhash of the parent block.
l1Head = Hash.wrap(blockhash(block.number - 1));
// Set the game as initialized.
initialized = true;
}
...
...
packages/contracts-bedrock/test/dispute/DisputeGameFactory.t.sol
View file @
cbb7c3b2
...
...
@@ -350,6 +350,10 @@ contract FakeClone {
return hex"FF0420";
}
function parentHash() external pure returns (bytes32) {
return bytes32(0);
}
function rootClaim() external pure returns (Claim) {
return Claim.wrap(bytes32(0));
}
...
...
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