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
ae7c2740
Commit
ae7c2740
authored
Aug 02, 2023
by
clabby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Start fixing breaking changes in other packages
parent
f20c4cdf
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
358 additions
and
302 deletions
+358
-302
artifacts.json
op-bindings/artifacts.json
+1
-1
blockhashoracle.go
op-bindings/bindings/blockhashoracle.go
+0
-254
blockhashoracle_more.go
op-bindings/bindings/blockhashoracle_more.go
+0
-25
blockoracle.go
op-bindings/bindings/blockoracle.go
+260
-0
blockoracle_more.go
op-bindings/bindings/blockoracle_more.go
+25
-0
faultdisputegame.go
op-bindings/bindings/faultdisputegame.go
+66
-16
faultdisputegame_more.go
op-bindings/bindings/faultdisputegame_more.go
+2
-2
abi_test.go
op-challenger/fault/abi_test.go
+1
-1
deploy.go
op-e2e/e2eutils/disputegame/deploy.go
+2
-2
DisputeErrors.sol
packages/contracts-bedrock/src/libraries/DisputeErrors.sol
+1
-1
No files found.
op-bindings/artifacts.json
View file @
ae7c2740
...
@@ -33,7 +33,7 @@
...
@@ -33,7 +33,7 @@
"CrossDomainMessenger"
,
"CrossDomainMessenger"
,
"MIPS"
,
"MIPS"
,
"PreimageOracle"
,
"PreimageOracle"
,
"Block
Hash
Oracle"
,
"BlockOracle"
,
"EAS"
,
"EAS"
,
"SchemaRegistry"
"SchemaRegistry"
]
]
op-bindings/bindings/blockhashoracle.go
deleted
100644 → 0
View file @
f20c4cdf
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package
bindings
import
(
"errors"
"math/big"
"strings"
ethereum
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/event"
)
// Reference imports to suppress errors if they are not otherwise used.
var
(
_
=
errors
.
New
_
=
big
.
NewInt
_
=
strings
.
NewReader
_
=
ethereum
.
NotFound
_
=
bind
.
Bind
_
=
common
.
Big1
_
=
types
.
BloomLookup
_
=
event
.
NewSubscription
)
// BlockHashOracleMetaData contains all meta data concerning the BlockHashOracle contract.
var
BlockHashOracleMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
inputs
\"
:[],
\"
name
\"
:
\"
BlockHashNotPresent
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
BlockNumberOOB
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_blockNumber
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
load
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"
blockHash_
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_blockNumber
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
store
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
Bin
:
"0x608060405234801561001057600080fd5b50610138806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636057361d1461003b57806399d548aa14610050575b600080fd5b61004e610049366004610112565b610075565b005b61006361005e366004610112565b6100c4565b60405190815260200160405180910390f35b804060008190036100b2576040517fd82756d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60009182526020829052604090912055565b6000818152602081905260408120549081900361010d576040517f37cf270500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60006020828403121561012457600080fd5b503591905056fea164736f6c634300080f000a"
,
}
// BlockHashOracleABI is the input ABI used to generate the binding from.
// Deprecated: Use BlockHashOracleMetaData.ABI instead.
var
BlockHashOracleABI
=
BlockHashOracleMetaData
.
ABI
// BlockHashOracleBin is the compiled bytecode used for deploying new contracts.
// Deprecated: Use BlockHashOracleMetaData.Bin instead.
var
BlockHashOracleBin
=
BlockHashOracleMetaData
.
Bin
// DeployBlockHashOracle deploys a new Ethereum contract, binding an instance of BlockHashOracle to it.
func
DeployBlockHashOracle
(
auth
*
bind
.
TransactOpts
,
backend
bind
.
ContractBackend
)
(
common
.
Address
,
*
types
.
Transaction
,
*
BlockHashOracle
,
error
)
{
parsed
,
err
:=
BlockHashOracleMetaData
.
GetAbi
()
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
}
if
parsed
==
nil
{
return
common
.
Address
{},
nil
,
nil
,
errors
.
New
(
"GetABI returned nil"
)
}
address
,
tx
,
contract
,
err
:=
bind
.
DeployContract
(
auth
,
*
parsed
,
common
.
FromHex
(
BlockHashOracleBin
),
backend
)
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
}
return
address
,
tx
,
&
BlockHashOracle
{
BlockHashOracleCaller
:
BlockHashOracleCaller
{
contract
:
contract
},
BlockHashOracleTransactor
:
BlockHashOracleTransactor
{
contract
:
contract
},
BlockHashOracleFilterer
:
BlockHashOracleFilterer
{
contract
:
contract
}},
nil
}
// BlockHashOracle is an auto generated Go binding around an Ethereum contract.
type
BlockHashOracle
struct
{
BlockHashOracleCaller
// Read-only binding to the contract
BlockHashOracleTransactor
// Write-only binding to the contract
BlockHashOracleFilterer
// Log filterer for contract events
}
// BlockHashOracleCaller is an auto generated read-only Go binding around an Ethereum contract.
type
BlockHashOracleCaller
struct
{
contract
*
bind
.
BoundContract
// Generic contract wrapper for the low level calls
}
// BlockHashOracleTransactor is an auto generated write-only Go binding around an Ethereum contract.
type
BlockHashOracleTransactor
struct
{
contract
*
bind
.
BoundContract
// Generic contract wrapper for the low level calls
}
// BlockHashOracleFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
type
BlockHashOracleFilterer
struct
{
contract
*
bind
.
BoundContract
// Generic contract wrapper for the low level calls
}
// BlockHashOracleSession is an auto generated Go binding around an Ethereum contract,
// with pre-set call and transact options.
type
BlockHashOracleSession
struct
{
Contract
*
BlockHashOracle
// Generic contract binding to set the session for
CallOpts
bind
.
CallOpts
// Call options to use throughout this session
TransactOpts
bind
.
TransactOpts
// Transaction auth options to use throughout this session
}
// BlockHashOracleCallerSession is an auto generated read-only Go binding around an Ethereum contract,
// with pre-set call options.
type
BlockHashOracleCallerSession
struct
{
Contract
*
BlockHashOracleCaller
// Generic contract caller binding to set the session for
CallOpts
bind
.
CallOpts
// Call options to use throughout this session
}
// BlockHashOracleTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
// with pre-set transact options.
type
BlockHashOracleTransactorSession
struct
{
Contract
*
BlockHashOracleTransactor
// Generic contract transactor binding to set the session for
TransactOpts
bind
.
TransactOpts
// Transaction auth options to use throughout this session
}
// BlockHashOracleRaw is an auto generated low-level Go binding around an Ethereum contract.
type
BlockHashOracleRaw
struct
{
Contract
*
BlockHashOracle
// Generic contract binding to access the raw methods on
}
// BlockHashOracleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
type
BlockHashOracleCallerRaw
struct
{
Contract
*
BlockHashOracleCaller
// Generic read-only contract binding to access the raw methods on
}
// BlockHashOracleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
type
BlockHashOracleTransactorRaw
struct
{
Contract
*
BlockHashOracleTransactor
// Generic write-only contract binding to access the raw methods on
}
// NewBlockHashOracle creates a new instance of BlockHashOracle, bound to a specific deployed contract.
func
NewBlockHashOracle
(
address
common
.
Address
,
backend
bind
.
ContractBackend
)
(
*
BlockHashOracle
,
error
)
{
contract
,
err
:=
bindBlockHashOracle
(
address
,
backend
,
backend
,
backend
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockHashOracle
{
BlockHashOracleCaller
:
BlockHashOracleCaller
{
contract
:
contract
},
BlockHashOracleTransactor
:
BlockHashOracleTransactor
{
contract
:
contract
},
BlockHashOracleFilterer
:
BlockHashOracleFilterer
{
contract
:
contract
}},
nil
}
// NewBlockHashOracleCaller creates a new read-only instance of BlockHashOracle, bound to a specific deployed contract.
func
NewBlockHashOracleCaller
(
address
common
.
Address
,
caller
bind
.
ContractCaller
)
(
*
BlockHashOracleCaller
,
error
)
{
contract
,
err
:=
bindBlockHashOracle
(
address
,
caller
,
nil
,
nil
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockHashOracleCaller
{
contract
:
contract
},
nil
}
// NewBlockHashOracleTransactor creates a new write-only instance of BlockHashOracle, bound to a specific deployed contract.
func
NewBlockHashOracleTransactor
(
address
common
.
Address
,
transactor
bind
.
ContractTransactor
)
(
*
BlockHashOracleTransactor
,
error
)
{
contract
,
err
:=
bindBlockHashOracle
(
address
,
nil
,
transactor
,
nil
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockHashOracleTransactor
{
contract
:
contract
},
nil
}
// NewBlockHashOracleFilterer creates a new log filterer instance of BlockHashOracle, bound to a specific deployed contract.
func
NewBlockHashOracleFilterer
(
address
common
.
Address
,
filterer
bind
.
ContractFilterer
)
(
*
BlockHashOracleFilterer
,
error
)
{
contract
,
err
:=
bindBlockHashOracle
(
address
,
nil
,
nil
,
filterer
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockHashOracleFilterer
{
contract
:
contract
},
nil
}
// bindBlockHashOracle binds a generic wrapper to an already deployed contract.
func
bindBlockHashOracle
(
address
common
.
Address
,
caller
bind
.
ContractCaller
,
transactor
bind
.
ContractTransactor
,
filterer
bind
.
ContractFilterer
)
(
*
bind
.
BoundContract
,
error
)
{
parsed
,
err
:=
abi
.
JSON
(
strings
.
NewReader
(
BlockHashOracleABI
))
if
err
!=
nil
{
return
nil
,
err
}
return
bind
.
NewBoundContract
(
address
,
parsed
,
caller
,
transactor
,
filterer
),
nil
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func
(
_BlockHashOracle
*
BlockHashOracleRaw
)
Call
(
opts
*
bind
.
CallOpts
,
result
*
[]
interface
{},
method
string
,
params
...
interface
{})
error
{
return
_BlockHashOracle
.
Contract
.
BlockHashOracleCaller
.
contract
.
Call
(
opts
,
result
,
method
,
params
...
)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func
(
_BlockHashOracle
*
BlockHashOracleRaw
)
Transfer
(
opts
*
bind
.
TransactOpts
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockHashOracle
.
Contract
.
BlockHashOracleTransactor
.
contract
.
Transfer
(
opts
)
}
// Transact invokes the (paid) contract method with params as input values.
func
(
_BlockHashOracle
*
BlockHashOracleRaw
)
Transact
(
opts
*
bind
.
TransactOpts
,
method
string
,
params
...
interface
{})
(
*
types
.
Transaction
,
error
)
{
return
_BlockHashOracle
.
Contract
.
BlockHashOracleTransactor
.
contract
.
Transact
(
opts
,
method
,
params
...
)
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func
(
_BlockHashOracle
*
BlockHashOracleCallerRaw
)
Call
(
opts
*
bind
.
CallOpts
,
result
*
[]
interface
{},
method
string
,
params
...
interface
{})
error
{
return
_BlockHashOracle
.
Contract
.
contract
.
Call
(
opts
,
result
,
method
,
params
...
)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func
(
_BlockHashOracle
*
BlockHashOracleTransactorRaw
)
Transfer
(
opts
*
bind
.
TransactOpts
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockHashOracle
.
Contract
.
contract
.
Transfer
(
opts
)
}
// Transact invokes the (paid) contract method with params as input values.
func
(
_BlockHashOracle
*
BlockHashOracleTransactorRaw
)
Transact
(
opts
*
bind
.
TransactOpts
,
method
string
,
params
...
interface
{})
(
*
types
.
Transaction
,
error
)
{
return
_BlockHashOracle
.
Contract
.
contract
.
Transact
(
opts
,
method
,
params
...
)
}
// Load is a free data retrieval call binding the contract method 0x99d548aa.
//
// Solidity: function load(uint256 _blockNumber) view returns(bytes32 blockHash_)
func
(
_BlockHashOracle
*
BlockHashOracleCaller
)
Load
(
opts
*
bind
.
CallOpts
,
_blockNumber
*
big
.
Int
)
([
32
]
byte
,
error
)
{
var
out
[]
interface
{}
err
:=
_BlockHashOracle
.
contract
.
Call
(
opts
,
&
out
,
"load"
,
_blockNumber
)
if
err
!=
nil
{
return
*
new
([
32
]
byte
),
err
}
out0
:=
*
abi
.
ConvertType
(
out
[
0
],
new
([
32
]
byte
))
.
(
*
[
32
]
byte
)
return
out0
,
err
}
// Load is a free data retrieval call binding the contract method 0x99d548aa.
//
// Solidity: function load(uint256 _blockNumber) view returns(bytes32 blockHash_)
func
(
_BlockHashOracle
*
BlockHashOracleSession
)
Load
(
_blockNumber
*
big
.
Int
)
([
32
]
byte
,
error
)
{
return
_BlockHashOracle
.
Contract
.
Load
(
&
_BlockHashOracle
.
CallOpts
,
_blockNumber
)
}
// Load is a free data retrieval call binding the contract method 0x99d548aa.
//
// Solidity: function load(uint256 _blockNumber) view returns(bytes32 blockHash_)
func
(
_BlockHashOracle
*
BlockHashOracleCallerSession
)
Load
(
_blockNumber
*
big
.
Int
)
([
32
]
byte
,
error
)
{
return
_BlockHashOracle
.
Contract
.
Load
(
&
_BlockHashOracle
.
CallOpts
,
_blockNumber
)
}
// Store is a paid mutator transaction binding the contract method 0x6057361d.
//
// Solidity: function store(uint256 _blockNumber) returns()
func
(
_BlockHashOracle
*
BlockHashOracleTransactor
)
Store
(
opts
*
bind
.
TransactOpts
,
_blockNumber
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockHashOracle
.
contract
.
Transact
(
opts
,
"store"
,
_blockNumber
)
}
// Store is a paid mutator transaction binding the contract method 0x6057361d.
//
// Solidity: function store(uint256 _blockNumber) returns()
func
(
_BlockHashOracle
*
BlockHashOracleSession
)
Store
(
_blockNumber
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockHashOracle
.
Contract
.
Store
(
&
_BlockHashOracle
.
TransactOpts
,
_blockNumber
)
}
// Store is a paid mutator transaction binding the contract method 0x6057361d.
//
// Solidity: function store(uint256 _blockNumber) returns()
func
(
_BlockHashOracle
*
BlockHashOracleTransactorSession
)
Store
(
_blockNumber
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockHashOracle
.
Contract
.
Store
(
&
_BlockHashOracle
.
TransactOpts
,
_blockNumber
)
}
op-bindings/bindings/blockhashoracle_more.go
deleted
100644 → 0
View file @
f20c4cdf
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package
bindings
import
(
"encoding/json"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
const
BlockHashOracleStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/dispute/BlockHashOracle.sol:BlockHashOracle
\"
,
\"
label
\"
:
\"
blockHashes
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_uint256,t_userDefinedValueType(Hash)1001)
\"
}],
\"
types
\"
:{
\"
t_mapping(t_uint256,t_userDefinedValueType(Hash)1001)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(uint256 =
\u003e
Hash)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_uint256
\"
,
\"
value
\"
:
\"
t_userDefinedValueType(Hash)1001
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Hash)1001
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Hash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
}}}"
var
BlockHashOracleStorageLayout
=
new
(
solc
.
StorageLayout
)
var
BlockHashOracleDeployedBin
=
"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80636057361d1461003b57806399d548aa14610050575b600080fd5b61004e610049366004610112565b610075565b005b61006361005e366004610112565b6100c4565b60405190815260200160405180910390f35b804060008190036100b2576040517fd82756d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60009182526020829052604090912055565b6000818152602081905260408120549081900361010d576040517f37cf270500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60006020828403121561012457600080fd5b503591905056fea164736f6c634300080f000a"
func
init
()
{
if
err
:=
json
.
Unmarshal
([]
byte
(
BlockHashOracleStorageLayoutJSON
),
BlockHashOracleStorageLayout
);
err
!=
nil
{
panic
(
err
)
}
layouts
[
"BlockHashOracle"
]
=
BlockHashOracleStorageLayout
deployedBytecodes
[
"BlockHashOracle"
]
=
BlockHashOracleDeployedBin
}
op-bindings/bindings/blockoracle.go
0 → 100644
View file @
ae7c2740
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package
bindings
import
(
"errors"
"math/big"
"strings"
ethereum
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/event"
)
// Reference imports to suppress errors if they are not otherwise used.
var
(
_
=
errors
.
New
_
=
big
.
NewInt
_
=
strings
.
NewReader
_
=
ethereum
.
NotFound
_
=
bind
.
Bind
_
=
common
.
Big1
_
=
types
.
BloomLookup
_
=
event
.
NewSubscription
)
// BlockOracleBlockInfo is an auto generated low-level Go binding around an user-defined struct.
type
BlockOracleBlockInfo
struct
{
Hash
[
32
]
byte
Timestamp
uint64
}
// BlockOracleMetaData contains all meta data concerning the BlockOracle contract.
var
BlockOracleMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
inputs
\"
:[],
\"
name
\"
:
\"
BlockHashNotPresent
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
BlockNumberOOB
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_blockNumber
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
load
\"
,
\"
outputs
\"
:[{
\"
components
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"
hash
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
timestamp
\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
internalType
\"
:
\"
structBlockOracle.BlockInfo
\"
,
\"
name
\"
:
\"
blockInfo_
\"
,
\"
type
\"
:
\"
tuple
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_blockNumber
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
store
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
Bin
:
"0x608060405234801561001057600080fd5b50610279806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636057361d1461003b57806399d548aa14610050575b600080fd5b61004e6100493660046101d0565b61008c565b005b61006361005e3660046101d0565b610151565b604080518251815260209283015167ffffffffffffffff16928101929092520160405180910390f35b804060008190036100c9576040517fd82756d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006100d58343610218565b6100e090600d61022f565b6100ea9042610218565b60408051808201825293845267ffffffffffffffff918216602080860191825260009687528690529420925183559251600190920180547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016929093169190911790915550565b604080518082018252600080825260209182018190528381528082528281208351808501909452805480855260019091015467ffffffffffffffff1692840192909252036101cb576040517f37cf270500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000602082840312156101e257600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561022a5761022a6101e9565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610267576102676101e9565b50029056fea164736f6c634300080f000a"
,
}
// BlockOracleABI is the input ABI used to generate the binding from.
// Deprecated: Use BlockOracleMetaData.ABI instead.
var
BlockOracleABI
=
BlockOracleMetaData
.
ABI
// BlockOracleBin is the compiled bytecode used for deploying new contracts.
// Deprecated: Use BlockOracleMetaData.Bin instead.
var
BlockOracleBin
=
BlockOracleMetaData
.
Bin
// DeployBlockOracle deploys a new Ethereum contract, binding an instance of BlockOracle to it.
func
DeployBlockOracle
(
auth
*
bind
.
TransactOpts
,
backend
bind
.
ContractBackend
)
(
common
.
Address
,
*
types
.
Transaction
,
*
BlockOracle
,
error
)
{
parsed
,
err
:=
BlockOracleMetaData
.
GetAbi
()
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
}
if
parsed
==
nil
{
return
common
.
Address
{},
nil
,
nil
,
errors
.
New
(
"GetABI returned nil"
)
}
address
,
tx
,
contract
,
err
:=
bind
.
DeployContract
(
auth
,
*
parsed
,
common
.
FromHex
(
BlockOracleBin
),
backend
)
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
}
return
address
,
tx
,
&
BlockOracle
{
BlockOracleCaller
:
BlockOracleCaller
{
contract
:
contract
},
BlockOracleTransactor
:
BlockOracleTransactor
{
contract
:
contract
},
BlockOracleFilterer
:
BlockOracleFilterer
{
contract
:
contract
}},
nil
}
// BlockOracle is an auto generated Go binding around an Ethereum contract.
type
BlockOracle
struct
{
BlockOracleCaller
// Read-only binding to the contract
BlockOracleTransactor
// Write-only binding to the contract
BlockOracleFilterer
// Log filterer for contract events
}
// BlockOracleCaller is an auto generated read-only Go binding around an Ethereum contract.
type
BlockOracleCaller
struct
{
contract
*
bind
.
BoundContract
// Generic contract wrapper for the low level calls
}
// BlockOracleTransactor is an auto generated write-only Go binding around an Ethereum contract.
type
BlockOracleTransactor
struct
{
contract
*
bind
.
BoundContract
// Generic contract wrapper for the low level calls
}
// BlockOracleFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
type
BlockOracleFilterer
struct
{
contract
*
bind
.
BoundContract
// Generic contract wrapper for the low level calls
}
// BlockOracleSession is an auto generated Go binding around an Ethereum contract,
// with pre-set call and transact options.
type
BlockOracleSession
struct
{
Contract
*
BlockOracle
// Generic contract binding to set the session for
CallOpts
bind
.
CallOpts
// Call options to use throughout this session
TransactOpts
bind
.
TransactOpts
// Transaction auth options to use throughout this session
}
// BlockOracleCallerSession is an auto generated read-only Go binding around an Ethereum contract,
// with pre-set call options.
type
BlockOracleCallerSession
struct
{
Contract
*
BlockOracleCaller
// Generic contract caller binding to set the session for
CallOpts
bind
.
CallOpts
// Call options to use throughout this session
}
// BlockOracleTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
// with pre-set transact options.
type
BlockOracleTransactorSession
struct
{
Contract
*
BlockOracleTransactor
// Generic contract transactor binding to set the session for
TransactOpts
bind
.
TransactOpts
// Transaction auth options to use throughout this session
}
// BlockOracleRaw is an auto generated low-level Go binding around an Ethereum contract.
type
BlockOracleRaw
struct
{
Contract
*
BlockOracle
// Generic contract binding to access the raw methods on
}
// BlockOracleCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
type
BlockOracleCallerRaw
struct
{
Contract
*
BlockOracleCaller
// Generic read-only contract binding to access the raw methods on
}
// BlockOracleTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
type
BlockOracleTransactorRaw
struct
{
Contract
*
BlockOracleTransactor
// Generic write-only contract binding to access the raw methods on
}
// NewBlockOracle creates a new instance of BlockOracle, bound to a specific deployed contract.
func
NewBlockOracle
(
address
common
.
Address
,
backend
bind
.
ContractBackend
)
(
*
BlockOracle
,
error
)
{
contract
,
err
:=
bindBlockOracle
(
address
,
backend
,
backend
,
backend
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockOracle
{
BlockOracleCaller
:
BlockOracleCaller
{
contract
:
contract
},
BlockOracleTransactor
:
BlockOracleTransactor
{
contract
:
contract
},
BlockOracleFilterer
:
BlockOracleFilterer
{
contract
:
contract
}},
nil
}
// NewBlockOracleCaller creates a new read-only instance of BlockOracle, bound to a specific deployed contract.
func
NewBlockOracleCaller
(
address
common
.
Address
,
caller
bind
.
ContractCaller
)
(
*
BlockOracleCaller
,
error
)
{
contract
,
err
:=
bindBlockOracle
(
address
,
caller
,
nil
,
nil
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockOracleCaller
{
contract
:
contract
},
nil
}
// NewBlockOracleTransactor creates a new write-only instance of BlockOracle, bound to a specific deployed contract.
func
NewBlockOracleTransactor
(
address
common
.
Address
,
transactor
bind
.
ContractTransactor
)
(
*
BlockOracleTransactor
,
error
)
{
contract
,
err
:=
bindBlockOracle
(
address
,
nil
,
transactor
,
nil
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockOracleTransactor
{
contract
:
contract
},
nil
}
// NewBlockOracleFilterer creates a new log filterer instance of BlockOracle, bound to a specific deployed contract.
func
NewBlockOracleFilterer
(
address
common
.
Address
,
filterer
bind
.
ContractFilterer
)
(
*
BlockOracleFilterer
,
error
)
{
contract
,
err
:=
bindBlockOracle
(
address
,
nil
,
nil
,
filterer
)
if
err
!=
nil
{
return
nil
,
err
}
return
&
BlockOracleFilterer
{
contract
:
contract
},
nil
}
// bindBlockOracle binds a generic wrapper to an already deployed contract.
func
bindBlockOracle
(
address
common
.
Address
,
caller
bind
.
ContractCaller
,
transactor
bind
.
ContractTransactor
,
filterer
bind
.
ContractFilterer
)
(
*
bind
.
BoundContract
,
error
)
{
parsed
,
err
:=
abi
.
JSON
(
strings
.
NewReader
(
BlockOracleABI
))
if
err
!=
nil
{
return
nil
,
err
}
return
bind
.
NewBoundContract
(
address
,
parsed
,
caller
,
transactor
,
filterer
),
nil
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func
(
_BlockOracle
*
BlockOracleRaw
)
Call
(
opts
*
bind
.
CallOpts
,
result
*
[]
interface
{},
method
string
,
params
...
interface
{})
error
{
return
_BlockOracle
.
Contract
.
BlockOracleCaller
.
contract
.
Call
(
opts
,
result
,
method
,
params
...
)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func
(
_BlockOracle
*
BlockOracleRaw
)
Transfer
(
opts
*
bind
.
TransactOpts
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockOracle
.
Contract
.
BlockOracleTransactor
.
contract
.
Transfer
(
opts
)
}
// Transact invokes the (paid) contract method with params as input values.
func
(
_BlockOracle
*
BlockOracleRaw
)
Transact
(
opts
*
bind
.
TransactOpts
,
method
string
,
params
...
interface
{})
(
*
types
.
Transaction
,
error
)
{
return
_BlockOracle
.
Contract
.
BlockOracleTransactor
.
contract
.
Transact
(
opts
,
method
,
params
...
)
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func
(
_BlockOracle
*
BlockOracleCallerRaw
)
Call
(
opts
*
bind
.
CallOpts
,
result
*
[]
interface
{},
method
string
,
params
...
interface
{})
error
{
return
_BlockOracle
.
Contract
.
contract
.
Call
(
opts
,
result
,
method
,
params
...
)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func
(
_BlockOracle
*
BlockOracleTransactorRaw
)
Transfer
(
opts
*
bind
.
TransactOpts
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockOracle
.
Contract
.
contract
.
Transfer
(
opts
)
}
// Transact invokes the (paid) contract method with params as input values.
func
(
_BlockOracle
*
BlockOracleTransactorRaw
)
Transact
(
opts
*
bind
.
TransactOpts
,
method
string
,
params
...
interface
{})
(
*
types
.
Transaction
,
error
)
{
return
_BlockOracle
.
Contract
.
contract
.
Transact
(
opts
,
method
,
params
...
)
}
// Load is a free data retrieval call binding the contract method 0x99d548aa.
//
// Solidity: function load(uint256 _blockNumber) view returns((bytes32,uint64) blockInfo_)
func
(
_BlockOracle
*
BlockOracleCaller
)
Load
(
opts
*
bind
.
CallOpts
,
_blockNumber
*
big
.
Int
)
(
BlockOracleBlockInfo
,
error
)
{
var
out
[]
interface
{}
err
:=
_BlockOracle
.
contract
.
Call
(
opts
,
&
out
,
"load"
,
_blockNumber
)
if
err
!=
nil
{
return
*
new
(
BlockOracleBlockInfo
),
err
}
out0
:=
*
abi
.
ConvertType
(
out
[
0
],
new
(
BlockOracleBlockInfo
))
.
(
*
BlockOracleBlockInfo
)
return
out0
,
err
}
// Load is a free data retrieval call binding the contract method 0x99d548aa.
//
// Solidity: function load(uint256 _blockNumber) view returns((bytes32,uint64) blockInfo_)
func
(
_BlockOracle
*
BlockOracleSession
)
Load
(
_blockNumber
*
big
.
Int
)
(
BlockOracleBlockInfo
,
error
)
{
return
_BlockOracle
.
Contract
.
Load
(
&
_BlockOracle
.
CallOpts
,
_blockNumber
)
}
// Load is a free data retrieval call binding the contract method 0x99d548aa.
//
// Solidity: function load(uint256 _blockNumber) view returns((bytes32,uint64) blockInfo_)
func
(
_BlockOracle
*
BlockOracleCallerSession
)
Load
(
_blockNumber
*
big
.
Int
)
(
BlockOracleBlockInfo
,
error
)
{
return
_BlockOracle
.
Contract
.
Load
(
&
_BlockOracle
.
CallOpts
,
_blockNumber
)
}
// Store is a paid mutator transaction binding the contract method 0x6057361d.
//
// Solidity: function store(uint256 _blockNumber) returns()
func
(
_BlockOracle
*
BlockOracleTransactor
)
Store
(
opts
*
bind
.
TransactOpts
,
_blockNumber
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockOracle
.
contract
.
Transact
(
opts
,
"store"
,
_blockNumber
)
}
// Store is a paid mutator transaction binding the contract method 0x6057361d.
//
// Solidity: function store(uint256 _blockNumber) returns()
func
(
_BlockOracle
*
BlockOracleSession
)
Store
(
_blockNumber
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockOracle
.
Contract
.
Store
(
&
_BlockOracle
.
TransactOpts
,
_blockNumber
)
}
// Store is a paid mutator transaction binding the contract method 0x6057361d.
//
// Solidity: function store(uint256 _blockNumber) returns()
func
(
_BlockOracle
*
BlockOracleTransactorSession
)
Store
(
_blockNumber
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
return
_BlockOracle
.
Contract
.
Store
(
&
_BlockOracle
.
TransactOpts
,
_blockNumber
)
}
op-bindings/bindings/blockoracle_more.go
0 → 100644
View file @
ae7c2740
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package
bindings
import
(
"encoding/json"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
const
BlockOracleStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/dispute/BlockOracle.sol:BlockOracle
\"
,
\"
label
\"
:
\"
blockHashes
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_mapping(t_uint256,t_struct(BlockInfo)1001_storage)
\"
}],
\"
types
\"
:{
\"
t_mapping(t_uint256,t_struct(BlockInfo)1001_storage)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(uint256 =
\u003e
struct BlockOracle.BlockInfo)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_uint256
\"
,
\"
value
\"
:
\"
t_struct(BlockInfo)1001_storage
\"
},
\"
t_struct(BlockInfo)1001_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct BlockOracle.BlockInfo
\"
,
\"
numberOfBytes
\"
:
\"
64
\"
},
\"
t_uint256
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint256
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Hash)1002
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Hash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Timestamp)1003
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Timestamp
\"
,
\"
numberOfBytes
\"
:
\"
8
\"
}}}"
var
BlockOracleStorageLayout
=
new
(
solc
.
StorageLayout
)
var
BlockOracleDeployedBin
=
"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80636057361d1461003b57806399d548aa14610050575b600080fd5b61004e6100493660046101d0565b61008c565b005b61006361005e3660046101d0565b610151565b604080518251815260209283015167ffffffffffffffff16928101929092520160405180910390f35b804060008190036100c9576040517fd82756d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006100d58343610218565b6100e090600d61022f565b6100ea9042610218565b60408051808201825293845267ffffffffffffffff918216602080860191825260009687528690529420925183559251600190920180547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016929093169190911790915550565b604080518082018252600080825260209182018190528381528082528281208351808501909452805480855260019091015467ffffffffffffffff1692840192909252036101cb576040517f37cf270500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000602082840312156101e257600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561022a5761022a6101e9565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610267576102676101e9565b50029056fea164736f6c634300080f000a"
func
init
()
{
if
err
:=
json
.
Unmarshal
([]
byte
(
BlockOracleStorageLayoutJSON
),
BlockOracleStorageLayout
);
err
!=
nil
{
panic
(
err
)
}
layouts
[
"BlockOracle"
]
=
BlockOracleStorageLayout
deployedBytecodes
[
"BlockOracle"
]
=
BlockOracleDeployedBin
}
op-bindings/bindings/faultdisputegame.go
View file @
ae7c2740
...
@@ -30,8 +30,8 @@ var (
...
@@ -30,8 +30,8 @@ var (
// FaultDisputeGameMetaData contains all meta data concerning the FaultDisputeGame contract.
// FaultDisputeGameMetaData contains all meta data concerning the FaultDisputeGame contract.
var
FaultDisputeGameMetaData
=
&
bind
.
MetaData
{
var
FaultDisputeGameMetaData
=
&
bind
.
MetaData
{
ABI
:
"[{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_absolutePrestate
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_maxGameDepth
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"
_gameDuration
\"
,
\"
type
\"
:
\"
uint64
\"
},{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"
_vm
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
contractL2OutputOracle
\"
,
\"
name
\"
:
\"
_l2oo
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
contractBlock
HashOracle
\"
,
\"
name
\"
:
\"
_blockHashOracle
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
CannotDefendRootClaim
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClaimAlreadyExists
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockNotExpired
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockTimeExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameDepthExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameNotInProgress
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidParent
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidPrestate
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ValidStep
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
Move
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Resolved
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ABSOLUTE_PRESTATE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
BLOCK_HASH_ORACLE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractBlockHashOracle
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GAME_DURATION
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
L2_OUTPUT_ORACLE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractL2OutputOracle
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MAX_GAME_DEPTH
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
VM
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
addLocalData
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
attack
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
bondManager
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBondManager
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
claimData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
countered
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
Position
\"
,
\"
name
\"
:
\"
position
\"
,
\"
type
\"
:
\"
uint128
\"
},{
\"
internalType
\"
:
\"
Clock
\"
,
\"
name
\"
:
\"
clock
\"
,
\"
type
\"
:
\"
uint128
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
claimDataLen
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
createdAt
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
createdAt_
\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
defend
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
extraData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameStart
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameType
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1BlockNumber
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
l1BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1Head
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l2BlockNumber
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
l2BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_challengeIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
}],
\"
name
\"
:
\"
move
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
resolve
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
rootClaim
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
status
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
step
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
ABI
:
"[{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_absolutePrestate
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_maxGameDepth
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"
_gameDuration
\"
,
\"
type
\"
:
\"
uint64
\"
},{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"
_vm
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
contractL2OutputOracle
\"
,
\"
name
\"
:
\"
_l2oo
\"
,
\"
type
\"
:
\"
address
\"
},{
\"
internalType
\"
:
\"
contractBlock
Oracle
\"
,
\"
name
\"
:
\"
_blockOracle
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
constructor
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
CannotDefendRootClaim
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClaimAlreadyExists
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockNotExpired
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ClockTimeExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameDepthExceeded
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GameNotInProgress
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidParent
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
InvalidPrestate
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
L1HeadTooOld
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ValidStep
\"
,
\"
type
\"
:
\"
error
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
address
\"
,
\"
name
\"
:
\"
claimant
\"
,
\"
type
\"
:
\"
address
\"
}],
\"
name
\"
:
\"
Move
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
anonymous
\"
:false,
\"
inputs
\"
:[{
\"
indexed
\"
:true,
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
name
\"
:
\"
Resolved
\"
,
\"
type
\"
:
\"
event
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
ABSOLUTE_PRESTATE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
BLOCK_ORACLE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractBlockOracle
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
GAME_DURATION
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Duration
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
L2_OUTPUT_ORACLE
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractL2OutputOracle
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
MAX_GAME_DEPTH
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
VM
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBigStepper
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_ident
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_partOffset
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
addLocalData
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
attack
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
bondManager
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
contractIBondManager
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
address
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
claimData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint32
\"
,
\"
name
\"
:
\"
parentIndex
\"
,
\"
type
\"
:
\"
uint32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
countered
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
Position
\"
,
\"
name
\"
:
\"
position
\"
,
\"
type
\"
:
\"
uint128
\"
},{
\"
internalType
\"
:
\"
Clock
\"
,
\"
name
\"
:
\"
clock
\"
,
\"
type
\"
:
\"
uint128
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
claimDataLen
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
len_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
createdAt
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"
createdAt_
\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_parentIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
name
\"
:
\"
defend
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
extraData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameData
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
extraData_
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameStart
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Timestamp
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint64
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
gameType
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
GameType
\"
,
\"
name
\"
:
\"
gameType_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
initialize
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1BlockNumber
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
l1BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l1Head
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
l2BlockNumber
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
l2BlockNumber_
\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_challengeIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
_claim
\"
,
\"
type
\"
:
\"
bytes32
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
}],
\"
name
\"
:
\"
move
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
payable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint256
\"
}],
\"
name
\"
:
\"
proposals
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
uint128
\"
,
\"
name
\"
:
\"
index
\"
,
\"
type
\"
:
\"
uint128
\"
},{
\"
internalType
\"
:
\"
uint128
\"
,
\"
name
\"
:
\"
l2BlockNumber
\"
,
\"
type
\"
:
\"
uint128
\"
},{
\"
internalType
\"
:
\"
Hash
\"
,
\"
name
\"
:
\"
outputRoot
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
resolve
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"
status_
\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
rootClaim
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
Claim
\"
,
\"
name
\"
:
\"
rootClaim_
\"
,
\"
type
\"
:
\"
bytes32
\"
}],
\"
stateMutability
\"
:
\"
pure
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
status
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
enumGameStatus
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
uint8
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[{
\"
internalType
\"
:
\"
uint256
\"
,
\"
name
\"
:
\"
_claimIndex
\"
,
\"
type
\"
:
\"
uint256
\"
},{
\"
internalType
\"
:
\"
bool
\"
,
\"
name
\"
:
\"
_isAttack
\"
,
\"
type
\"
:
\"
bool
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_stateData
\"
,
\"
type
\"
:
\"
bytes
\"
},{
\"
internalType
\"
:
\"
bytes
\"
,
\"
name
\"
:
\"
_proof
\"
,
\"
type
\"
:
\"
bytes
\"
}],
\"
name
\"
:
\"
step
\"
,
\"
outputs
\"
:[],
\"
stateMutability
\"
:
\"
nonpayable
\"
,
\"
type
\"
:
\"
function
\"
},{
\"
inputs
\"
:[],
\"
name
\"
:
\"
version
\"
,
\"
outputs
\"
:[{
\"
internalType
\"
:
\"
string
\"
,
\"
name
\"
:
\"\"
,
\"
type
\"
:
\"
string
\"
}],
\"
stateMutability
\"
:
\"
view
\"
,
\"
type
\"
:
\"
function
\"
}]"
,
Bin
:
"0x6101a06040523480156200001257600080fd5b5060405162002
b2a38038062002b2a83398101604081905262000035916200009a565b6000608081905260a052600560c05260e095909552610100939093526001600160401b03909116610120526001600160a01b039081166101405290811661016052166101805262000122565b6001600160a01b03811681146200009757600080fd5b50565b60008060008060008060c08789031215620000b457600080fd5b86516020880151604089015191975095506001600160401b0381168114620000db57600080fd5b6060880151909450620000ee8162000081565b6080880151909350620001018162000081565b60a0880151909250620001148162000081565b809150509295509295509295565b60805160a05160c05160e0516101005161012051610140516101605161018051612951620001d9600039600081816101c301526117b701526000818161051f0152610871015260008181610492015281816106ae0152611b9801526000818161055301528181610d6a01526113bc01526000818161039401528181610c72015281816111fb015261199c0152600081816102760152611ad601526000610fe701526000610fbe01526000610f9501526129516000f3fe6080604052600436106101ac5760003560e01c80636361506d116100ec578063c0c3a0921161008a578063c6f0308c11610064578063c6f0308c14610588578063cf09e0d0146105ec578063d8cc1a3c1461060b578063fa24f7431461062b57600080fd5b8063c0c3a0921461050d578063c31b29ce14610541578063c55cd0c71461057557600080fd5b80638b85902b116100c65780638b85902b146104405780639293129814610480578063bbdc02db146104b4578063bcef3b55146104d057600080fd5b80636361506d146104005780638129fc1c146104165780638980e0cc1461042b57600080fd5b80633218b99d116101595780634778efe8116101335780634778efe81461038257806354fd4d50146103b6578063609d3334146103d8578063632247ea146103ed57600080fd5b80633218b99d146102fb57806335fef56714610335578063363cc4271461034857600080fd5b8063266198f91161018a578063266198f9146102645780632810e1d6146102a6578063298c9005146102bb57600080fd5b8063082e7b41146101b15780631e27052a1461020f578063200d2ed214610231575b600080fd5b3480156101bd57600080fd5b506101e57f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561021b57600080fd5b5061022f61022a3660046122cd565b61064f565b005b34801561023d57600080fd5b506000546102579068010000000000000000900460ff1681565b604051610206919061231e565b34801561027057600080fd5b506102987f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610206565b3480156102b257600080fd5b50610257610b58565b3480156102c757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135610298565b34801561030757600080fd5b5060005461031c9067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610206565b61022f6103433660046122cd565b610f7e565b34801561035457600080fd5b506000546101e5906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561038e57600080fd5b506102987f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c257600080fd5b506103cb610f8e565b60405161020691906123d5565b3480156103e457600080fd5b506103cb611031565b61022f6103fb366004612404565b61103f565b34801561040c57600080fd5b5061029860015481565b34801561042257600080fd5b5061022f61165b565b34801561043757600080fd5b50600254610298565b34801561044c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610298565b34801561048c57600080fd5b506101e57f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b5060405160008152602001610206565b3480156104dc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610298565b34801561051957600080fd5b506101e57f000000000000000000000000000000000000000000000000000000000000000081565b34801561054d57600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b61022f6105833660046122cd565b611876565b34801561059457600080fd5b506105a86105a3366004612439565b611882565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610206565b3480156105f857600080fd5b5060005467ffffffffffffffff1661031c565b34801561061757600080fd5b5061022f61062636600461249b565b6118f3565b34801561063757600080fd5b50610640611e17565b60405161020693929190612525565b6000805468010000000000000000900460ff166002811115610673576106736122ef565b146106aa576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b9190612550565b9050826001036107f6576001546040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018590526024810191909152602060448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084015b6020604051808303816000875af11580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f09190612586565b50505050565b8260020361098f576040517fcf8e5cf0000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135600482015260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cf8e5cf090602401606060405180830381865afa1580156108b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc91906125ee565b80516040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018790526024810191909152602060448201526064810185905290915073ffffffffffffffffffffffffffffffffffffffff831690639a1f5e7f906084016020604051808303816000875af1158015610964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109889190612586565b5050505050565b82600303610a28576040517f9a1f5e7f00000000000000000000000000000000000000000000000000000000815260048101849052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356024820152602060448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016107ad565b82600403610ac7576040517f9a1f5e7f00000000000000000000000000000000000000000000000000000000815260048101849052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013560c01b6024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016107ad565b82600503610b53576040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018490524660c01b6024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016020604051808303816000875af11580156107cc573d6000803e3d6000fd5b505050565b60008060005468010000000000000000900460ff166002811115610b7e57610b7e6122ef565b14610bb5576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600090610bc7906001906126a9565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff811015610cb157600060028281548110610c0157610c016126c0565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff6401000000009091041615610c525750610bdc565b6002810154600090610c96906fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000611e55565b905083811015610caa578093508260010194505b5050610bdc565b50600060028381548110610cc757610cc76126c0565b600091825260208220600390910201805490925063ffffffff90811691908214610d315760028281548110610cfe57610cfe6126c0565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff16610d5d565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c16610da167ffffffffffffffff8316426126a9565b610dbd836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610dd191906126ef565b11610e08576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600283810154610eaa906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b610eb49190612736565b67ffffffffffffffff16158015610edb57506fffffffffffffffffffffffffffffffff8414155b15610ee95760029550610eee565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1668010000000000000000836002811115610f3357610f336122ef565b021790556002811115610f4857610f486122ef565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b905090565b610f8a8282600061103f565b5050565b6060610fb97f0000000000000000000000000000000000000000000000000000000000000000611f0a565b610fe27f0000000000000000000000000000000000000000000000000000000000000000611f0a565b61100b7f0000000000000000000000000000000000000000000000000000000000000000611f0a565b60405160200161101d9392919061275d565b604051602081830303815290604052905090565b6060610f7960206040612047565b6000805468010000000000000000900460ff166002811115611063576110636122ef565b1461109a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b821580156110a6575080155b156110dd576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600284815481106110f2576110f26126c0565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff8082166060850152700100000000000000000000000000000000909104166080830152825491935091908690811061118d5761118d6126c0565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff9093169290921790915560608201516111f7906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f00000000000000000000000000000000000000000000000000000000000000006112b6826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611156112f8576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614611358576002836000015163ffffffff1681548110611327576113276126c0565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642611391846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166113a591906126ef565b6113af91906126a9565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115611422576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421790506000611443888660009182526020526040902090565b60008181526003602052604090205490915060ff161561148f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060a001604052808b63ffffffff1681526020016000151581526020018a8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548160ff0219169083151502179055506040820151816001015560608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050503373ffffffffffffffffffffffffffffffffffffffff16888a7f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be60405160405180910390a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016116e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff90931692909217949094178155604080840151948201949094556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906399d548aa90611812907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161183091815260200190565b602060405180830381865afa15801561184d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190612586565b600155565b610f8a8282600161103f565b6002818154811061189257600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff166002811115611917576119176122ef565b1461194e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028781548110611963576119636126c0565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506119c27f000000000000000000000000000000000000000000000000000000000000000060016126ef565b611a5e826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611a9f576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611b2557611ac3836fffffffffffffffffffffffffffffffff166120de565b67ffffffffffffffff16600003611afc577f00000000000000000000000000000000000000000000000000000000000000009150611b1e565b611b17611b0a6001866127d3565b865463ffffffff16612184565b6001015491505b5083611b3f565b84600101549150611b3c846001611b0a9190612804565b90505b818989604051611b50929190612838565b604051809103902014611b8f576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611bf59493929190612891565b6020604051808303816000875af1158015611c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c389190612586565b600284810154929091149250600091611ce3906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611d7f886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611d8991906128c3565b611d939190612736565b67ffffffffffffffff161590508115158103611ddb576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611e4e611031565b9050909192565b600080611ee2847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b606081600003611f4d57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611f775780611f61816128e4565b9150611f709050600a8361291c565b9150611f51565b60008167ffffffffffffffff811115611f9257611f9261259f565b6040519080825280601f01601f191660200182016040528015611fbc576020820181803683370190505b5090505b841561203f57611fd16001836126a9565b9150611fde600a86612930565b611fe99060306126ef565b60f81b818381518110611ffe57611ffe6126c0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612038600a8661291c565b9450611fc0565b949350505050565b6060600061207e84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036126ef565b90508267ffffffffffffffff1667ffffffffffffffff8111156120a3576120a361259f565b6040519080825280601f01601f1916602001820160405280156120cd576020820181803683370190505b509150828160208401375092915050565b60008061216b837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806121a2846fffffffffffffffffffffffffffffffff16612221565b9050600283815481106121b7576121b76126c0565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461221a57815460028054909163ffffffff16908110612205576122056126c0565b906000526020600020906003020191506121c8565b5092915050565b600081196001830116816122b5827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b600080604083850312156122e057600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310612359577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60005b8381101561237a578181015183820152602001612362565b838111156107f05750506000910152565b600081518084526123a381602086016020860161235f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006123e8602083018461238b565b9392505050565b803580151581146123ff57600080fd5b919050565b60008060006060848603121561241957600080fd5b8335925060208401359150612430604085016123ef565b90509250925092565b60006020828403121561244b57600080fd5b5035919050565b60008083601f84011261246457600080fd5b50813567ffffffffffffffff81111561247c57600080fd5b60208301915083602082850101111561249457600080fd5b9250929050565b600080600080600080608087890312156124b457600080fd5b863595506124c4602088016123ef565b9450604087013567ffffffffffffffff808211156124e157600080fd5b6124ed8a838b01612452565b9096509450606089013591508082111561250657600080fd5b5061251389828a01612452565b979a9699509497509295939492505050565b60ff84168152826020820152606060408201526000612547606083018461238b565b95945050505050565b60006020828403121561256257600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146123e857600080fd5b60006020828403121561259857600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff811681146123ff57600080fd5b60006060828403121561260057600080fd5b6040516060810181811067ffffffffffffffff8211171561264a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528251815261265d602084016125ce565b602082015261266e604084016125ce565b60408201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156126bb576126bb61267a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082198211156127025761270261267a565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff8084168061275157612751612707565b92169190910692915050565b6000845161276f81846020890161235f565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516127ab816001850160208a0161235f565b600192019182015283516127c681600284016020880161235f565b0160020195945050505050565b60006fffffffffffffffffffffffffffffffff838116908316818110156127fc576127fc61267a565b039392505050565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561282f5761282f61267a565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006128a5604083018688612848565b82810360208401526128b8818587612848565b979650505050505050565b600067ffffffffffffffff838116908316818110156127fc576127fc61267a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129155761291561267a565b5060010190565b60008261292b5761292b612707565b500490565b60008261293f5761293f612707
565b50069056fea164736f6c634300080f000a"
,
Bin
:
"0x6101a06040523480156200001257600080fd5b5060405162002
df838038062002df883398101604081905262000035916200009a565b6000608081905260a052600660c05260e095909552610100939093526001600160401b03909116610120526001600160a01b039081166101405290811661016052166101805262000122565b6001600160a01b03811681146200009757600080fd5b50565b60008060008060008060c08789031215620000b457600080fd5b86516020880151604089015191975095506001600160401b0381168114620000db57600080fd5b6060880151909450620000ee8162000081565b6080880151909350620001018162000081565b60a0880151909250620001148162000081565b809150509295509295509295565b60805160a05160c05160e0516101005161012051610140516101605161018051612c11620001e7600039600081816103ee01526118f5015260008181610579015281816116c201528181611796015261186f0152600081816104ec015281816107560152611dd10152600081816105ad01528181610cb401526113060152600081816103ba01528181610bbc015281816111450152611bd50152600081816102770152611d0f01526000610f3101526000610f0801526000610edf0152612c116000f3fe6080604052600436106101b75760003560e01c80636361506d116100ec578063c0c3a0921161008a578063c6f0308c11610064578063c6f0308c146105e2578063cf09e0d014610646578063d8cc1a3c14610665578063fa24f7431461068557600080fd5b8063c0c3a09214610567578063c31b29ce1461059b578063c55cd0c7146105cf57600080fd5b80638b85902b116100c65780638b85902b1461049a57806392931298146104da578063bbdc02db1461050e578063bcef3b551461052a57600080fd5b80636361506d1461045a5780638129fc1c146104705780638980e0cc1461048557600080fd5b806335fef56711610159578063529184c911610133578063529184c9146103dc57806354fd4d5014610410578063609d333414610432578063632247ea1461044757600080fd5b806335fef56714610336578063363cc427146103495780634778efe8146103a857600080fd5b8063266198f911610195578063266198f9146102655780632810e1d6146102a7578063298c9005146102bc5780633218b99d146102fc57600080fd5b8063013cf08b146101bc5780631e27052a14610210578063200d2ed214610232575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004612506565b6106a9565b604080516fffffffffffffffffffffffffffffffff9485168152939092166020840152908201526060015b60405180910390f35b34801561021c57600080fd5b5061023061022b36600461251f565b6106f7565b005b34801561023e57600080fd5b506000546102589068010000000000000000900460ff1681565b6040516102079190612570565b34801561027157600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610207565b3480156102b357600080fd5b50610258610aa2565b3480156102c857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135610299565b34801561030857600080fd5b5060005461031d9067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610207565b61023061034436600461251f565b610ec8565b34801561035557600080fd5b50600054610383906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610207565b3480156103b457600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e857600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561041c57600080fd5b50610425610ed8565b6040516102079190612627565b34801561043e57600080fd5b50610425610f7b565b610230610455366004612656565b610f89565b34801561046657600080fd5b5061029960015481565b34801561047c57600080fd5b5061023061156e565b34801561049157600080fd5b50600254610299565b3480156104a657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610299565b3480156104e657600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561051a57600080fd5b5060405160008152602001610207565b34801561053657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610299565b34801561057357600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a757600080fd5b5061031d7f000000000000000000000000000000000000000000000000000000000000000081565b6102306105dd36600461251f565b611aaf565b3480156105ee57600080fd5b506106026105fd366004612506565b611abb565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610207565b34801561065257600080fd5b5060005467ffffffffffffffff1661031d565b34801561067157600080fd5b506102306106803660046126d4565b611b2c565b34801561069157600080fd5b5061069a612050565b6040516102079392919061275e565b600381600281106106b957600080fd5b6002020180546001909101546fffffffffffffffffffffffffffffffff80831693507001000000000000000000000000000000009092049091169083565b6000805468010000000000000000900460ff16600281111561071b5761071b612541565b14610752576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e39190612789565b90508260010361089e576001546040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018590526024810191909152602060448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084015b6020604051808303816000875af1158015610874573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089891906127bf565b50505050565b600483101561096657600183161573ffffffffffffffffffffffffffffffffffffffff8216639a1f5e7f85600384600281106108dc576108dc6127d8565b60020201600101546020876040518563ffffffff1660e01b815260040161091c949392919093845260208401929092526040830152606082015260800190565b6020604051808303816000875af115801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f91906127bf565b5050505050565b82600403610a11576003546040517f9a1f5e7f0000000000000000000000000000000000000000000000000000000081526004810185905270010000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f90608401610855565b82600503610a9d576040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018490524660c01b6024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016020604051808303816000875af1158015610874573d6000803e3d6000fd5b505050565b60008060005468010000000000000000900460ff166002811115610ac857610ac8612541565b14610aff576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600090610b1190600190612836565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff811015610bfb57600060028281548110610b4b57610b4b6127d8565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff6401000000009091041615610b9c5750610b26565b6002810154600090610be0906fffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000061208e565b905083811015610bf4578093508260010194505b5050610b26565b50600060028381548110610c1157610c116127d8565b600091825260208220600390910201805490925063ffffffff90811691908214610c7b5760028281548110610c4857610c486127d8565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff16610ca7565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c16610ceb67ffffffffffffffff831642612836565b610d07836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610d1b919061284d565b11610d52576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600283810154610df4906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b610dfe9190612894565b67ffffffffffffffff16158015610e2557506fffffffffffffffffffffffffffffffff8414155b15610e335760029550610e38565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1668010000000000000000836002811115610e7d57610e7d612541565b021790556002811115610e9257610e92612541565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b905090565b610ed482826000610f89565b5050565b6060610f037f0000000000000000000000000000000000000000000000000000000000000000612143565b610f2c7f0000000000000000000000000000000000000000000000000000000000000000612143565b610f557f0000000000000000000000000000000000000000000000000000000000000000612143565b604051602001610f67939291906128bb565b604051602081830303815290604052905090565b6060610ec360206040612280565b6000805468010000000000000000900460ff166002811115610fad57610fad612541565b14610fe4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610ff0575080155b15611027576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002848154811061103c5761103c6127d8565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff808216606085015270010000000000000000000000000000000090910416608083015282549193509190869081106110d7576110d76127d8565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909316929092179091556060820151611141906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f0000000000000000000000000000000000000000000000000000000000000000611200826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115611242576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff908116146112a2576002836000015163ffffffff1681548110611271576112716127d8565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff16426112db846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166112ef919061284d565b6112f99190612836565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff8216111561136c576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42179050600061138d888660009182526020526040902090565b60008181526007602052604090205490915060ff16156113d9576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260076020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581528184018e81526fffffffffffffffffffffffffffffffff808d16606085019081528a8216608086019081526002805497880181558a52945160039096027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace8101805495511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000909616979099169690961793909317909655517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf8401555190518416700100000000000000000000000000000000029316929092177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0909201919091555133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016115f37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff9081169091528254600181810185556000948552602080862085516003909402018054918601511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921663ffffffff909416939093171782556040840151908201556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016637f00642061171c60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161173a91815260200190565b602060405180830381865afa158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b91906127bf565b9050600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a25ae5576117c6600185612836565b6040518263ffffffff1660e01b81526004016117e491815260200190565b606060405180830381865afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118259190612980565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da9190612980565b9050600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166399d548aa367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001356040518263ffffffff1660e01b815260040161196691815260200190565b6040805180830381865afa158015611982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a69190612a0c565b905081602001516fffffffffffffffffffffffffffffffff16816020015167ffffffffffffffff161015611a06576040517f13809ba500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060600160405280600186611a1e9190612836565b6fffffffffffffffffffffffffffffffff908116825260408681015182166020808501919091529651928101929092528251838701519082167001000000000000000000000000000000009183168202176003559282015160045581516060810183529681168088528583015190911695870186905293519501859052929092021760055560069190915551600155565b610ed482826001610f89565b60028181548110611acb57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff166002811115611b5057611b50612541565b14611b87576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028781548110611b9c57611b9c6127d8565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b9050611bfb7f0000000000000000000000000000000000000000000000000000000000000000600161284d565b611c97826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611cd8576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611d5e57611cfc836fffffffffffffffffffffffffffffffff16612317565b67ffffffffffffffff16600003611d35577f00000000000000000000000000000000000000000000000000000000000000009150611d57565b611d50611d43600186612a93565b865463ffffffff166123bd565b6001015491505b5083611d78565b84600101549150611d75846001611d439190612ac4565b90505b818989604051611d89929190612af8565b604051809103902014611dc8576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611e2e9493929190612b51565b6020604051808303816000875af1158015611e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7191906127bf565b600284810154929091149250600091611f1c906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611fb8886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611fc29190612b83565b611fcc9190612894565b67ffffffffffffffff161590508115158103612014576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060612087610f7b565b9050909192565b60008061211b847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60608160000361218657505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156121b0578061219a81612ba4565b91506121a99050600a83612bdc565b915061218a565b60008167ffffffffffffffff8111156121cb576121cb612931565b6040519080825280601f01601f1916602001820160405280156121f5576020820181803683370190505b5090505b84156122785761220a600183612836565b9150612217600a86612bf0565b61222290603061284d565b60f81b818381518110612237576122376127d8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612271600a86612bdc565b94506121f9565b949350505050565b606060006122b784367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900361284d565b90508267ffffffffffffffff1667ffffffffffffffff8111156122dc576122dc612931565b6040519080825280601f01601f191660200182016040528015612306576020820181803683370190505b509150828160208401375092915050565b6000806123a4837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806123db846fffffffffffffffffffffffffffffffff1661245a565b9050600283815481106123f0576123f06127d8565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461245357815460028054909163ffffffff1690811061243e5761243e6127d8565b90600052602060002090600302019150612401565b5092915050565b600081196001830116816124ee827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b60006020828403121561251857600080fd5b5035919050565b6000806040838503121561253257600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106125ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60005b838110156125cc5781810151838201526020016125b4565b838111156108985750506000910152565b600081518084526125f58160208601602086016125b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061263a60208301846125dd565b9392505050565b8035801515811461265157600080fd5b919050565b60008060006060848603121561266b57600080fd5b833592506020840135915061268260408501612641565b90509250925092565b60008083601f84011261269d57600080fd5b50813567ffffffffffffffff8111156126b557600080fd5b6020830191508360208285010111156126cd57600080fd5b9250929050565b600080600080600080608087890312156126ed57600080fd5b863595506126fd60208801612641565b9450604087013567ffffffffffffffff8082111561271a57600080fd5b6127268a838b0161268b565b9096509450606089013591508082111561273f57600080fd5b5061274c89828a0161268b565b979a9699509497509295939492505050565b60ff8416815282602082015260606040820152600061278060608301846125dd565b95945050505050565b60006020828403121561279b57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461263a57600080fd5b6000602082840312156127d157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561284857612848612807565b500390565b6000821982111561286057612860612807565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff808416806128af576128af612865565b92169190910692915050565b600084516128cd8184602089016125b1565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612909816001850160208a016125b1565b600192019182015283516129248160028401602088016125b1565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461265157600080fd5b60006060828403121561299257600080fd5b6040516060810181811067ffffffffffffffff821117156129dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526129ef60208401612960565b6020820152612a0060408401612960565b60408201529392505050565b600060408284031215612a1e57600080fd5b6040516040810167ffffffffffffffff8282108183111715612a69577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8160405284518352602085015191508082168214612a8657600080fd5b5060208201529392505050565b60006fffffffffffffffffffffffffffffffff83811690831681811015612abc57612abc612807565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115612aef57612aef612807565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612b65604083018688612b08565b8281036020840152612b78818587612b08565b979650505050505050565b600067ffffffffffffffff83811690831681811015612abc57612abc612807565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bd557612bd5612807565b5060010190565b600082612beb57612beb612865565b500490565b600082612bff57612bff612865
565b50069056fea164736f6c634300080f000a"
,
}
}
// FaultDisputeGameABI is the input ABI used to generate the binding from.
// FaultDisputeGameABI is the input ABI used to generate the binding from.
...
@@ -43,7 +43,7 @@ var FaultDisputeGameABI = FaultDisputeGameMetaData.ABI
...
@@ -43,7 +43,7 @@ var FaultDisputeGameABI = FaultDisputeGameMetaData.ABI
var
FaultDisputeGameBin
=
FaultDisputeGameMetaData
.
Bin
var
FaultDisputeGameBin
=
FaultDisputeGameMetaData
.
Bin
// DeployFaultDisputeGame deploys a new Ethereum contract, binding an instance of FaultDisputeGame to it.
// DeployFaultDisputeGame deploys a new Ethereum contract, binding an instance of FaultDisputeGame to it.
func
DeployFaultDisputeGame
(
auth
*
bind
.
TransactOpts
,
backend
bind
.
ContractBackend
,
_absolutePrestate
[
32
]
byte
,
_maxGameDepth
*
big
.
Int
,
_gameDuration
uint64
,
_vm
common
.
Address
,
_l2oo
common
.
Address
,
_block
Hash
Oracle
common
.
Address
)
(
common
.
Address
,
*
types
.
Transaction
,
*
FaultDisputeGame
,
error
)
{
func
DeployFaultDisputeGame
(
auth
*
bind
.
TransactOpts
,
backend
bind
.
ContractBackend
,
_absolutePrestate
[
32
]
byte
,
_maxGameDepth
*
big
.
Int
,
_gameDuration
uint64
,
_vm
common
.
Address
,
_l2oo
common
.
Address
,
_blockOracle
common
.
Address
)
(
common
.
Address
,
*
types
.
Transaction
,
*
FaultDisputeGame
,
error
)
{
parsed
,
err
:=
FaultDisputeGameMetaData
.
GetAbi
()
parsed
,
err
:=
FaultDisputeGameMetaData
.
GetAbi
()
if
err
!=
nil
{
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
return
common
.
Address
{},
nil
,
nil
,
err
...
@@ -52,7 +52,7 @@ func DeployFaultDisputeGame(auth *bind.TransactOpts, backend bind.ContractBacken
...
@@ -52,7 +52,7 @@ func DeployFaultDisputeGame(auth *bind.TransactOpts, backend bind.ContractBacken
return
common
.
Address
{},
nil
,
nil
,
errors
.
New
(
"GetABI returned nil"
)
return
common
.
Address
{},
nil
,
nil
,
errors
.
New
(
"GetABI returned nil"
)
}
}
address
,
tx
,
contract
,
err
:=
bind
.
DeployContract
(
auth
,
*
parsed
,
common
.
FromHex
(
FaultDisputeGameBin
),
backend
,
_absolutePrestate
,
_maxGameDepth
,
_gameDuration
,
_vm
,
_l2oo
,
_block
Hash
Oracle
)
address
,
tx
,
contract
,
err
:=
bind
.
DeployContract
(
auth
,
*
parsed
,
common
.
FromHex
(
FaultDisputeGameBin
),
backend
,
_absolutePrestate
,
_maxGameDepth
,
_gameDuration
,
_vm
,
_l2oo
,
_blockOracle
)
if
err
!=
nil
{
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
err
return
common
.
Address
{},
nil
,
nil
,
err
}
}
...
@@ -232,12 +232,12 @@ func (_FaultDisputeGame *FaultDisputeGameCallerSession) ABSOLUTEPRESTATE() ([32]
...
@@ -232,12 +232,12 @@ func (_FaultDisputeGame *FaultDisputeGameCallerSession) ABSOLUTEPRESTATE() ([32]
return
_FaultDisputeGame
.
Contract
.
ABSOLUTEPRESTATE
(
&
_FaultDisputeGame
.
CallOpts
)
return
_FaultDisputeGame
.
Contract
.
ABSOLUTEPRESTATE
(
&
_FaultDisputeGame
.
CallOpts
)
}
}
// BLOCK
HASHORACLE is a free data retrieval call binding the contract method 0x082e7b41
.
// BLOCK
ORACLE is a free data retrieval call binding the contract method 0x529184c9
.
//
//
// Solidity: function BLOCK_
HASH_
ORACLE() view returns(address)
// Solidity: function BLOCK_ORACLE() view returns(address)
func
(
_FaultDisputeGame
*
FaultDisputeGameCaller
)
BLOCK
HASH
ORACLE
(
opts
*
bind
.
CallOpts
)
(
common
.
Address
,
error
)
{
func
(
_FaultDisputeGame
*
FaultDisputeGameCaller
)
BLOCKORACLE
(
opts
*
bind
.
CallOpts
)
(
common
.
Address
,
error
)
{
var
out
[]
interface
{}
var
out
[]
interface
{}
err
:=
_FaultDisputeGame
.
contract
.
Call
(
opts
,
&
out
,
"BLOCK_
HASH_
ORACLE"
)
err
:=
_FaultDisputeGame
.
contract
.
Call
(
opts
,
&
out
,
"BLOCK_ORACLE"
)
if
err
!=
nil
{
if
err
!=
nil
{
return
*
new
(
common
.
Address
),
err
return
*
new
(
common
.
Address
),
err
...
@@ -249,18 +249,18 @@ func (_FaultDisputeGame *FaultDisputeGameCaller) BLOCKHASHORACLE(opts *bind.Call
...
@@ -249,18 +249,18 @@ func (_FaultDisputeGame *FaultDisputeGameCaller) BLOCKHASHORACLE(opts *bind.Call
}
}
// BLOCK
HASHORACLE is a free data retrieval call binding the contract method 0x082e7b41
.
// BLOCK
ORACLE is a free data retrieval call binding the contract method 0x529184c9
.
//
//
// Solidity: function BLOCK_
HASH_
ORACLE() view returns(address)
// Solidity: function BLOCK_ORACLE() view returns(address)
func
(
_FaultDisputeGame
*
FaultDisputeGameSession
)
BLOCK
HASH
ORACLE
()
(
common
.
Address
,
error
)
{
func
(
_FaultDisputeGame
*
FaultDisputeGameSession
)
BLOCKORACLE
()
(
common
.
Address
,
error
)
{
return
_FaultDisputeGame
.
Contract
.
BLOCK
HASH
ORACLE
(
&
_FaultDisputeGame
.
CallOpts
)
return
_FaultDisputeGame
.
Contract
.
BLOCKORACLE
(
&
_FaultDisputeGame
.
CallOpts
)
}
}
// BLOCK
HASHORACLE is a free data retrieval call binding the contract method 0x082e7b41
.
// BLOCK
ORACLE is a free data retrieval call binding the contract method 0x529184c9
.
//
//
// Solidity: function BLOCK_
HASH_
ORACLE() view returns(address)
// Solidity: function BLOCK_ORACLE() view returns(address)
func
(
_FaultDisputeGame
*
FaultDisputeGameCallerSession
)
BLOCK
HASH
ORACLE
()
(
common
.
Address
,
error
)
{
func
(
_FaultDisputeGame
*
FaultDisputeGameCallerSession
)
BLOCKORACLE
()
(
common
.
Address
,
error
)
{
return
_FaultDisputeGame
.
Contract
.
BLOCK
HASH
ORACLE
(
&
_FaultDisputeGame
.
CallOpts
)
return
_FaultDisputeGame
.
Contract
.
BLOCKORACLE
(
&
_FaultDisputeGame
.
CallOpts
)
}
}
// GAMEDURATION is a free data retrieval call binding the contract method 0xc31b29ce.
// GAMEDURATION is a free data retrieval call binding the contract method 0xc31b29ce.
...
@@ -776,6 +776,56 @@ func (_FaultDisputeGame *FaultDisputeGameCallerSession) L2BlockNumber() (*big.In
...
@@ -776,6 +776,56 @@ func (_FaultDisputeGame *FaultDisputeGameCallerSession) L2BlockNumber() (*big.In
return
_FaultDisputeGame
.
Contract
.
L2BlockNumber
(
&
_FaultDisputeGame
.
CallOpts
)
return
_FaultDisputeGame
.
Contract
.
L2BlockNumber
(
&
_FaultDisputeGame
.
CallOpts
)
}
}
// Proposals is a free data retrieval call binding the contract method 0x013cf08b.
//
// Solidity: function proposals(uint256 ) view returns(uint128 index, uint128 l2BlockNumber, bytes32 outputRoot)
func
(
_FaultDisputeGame
*
FaultDisputeGameCaller
)
Proposals
(
opts
*
bind
.
CallOpts
,
arg0
*
big
.
Int
)
(
struct
{
Index
*
big
.
Int
L2BlockNumber
*
big
.
Int
OutputRoot
[
32
]
byte
},
error
)
{
var
out
[]
interface
{}
err
:=
_FaultDisputeGame
.
contract
.
Call
(
opts
,
&
out
,
"proposals"
,
arg0
)
outstruct
:=
new
(
struct
{
Index
*
big
.
Int
L2BlockNumber
*
big
.
Int
OutputRoot
[
32
]
byte
})
if
err
!=
nil
{
return
*
outstruct
,
err
}
outstruct
.
Index
=
*
abi
.
ConvertType
(
out
[
0
],
new
(
*
big
.
Int
))
.
(
**
big
.
Int
)
outstruct
.
L2BlockNumber
=
*
abi
.
ConvertType
(
out
[
1
],
new
(
*
big
.
Int
))
.
(
**
big
.
Int
)
outstruct
.
OutputRoot
=
*
abi
.
ConvertType
(
out
[
2
],
new
([
32
]
byte
))
.
(
*
[
32
]
byte
)
return
*
outstruct
,
err
}
// Proposals is a free data retrieval call binding the contract method 0x013cf08b.
//
// Solidity: function proposals(uint256 ) view returns(uint128 index, uint128 l2BlockNumber, bytes32 outputRoot)
func
(
_FaultDisputeGame
*
FaultDisputeGameSession
)
Proposals
(
arg0
*
big
.
Int
)
(
struct
{
Index
*
big
.
Int
L2BlockNumber
*
big
.
Int
OutputRoot
[
32
]
byte
},
error
)
{
return
_FaultDisputeGame
.
Contract
.
Proposals
(
&
_FaultDisputeGame
.
CallOpts
,
arg0
)
}
// Proposals is a free data retrieval call binding the contract method 0x013cf08b.
//
// Solidity: function proposals(uint256 ) view returns(uint128 index, uint128 l2BlockNumber, bytes32 outputRoot)
func
(
_FaultDisputeGame
*
FaultDisputeGameCallerSession
)
Proposals
(
arg0
*
big
.
Int
)
(
struct
{
Index
*
big
.
Int
L2BlockNumber
*
big
.
Int
OutputRoot
[
32
]
byte
},
error
)
{
return
_FaultDisputeGame
.
Contract
.
Proposals
(
&
_FaultDisputeGame
.
CallOpts
,
arg0
)
}
// RootClaim is a free data retrieval call binding the contract method 0xbcef3b55.
// RootClaim is a free data retrieval call binding the contract method 0xbcef3b55.
//
//
// Solidity: function rootClaim() pure returns(bytes32 rootClaim_)
// Solidity: function rootClaim() pure returns(bytes32 rootClaim_)
...
...
op-bindings/bindings/faultdisputegame_more.go
View file @
ae7c2740
...
@@ -9,11 +9,11 @@ import (
...
@@ -9,11 +9,11 @@ import (
"github.com/ethereum-optimism/optimism/op-bindings/solc"
"github.com/ethereum-optimism/optimism/op-bindings/solc"
)
)
const
FaultDisputeGameStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
gameStart
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Timestamp)101
4
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
status
\"
,
\"
offset
\"
:8,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_enum(GameStatus)1007
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
bondManager
\"
,
\"
offset
\"
:9,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_contract(IBondManager)1006
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
l1Head
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Hash)1012
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claimData
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_array(t_struct(ClaimData)1008_storage)dyn_storage
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claims
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_mapping(t_userDefinedValueType(ClaimHash)1010,t_bool)
\"
}],
\"
types
\"
:{
\"
t_array(t_struct(ClaimData)1008_storage)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
base
\"
:
\"
t_struct(ClaimData)1008_storage
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_contract(IBondManager)1006
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
contract IBondManager
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_enum(GameStatus)1007
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
enum GameStatus
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_mapping(t_userDefinedValueType(ClaimHash)1010,t_bool)
\"
:{
\"
encoding
\"
:
\"
mapping
\"
,
\"
label
\"
:
\"
mapping(ClaimHash =
\u003e
bool)
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
key
\"
:
\"
t_userDefinedValueType(ClaimHash)1010
\"
,
\"
value
\"
:
\"
t_bool
\"
},
\"
t_struct(ClaimData)1008_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData
\"
,
\"
numberOfBytes
\"
:
\"
96
\"
},
\"
t_uint32
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint32
\"
,
\"
numberOfBytes
\"
:
\"
4
\"
},
\"
t_userDefinedValueType(Claim)1009
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Claim
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(ClaimHash)1010
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
ClaimHash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Clock)1011
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Clock
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_userDefinedValueType(Hash)1012
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Hash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Position)1013
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Position
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_userDefinedValueType(Timestamp)1014
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Timestamp
\"
,
\"
numberOfBytes
\"
:
\"
8
\"
}}}"
const
FaultDisputeGameStorageLayoutJSON
=
"{
\"
storage
\"
:[{
\"
astId
\"
:1000,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
gameStart
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Timestamp)101
6
\"
},{
\"
astId
\"
:1001,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
status
\"
,
\"
offset
\"
:8,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_enum(GameStatus)1008
\"
},{
\"
astId
\"
:1002,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
bondManager
\"
,
\"
offset
\"
:9,
\"
slot
\"
:
\"
0
\"
,
\"
type
\"
:
\"
t_contract(IBondManager)1007
\"
},{
\"
astId
\"
:1003,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
l1Head
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
1
\"
,
\"
type
\"
:
\"
t_userDefinedValueType(Hash)1014
\"
},{
\"
astId
\"
:1004,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claimData
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
2
\"
,
\"
type
\"
:
\"
t_array(t_struct(ClaimData)1009_storage)dyn_storage
\"
},{
\"
astId
\"
:1005,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
proposals
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
3
\"
,
\"
type
\"
:
\"
t_array(t_struct(OutputProposal)1010_storage)2_storage
\"
},{
\"
astId
\"
:1006,
\"
contract
\"
:
\"
src/dispute/FaultDisputeGame.sol:FaultDisputeGame
\"
,
\"
label
\"
:
\"
claims
\"
,
\"
offset
\"
:0,
\"
slot
\"
:
\"
7
\"
,
\"
type
\"
:
\"
t_mapping(t_userDefinedValueType(ClaimHash)1012,t_bool)
\"
}],
\"
types
\"
:{
\"
t_array(t_struct(ClaimData)1009_storage)dyn_storage
\"
:{
\"
encoding
\"
:
\"
dynamic_array
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData[]
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
,
\"
base
\"
:
\"
t_struct(ClaimData)1009_storage
\"
},
\"
t_array(t_struct(OutputProposal)1010_storage)2_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.OutputProposal[2]
\"
,
\"
numberOfBytes
\"
:
\"
128
\"
,
\"
base
\"
:
\"
t_struct(OutputProposal)1010_storage
\"
},
\"
t_bool
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
bool
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
t_contract(IBondManager)1007
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
contract IBondManager
\"
,
\"
numberOfBytes
\"
:
\"
20
\"
},
\"
t_enum(GameStatus)1008
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
enum GameStatus
\"
,
\"
numberOfBytes
\"
:
\"
1
\"
},
\"
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)1009_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.ClaimData
\"
,
\"
numberOfBytes
\"
:
\"
96
\"
},
\"
t_struct(OutputProposal)1010_storage
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
struct IFaultDisputeGame.OutputProposal
\"
,
\"
numberOfBytes
\"
:
\"
64
\"
},
\"
t_uint128
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
uint128
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
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(Hash)1014
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Hash
\"
,
\"
numberOfBytes
\"
:
\"
32
\"
},
\"
t_userDefinedValueType(Position)1015
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Position
\"
,
\"
numberOfBytes
\"
:
\"
16
\"
},
\"
t_userDefinedValueType(Timestamp)1016
\"
:{
\"
encoding
\"
:
\"
inplace
\"
,
\"
label
\"
:
\"
Timestamp
\"
,
\"
numberOfBytes
\"
:
\"
8
\"
}}}"
var
FaultDisputeGameStorageLayout
=
new
(
solc
.
StorageLayout
)
var
FaultDisputeGameStorageLayout
=
new
(
solc
.
StorageLayout
)
var
FaultDisputeGameDeployedBin
=
"0x6080604052600436106101
ac5760003560e01c80636361506d116100ec578063c0c3a0921161008a578063c6f0308c11610064578063c6f0308c14610588578063cf09e0d0146105ec578063d8cc1a3c1461060b578063fa24f7431461062b57600080fd5b8063c0c3a0921461050d578063c31b29ce14610541578063c55cd0c71461057557600080fd5b80638b85902b116100c65780638b85902b146104405780639293129814610480578063bbdc02db146104b4578063bcef3b55146104d057600080fd5b80636361506d146104005780638129fc1c146104165780638980e0cc1461042b57600080fd5b80633218b99d116101595780634778efe8116101335780634778efe81461038257806354fd4d50146103b6578063609d3334146103d8578063632247ea146103ed57600080fd5b80633218b99d146102fb57806335fef56714610335578063363cc4271461034857600080fd5b8063266198f91161018a578063266198f9146102645780632810e1d6146102a6578063298c9005146102bb57600080fd5b8063082e7b41146101b15780631e27052a1461020f578063200d2ed214610231575b600080fd5b3480156101bd57600080fd5b506101e57f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561021b57600080fd5b5061022f61022a3660046122cd565b61064f565b005b34801561023d57600080fd5b506000546102579068010000000000000000900460ff1681565b604051610206919061231e565b34801561027057600080fd5b506102987f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610206565b3480156102b257600080fd5b50610257610b58565b3480156102c757600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135610298565b34801561030757600080fd5b5060005461031c9067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610206565b61022f6103433660046122cd565b610f7e565b34801561035457600080fd5b506000546101e5906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561038e57600080fd5b506102987f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c257600080fd5b506103cb610f8e565b60405161020691906123d5565b3480156103e457600080fd5b506103cb611031565b61022f6103fb366004612404565b61103f565b34801561040c57600080fd5b5061029860015481565b34801561042257600080fd5b5061022f61165b565b34801561043757600080fd5b50600254610298565b34801561044c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610298565b34801561048c57600080fd5b506101e57f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c057600080fd5b5060405160008152602001610206565b3480156104dc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610298565b34801561051957600080fd5b506101e57f000000000000000000000000000000000000000000000000000000000000000081565b34801561054d57600080fd5b5061031c7f000000000000000000000000000000000000000000000000000000000000000081565b61022f6105833660046122cd565b611876565b34801561059457600080fd5b506105a86105a3366004612439565b611882565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610206565b3480156105f857600080fd5b5060005467ffffffffffffffff1661031c565b34801561061757600080fd5b5061022f61062636600461249b565b6118f3565b34801561063757600080fd5b50610640611e17565b60405161020693929190612525565b6000805468010000000000000000900460ff166002811115610673576106736122ef565b146106aa576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b9190612550565b9050826001036107f6576001546040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018590526024810191909152602060448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084015b6020604051808303816000875af11580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f09190612586565b50505050565b8260020361098f576040517fcf8e5cf0000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135600482015260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063cf8e5cf090602401606060405180830381865afa1580156108b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108dc91906125ee565b80516040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018790526024810191909152602060448201526064810185905290915073ffffffffffffffffffffffffffffffffffffffff831690639a1f5e7f906084016020604051808303816000875af1158015610964573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109889190612586565b5050505050565b82600303610a28576040517f9a1f5e7f00000000000000000000000000000000000000000000000000000000815260048101849052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356024820152602060448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016107ad565b82600403610ac7576040517f9a1f5e7f00000000000000000000000000000000000000000000000000000000815260048101849052367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013560c01b6024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016107ad565b82600503610b53576040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018490524660c01b6024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016020604051808303816000875af11580156107cc573d6000803e3d6000fd5b505050565b60008060005468010000000000000000900460ff166002811115610b7e57610b7e6122ef565b14610bb5576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600090610bc7906001906126a9565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff811015610cb157600060028281548110610c0157610c016126c0565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff6401000000009091041615610c525750610bdc565b6002810154600090610c96906fffffffffffffffffffffffffffffffff167f0000000000000000000000000000000000000000000000000000000000000000611e55565b905083811015610caa578093508260010194505b5050610bdc565b50600060028381548110610cc757610cc76126c0565b600091825260208220600390910201805490925063ffffffff90811691908214610d315760028281548110610cfe57610cfe6126c0565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff16610d5d565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c16610da167ffffffffffffffff8316426126a9565b610dbd836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610dd191906126ef565b11610e08576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600283810154610eaa906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b610eb49190612736565b67ffffffffffffffff16158015610edb57506fffffffffffffffffffffffffffffffff8414155b15610ee95760029550610eee565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1668010000000000000000836002811115610f3357610f336122ef565b021790556002811115610f4857610f486122ef565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b905090565b610f8a8282600061103f565b5050565b6060610fb97f0000000000000000000000000000000000000000000000000000000000000000611f0a565b610fe27f0000000000000000000000000000000000000000000000000000000000000000611f0a565b61100b7f0000000000000000000000000000000000000000000000000000000000000000611f0a565b60405160200161101d9392919061275d565b604051602081830303815290604052905090565b6060610f7960206040612047565b6000805468010000000000000000900460ff166002811115611063576110636122ef565b1461109a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b821580156110a6575080155b156110dd576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600284815481106110f2576110f26126c0565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff8082166060850152700100000000000000000000000000000000909104166080830152825491935091908690811061118d5761118d6126c0565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff9093169290921790915560608201516111f7906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f00000000000000000000000000000000000000000000000000000000000000006112b6826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611156112f8576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff90811614611358576002836000015163ffffffff1681548110611327576113276126c0565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff1642611391846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166113a591906126ef565b6113af91906126a9565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff82161115611422576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421790506000611443888660009182526020526040902090565b60008181526003602052604090205490915060ff161561148f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060026040518060a001604052808b63ffffffff1681526020016000151581526020018a8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548160ff0219169083151502179055506040820151816001015560608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060808201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050503373ffffffffffffffffffffffffffffffffffffffff16888a7f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be60405160405180910390a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016116e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff908116909152825460018181018555600094855260209485902084516003909302018054958501511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090961663ffffffff90931692909217949094178155604080840151948201949094556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906399d548aa90611812907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161183091815260200190565b602060405180830381865afa15801561184d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190612586565b600155565b610f8a8282600161103f565b6002818154811061189257600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff166002811115611917576119176122ef565b1461194e576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028781548110611963576119636126c0565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506119c27f000000000000000000000000000000000000000000000000000000000000000060016126ef565b611a5e826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611a9f576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611b2557611ac3836fffffffffffffffffffffffffffffffff166120de565b67ffffffffffffffff16600003611afc577f00000000000000000000000000000000000000000000000000000000000000009150611b1e565b611b17611b0a6001866127d3565b865463ffffffff16612184565b6001015491505b5083611b3f565b84600101549150611b3c846001611b0a9190612804565b90505b818989604051611b50929190612838565b604051809103902014611b8f576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611bf59493929190612891565b6020604051808303816000875af1158015611c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c389190612586565b600284810154929091149250600091611ce3906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611d7f886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611d8991906128c3565b611d939190612736565b67ffffffffffffffff161590508115158103611ddb576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060611e4e611031565b9050909192565b600080611ee2847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b606081600003611f4d57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611f775780611f61816128e4565b9150611f709050600a8361291c565b9150611f51565b60008167ffffffffffffffff811115611f9257611f9261259f565b6040519080825280601f01601f191660200182016040528015611fbc576020820181803683370190505b5090505b841561203f57611fd16001836126a9565b9150611fde600a86612930565b611fe99060306126ef565b60f81b818381518110611ffe57611ffe6126c0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612038600a8661291c565b9450611fc0565b949350505050565b6060600061207e84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036126ef565b90508267ffffffffffffffff1667ffffffffffffffff8111156120a3576120a361259f565b6040519080825280601f01601f1916602001820160405280156120cd576020820181803683370190505b509150828160208401375092915050565b60008061216b837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806121a2846fffffffffffffffffffffffffffffffff16612221565b9050600283815481106121b7576121b76126c0565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461221a57815460028054909163ffffffff16908110612205576122056126c0565b906000526020600020906003020191506121c8565b5092915050565b600081196001830116816122b5827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b600080604083850312156122e057600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310612359577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60005b8381101561237a578181015183820152602001612362565b838111156107f05750506000910152565b600081518084526123a381602086016020860161235f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006123e8602083018461238b565b9392505050565b803580151581146123ff57600080fd5b919050565b60008060006060848603121561241957600080fd5b8335925060208401359150612430604085016123ef565b90509250925092565b60006020828403121561244b57600080fd5b5035919050565b60008083601f84011261246457600080fd5b50813567ffffffffffffffff81111561247c57600080fd5b60208301915083602082850101111561249457600080fd5b9250929050565b600080600080600080608087890312156124b457600080fd5b863595506124c4602088016123ef565b9450604087013567ffffffffffffffff808211156124e157600080fd5b6124ed8a838b01612452565b9096509450606089013591508082111561250657600080fd5b5061251389828a01612452565b979a9699509497509295939492505050565b60ff84168152826020820152606060408201526000612547606083018461238b565b95945050505050565b60006020828403121561256257600080fd5b815173ffffffffffffffffffffffffffffffffffffffff811681146123e857600080fd5b60006020828403121561259857600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff811681146123ff57600080fd5b60006060828403121561260057600080fd5b6040516060810181811067ffffffffffffffff8211171561264a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040528251815261265d602084016125ce565b602082015261266e604084016125ce565b60408201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156126bb576126bb61267a565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082198211156127025761270261267a565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff8084168061275157612751612707565b92169190910692915050565b6000845161276f81846020890161235f565b80830190507f2e0000000000000000000000000000000000000000000000000000000000000080825285516127ab816001850160208a0161235f565b600192019182015283516127c681600284016020880161235f565b0160020195945050505050565b60006fffffffffffffffffffffffffffffffff838116908316818110156127fc576127fc61267a565b039392505050565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561282f5761282f61267a565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006128a5604083018688612848565b82810360208401526128b8818587612848565b979650505050505050565b600067ffffffffffffffff838116908316818110156127fc576127fc61267a565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129155761291561267a565b5060010190565b60008261292b5761292b612707565b500490565b60008261293f5761293f612707
565b50069056fea164736f6c634300080f000a"
var
FaultDisputeGameDeployedBin
=
"0x6080604052600436106101
b75760003560e01c80636361506d116100ec578063c0c3a0921161008a578063c6f0308c11610064578063c6f0308c146105e2578063cf09e0d014610646578063d8cc1a3c14610665578063fa24f7431461068557600080fd5b8063c0c3a09214610567578063c31b29ce1461059b578063c55cd0c7146105cf57600080fd5b80638b85902b116100c65780638b85902b1461049a57806392931298146104da578063bbdc02db1461050e578063bcef3b551461052a57600080fd5b80636361506d1461045a5780638129fc1c146104705780638980e0cc1461048557600080fd5b806335fef56711610159578063529184c911610133578063529184c9146103dc57806354fd4d5014610410578063609d333414610432578063632247ea1461044757600080fd5b806335fef56714610336578063363cc427146103495780634778efe8146103a857600080fd5b8063266198f911610195578063266198f9146102655780632810e1d6146102a7578063298c9005146102bc5780633218b99d146102fc57600080fd5b8063013cf08b146101bc5780631e27052a14610210578063200d2ed214610232575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004612506565b6106a9565b604080516fffffffffffffffffffffffffffffffff9485168152939092166020840152908201526060015b60405180910390f35b34801561021c57600080fd5b5061023061022b36600461251f565b6106f7565b005b34801561023e57600080fd5b506000546102589068010000000000000000900460ff1681565b6040516102079190612570565b34801561027157600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610207565b3480156102b357600080fd5b50610258610aa2565b3480156102c857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135610299565b34801561030857600080fd5b5060005461031d9067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610207565b61023061034436600461251f565b610ec8565b34801561035557600080fd5b50600054610383906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610207565b3480156103b457600080fd5b506102997f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e857600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561041c57600080fd5b50610425610ed8565b6040516102079190612627565b34801561043e57600080fd5b50610425610f7b565b610230610455366004612656565b610f89565b34801561046657600080fd5b5061029960015481565b34801561047c57600080fd5b5061023061156e565b34801561049157600080fd5b50600254610299565b3480156104a657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610299565b3480156104e657600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b34801561051a57600080fd5b5060405160008152602001610207565b34801561053657600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610299565b34801561057357600080fd5b506103837f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a757600080fd5b5061031d7f000000000000000000000000000000000000000000000000000000000000000081565b6102306105dd36600461251f565b611aaf565b3480156105ee57600080fd5b506106026105fd366004612506565b611abb565b6040805163ffffffff90961686529315156020860152928401919091526fffffffffffffffffffffffffffffffff908116606084015216608082015260a001610207565b34801561065257600080fd5b5060005467ffffffffffffffff1661031d565b34801561067157600080fd5b506102306106803660046126d4565b611b2c565b34801561069157600080fd5b5061069a612050565b6040516102079392919061275e565b600381600281106106b957600080fd5b6002020180546001909101546fffffffffffffffffffffffffffffffff80831693507001000000000000000000000000000000009092049091169083565b6000805468010000000000000000900460ff16600281111561071b5761071b612541565b14610752576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e39190612789565b90508260010361089e576001546040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018590526024810191909152602060448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084015b6020604051808303816000875af1158015610874573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089891906127bf565b50505050565b600483101561096657600183161573ffffffffffffffffffffffffffffffffffffffff8216639a1f5e7f85600384600281106108dc576108dc6127d8565b60020201600101546020876040518563ffffffff1660e01b815260040161091c949392919093845260208401929092526040830152606082015260800190565b6020604051808303816000875af115801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f91906127bf565b5050505050565b82600403610a11576003546040517f9a1f5e7f0000000000000000000000000000000000000000000000000000000081526004810185905270010000000000000000000000000000000090910460c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f90608401610855565b82600503610a9d576040517f9a1f5e7f000000000000000000000000000000000000000000000000000000008152600481018490524660c01b6024820152600860448201526064810183905273ffffffffffffffffffffffffffffffffffffffff821690639a1f5e7f906084016020604051808303816000875af1158015610874573d6000803e3d6000fd5b505050565b60008060005468010000000000000000900460ff166002811115610ac857610ac8612541565b14610aff576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600254600090610b1190600190612836565b90506fffffffffffffffffffffffffffffffff815b67ffffffffffffffff811015610bfb57600060028281548110610b4b57610b4b6127d8565b6000918252602090912060039091020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9093019290915060ff6401000000009091041615610b9c5750610b26565b6002810154600090610be0906fffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000061208e565b905083811015610bf4578093508260010194505b5050610b26565b50600060028381548110610c1157610c116127d8565b600091825260208220600390910201805490925063ffffffff90811691908214610c7b5760028281548110610c4857610c486127d8565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff16610ca7565b600283015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff165b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c16610ceb67ffffffffffffffff831642612836565b610d07836fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610d1b919061284d565b11610d52576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600283810154610df4906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b610dfe9190612894565b67ffffffffffffffff16158015610e2557506fffffffffffffffffffffffffffffffff8414155b15610e335760029550610e38565b600195505b600080548791907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff1668010000000000000000836002811115610e7d57610e7d612541565b021790556002811115610e9257610e92612541565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a2505050505090565b905090565b610ed482826000610f89565b5050565b6060610f037f0000000000000000000000000000000000000000000000000000000000000000612143565b610f2c7f0000000000000000000000000000000000000000000000000000000000000000612143565b610f557f0000000000000000000000000000000000000000000000000000000000000000612143565b604051602001610f67939291906128bb565b604051602081830303815290604052905090565b6060610ec360206040612280565b6000805468010000000000000000900460ff166002811115610fad57610fad612541565b14610fe4576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82158015610ff0575080155b15611027576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002848154811061103c5761103c6127d8565b60009182526020918290206040805160a0810182526003909302909101805463ffffffff8116845260ff64010000000090910416151593830193909352600180840154918301919091526002928301546fffffffffffffffffffffffffffffffff808216606085015270010000000000000000000000000000000090910416608083015282549193509190869081106110d7576110d76127d8565b6000918252602082206003909102018054921515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909316929092179091556060820151611141906fffffffffffffffffffffffffffffffff1684151760011b90565b90507f0000000000000000000000000000000000000000000000000000000000000000611200826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161115611242576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815160009063ffffffff908116146112a2576002836000015163ffffffff1681548110611271576112716127d8565b906000526020600020906003020160020160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b608083015160009067ffffffffffffffff1667ffffffffffffffff16426112db846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff166112ef919061284d565b6112f99190612836565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1667ffffffffffffffff8216111561136c576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b42179050600061138d888660009182526020526040902090565b60008181526007602052604090205490915060ff16156113d9576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260076020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155815160a08101835263ffffffff808f1682529381018581528184018e81526fffffffffffffffffffffffffffffffff808d16606085019081528a8216608086019081526002805497880181558a52945160039096027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace8101805495511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000909616979099169690961793909317909655517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf8401555190518416700100000000000000000000000000000000029316929092177f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0909201919091555133918a918c917f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be91a4505050505050505050565b600080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000164267ffffffffffffffff161781556040805160a08101825263ffffffff815260208101929092526002919081016115f37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033590565b815260016020820152604001426fffffffffffffffffffffffffffffffff9081169091528254600181810185556000948552602080862085516003909402018054918601511515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921663ffffffff909416939093171782556040840151908201556060830151608090930151821670010000000000000000000000000000000002929091169190911760029091015573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016637f00642061171c60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c9003013590565b6040518263ffffffff1660e01b815260040161173a91815260200190565b602060405180830381865afa158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b91906127bf565b9050600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663a25ae5576117c6600185612836565b6040518263ffffffff1660e01b81526004016117e491815260200190565b606060405180830381865afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118259190612980565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063a25ae55790602401606060405180830381865afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da9190612980565b9050600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166399d548aa367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001356040518263ffffffff1660e01b815260040161196691815260200190565b6040805180830381865afa158015611982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a69190612a0c565b905081602001516fffffffffffffffffffffffffffffffff16816020015167ffffffffffffffff161015611a06576040517f13809ba500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060600160405280600186611a1e9190612836565b6fffffffffffffffffffffffffffffffff908116825260408681015182166020808501919091529651928101929092528251838701519082167001000000000000000000000000000000009183168202176003559282015160045581516060810183529681168088528583015190911695870186905293519501859052929092021760055560069190915551600155565b610ed482826001610f89565b60028181548110611acb57600080fd5b600091825260209091206003909102018054600182015460029092015463ffffffff8216935064010000000090910460ff1691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041685565b6000805468010000000000000000900460ff166002811115611b5057611b50612541565b14611b87576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028781548110611b9c57611b9c6127d8565b6000918252602082206003919091020160028101549092506fffffffffffffffffffffffffffffffff16908715821760011b9050611bfb7f0000000000000000000000000000000000000000000000000000000000000000600161284d565b611c97826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611cd8576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611d5e57611cfc836fffffffffffffffffffffffffffffffff16612317565b67ffffffffffffffff16600003611d35577f00000000000000000000000000000000000000000000000000000000000000009150611d57565b611d50611d43600186612a93565b865463ffffffff166123bd565b6001015491505b5083611d78565b84600101549150611d75846001611d439190612ac4565b90505b818989604051611d89929190612af8565b604051809103902014611dc8576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600101547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f8e0cb968c8c8c8c6040518563ffffffff1660e01b8152600401611e2e9493929190612b51565b6020604051808303816000875af1158015611e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7191906127bf565b600284810154929091149250600091611f1c906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611fb8886fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611fc29190612b83565b611fcc9190612894565b67ffffffffffffffff161590508115158103612014576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505084547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff166401000000001790945550505050505050505050565b6000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060612087610f7b565b9050909192565b60008061211b847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60608160000361218657505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156121b0578061219a81612ba4565b91506121a99050600a83612bdc565b915061218a565b60008167ffffffffffffffff8111156121cb576121cb612931565b6040519080825280601f01601f1916602001820160405280156121f5576020820181803683370190505b5090505b84156122785761220a600183612836565b9150612217600a86612bf0565b61222290603061284d565b60f81b818381518110612237576122376127d8565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612271600a86612bdc565b94506121f9565b949350505050565b606060006122b784367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900361284d565b90508267ffffffffffffffff1667ffffffffffffffff8111156122dc576122dc612931565b6040519080825280601f01601f191660200182016040528015612306576020820181803683370190505b509150828160208401375092915050565b6000806123a4837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b6000806123db846fffffffffffffffffffffffffffffffff1661245a565b9050600283815481106123f0576123f06127d8565b906000526020600020906003020191505b60028201546fffffffffffffffffffffffffffffffff82811691161461245357815460028054909163ffffffff1690811061243e5761243e6127d8565b90600052602060002090600302019150612401565b5092915050565b600081196001830116816124ee827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b60006020828403121561251857600080fd5b5035919050565b6000806040838503121561253257600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106125ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60005b838110156125cc5781810151838201526020016125b4565b838111156108985750506000910152565b600081518084526125f58160208601602086016125b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061263a60208301846125dd565b9392505050565b8035801515811461265157600080fd5b919050565b60008060006060848603121561266b57600080fd5b833592506020840135915061268260408501612641565b90509250925092565b60008083601f84011261269d57600080fd5b50813567ffffffffffffffff8111156126b557600080fd5b6020830191508360208285010111156126cd57600080fd5b9250929050565b600080600080600080608087890312156126ed57600080fd5b863595506126fd60208801612641565b9450604087013567ffffffffffffffff8082111561271a57600080fd5b6127268a838b0161268b565b9096509450606089013591508082111561273f57600080fd5b5061274c89828a0161268b565b979a9699509497509295939492505050565b60ff8416815282602082015260606040820152600061278060608301846125dd565b95945050505050565b60006020828403121561279b57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461263a57600080fd5b6000602082840312156127d157600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561284857612848612807565b500390565b6000821982111561286057612860612807565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff808416806128af576128af612865565b92169190910692915050565b600084516128cd8184602089016125b1565b80830190507f2e000000000000000000000000000000000000000000000000000000000000008082528551612909816001850160208a016125b1565b600192019182015283516129248160028401602088016125b1565b0160020195945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80516fffffffffffffffffffffffffffffffff8116811461265157600080fd5b60006060828403121561299257600080fd5b6040516060810181811067ffffffffffffffff821117156129dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052825181526129ef60208401612960565b6020820152612a0060408401612960565b60408201529392505050565b600060408284031215612a1e57600080fd5b6040516040810167ffffffffffffffff8282108183111715612a69577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8160405284518352602085015191508082168214612a8657600080fd5b5060208201529392505050565b60006fffffffffffffffffffffffffffffffff83811690831681811015612abc57612abc612807565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115612aef57612aef612807565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081526000612b65604083018688612b08565b8281036020840152612b78818587612b08565b979650505050505050565b600067ffffffffffffffff83811690831681811015612abc57612abc612807565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bd557612bd5612807565b5060010190565b600082612beb57612beb612865565b500490565b600082612bff57612bff612865
565b50069056fea164736f6c634300080f000a"
func
init
()
{
func
init
()
{
if
err
:=
json
.
Unmarshal
([]
byte
(
FaultDisputeGameStorageLayoutJSON
),
FaultDisputeGameStorageLayout
);
err
!=
nil
{
if
err
:=
json
.
Unmarshal
([]
byte
(
FaultDisputeGameStorageLayoutJSON
),
FaultDisputeGameStorageLayout
);
err
!=
nil
{
...
...
op-challenger/fault/abi_test.go
View file @
ae7c2740
...
@@ -28,7 +28,7 @@ func setupFaultDisputeGame() (common.Address, *bind.TransactOpts, *backends.Simu
...
@@ -28,7 +28,7 @@ func setupFaultDisputeGame() (common.Address, *bind.TransactOpts, *backends.Simu
}
}
backend
:=
backends
.
NewSimulatedBackend
(
core
.
GenesisAlloc
{
from
:
{
Balance
:
big
.
NewInt
(
params
.
Ether
)}},
50
_000_000
)
backend
:=
backends
.
NewSimulatedBackend
(
core
.
GenesisAlloc
{
from
:
{
Balance
:
big
.
NewInt
(
params
.
Ether
)}},
50
_000_000
)
blockHashOracle
,
_
,
_
,
err
:=
bindings
.
DeployBlock
Hash
Oracle
(
opts
,
backend
)
blockHashOracle
,
_
,
_
,
err
:=
bindings
.
DeployBlockOracle
(
opts
,
backend
)
if
err
!=
nil
{
if
err
!=
nil
{
return
common
.
Address
{},
nil
,
nil
,
nil
,
err
return
common
.
Address
{},
nil
,
nil
,
nil
,
err
}
}
...
...
op-e2e/e2eutils/disputegame/deploy.go
View file @
ae7c2740
...
@@ -53,11 +53,11 @@ func deployDisputeGameContracts(require *require.Assertions, ctx context.Context
...
@@ -53,11 +53,11 @@ func deployDisputeGameContracts(require *require.Assertions, ctx context.Context
require
.
NoError
(
err
)
require
.
NoError
(
err
)
// Deploy the block hash oracle
// Deploy the block hash oracle
_
,
tx
,
_
,
err
=
bindings
.
DeployBlock
Hash
Oracle
(
opts
,
client
)
_
,
tx
,
_
,
err
=
bindings
.
DeployBlockOracle
(
opts
,
client
)
require
.
NoError
(
err
)
require
.
NoError
(
err
)
blockHashOracleAddr
,
err
:=
bind
.
WaitDeployed
(
ctx
,
client
,
tx
)
blockHashOracleAddr
,
err
:=
bind
.
WaitDeployed
(
ctx
,
client
,
tx
)
require
.
NoError
(
err
)
require
.
NoError
(
err
)
blockHashOracle
,
err
:=
bindings
.
NewBlock
Hash
Oracle
(
blockHashOracleAddr
,
client
)
blockHashOracle
,
err
:=
bindings
.
NewBlockOracle
(
blockHashOracleAddr
,
client
)
require
.
NoError
(
err
)
require
.
NoError
(
err
)
// Deploy the fault dispute game implementation
// Deploy the fault dispute game implementation
...
...
packages/contracts-bedrock/src/libraries/DisputeErrors.sol
View file @
ae7c2740
...
@@ -78,7 +78,7 @@ error AlreadyChallenged();
...
@@ -78,7 +78,7 @@ error AlreadyChallenged();
error NotOwner();
error NotOwner();
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
//
`BlockHashOracle.sol` Errors
//
//
`BlockOracle.sol` Errors
//
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/// @notice Thrown when a block that is out of the range of the `BLOCKHASH` opcode
/// @notice Thrown when a block that is out of the range of the `BLOCKHASH` opcode
...
...
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