Commit c66091d3 authored by smartcontracts's avatar smartcontracts Committed by GitHub

fix: use correct chain ID in fault dispute game (#9734)

* fix: use correct chain ID in fault dispute game

Updates the fault dispute game to insert the correct chain ID in
the local preimages. Was previously inserting the L1 chain ID but
needs to be inserting the L2 chain ID or two chains using the same
L1 can't be distinguished from one another.

* fix(ctb): snapshots

---------
Co-authored-by: default avatarrefcell <abigger87@gmail.com>
parent 44201560
......@@ -30,8 +30,8 @@ var (
// FaultDisputeGameMetaData contains all meta data concerning the FaultDisputeGame contract.
var FaultDisputeGameMetaData = &bind.MetaData{
ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gameType\",\"type\":\"uint32\",\"internalType\":\"GameType\"},{\"name\":\"_absolutePrestate\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"_genesisBlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_genesisOutputRoot\",\"type\":\"bytes32\",\"internalType\":\"Hash\"},{\"name\":\"_maxGameDepth\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_splitDepth\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_gameDuration\",\"type\":\"uint64\",\"internalType\":\"Duration\"},{\"name\":\"_vm\",\"type\":\"address\",\"internalType\":\"contractIBigStepper\"},{\"name\":\"_weth\",\"type\":\"address\",\"internalType\":\"contractIDelayedWETH\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"absolutePrestate\",\"inputs\":[],\"outputs\":[{\"name\":\"absolutePrestate_\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addLocalData\",\"inputs\":[{\"name\":\"_ident\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_execLeafIdx\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_partOffset\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"attack\",\"inputs\":[{\"name\":\"_parentIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"claimCredit\",\"inputs\":[{\"name\":\"_recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"claimData\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"parentIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"counteredBy\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"claimant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"bond\",\"type\":\"uint128\",\"internalType\":\"uint128\"},{\"name\":\"claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"position\",\"type\":\"uint128\",\"internalType\":\"Position\"},{\"name\":\"clock\",\"type\":\"uint128\",\"internalType\":\"Clock\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"claimDataLen\",\"inputs\":[],\"outputs\":[{\"name\":\"len_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"claimedBondFlag\",\"inputs\":[],\"outputs\":[{\"name\":\"claimedBondFlag_\",\"type\":\"uint128\",\"internalType\":\"uint128\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"createdAt\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"Timestamp\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"credit\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"defend\",\"inputs\":[{\"name\":\"_parentIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"extraData\",\"inputs\":[],\"outputs\":[{\"name\":\"extraData_\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"gameData\",\"inputs\":[],\"outputs\":[{\"name\":\"gameType_\",\"type\":\"uint32\",\"internalType\":\"GameType\"},{\"name\":\"rootClaim_\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"extraData_\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gameDuration\",\"inputs\":[],\"outputs\":[{\"name\":\"gameDuration_\",\"type\":\"uint64\",\"internalType\":\"Duration\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gameType\",\"inputs\":[],\"outputs\":[{\"name\":\"gameType_\",\"type\":\"uint32\",\"internalType\":\"GameType\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"genesisBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"genesisBlockNumber_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"genesisOutputRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"genesisOutputRoot_\",\"type\":\"bytes32\",\"internalType\":\"Hash\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRequiredBond\",\"inputs\":[{\"name\":\"_position\",\"type\":\"uint128\",\"internalType\":\"Position\"}],\"outputs\":[{\"name\":\"requiredBond_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"l1Head\",\"inputs\":[],\"outputs\":[{\"name\":\"l1Head_\",\"type\":\"bytes32\",\"internalType\":\"Hash\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"l2BlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"l2BlockNumber_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"maxGameDepth\",\"inputs\":[],\"outputs\":[{\"name\":\"maxGameDepth_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"move\",\"inputs\":[{\"name\":\"_challengeIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"_isAttack\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"resolve\",\"inputs\":[],\"outputs\":[{\"name\":\"status_\",\"type\":\"uint8\",\"internalType\":\"enumGameStatus\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resolveClaim\",\"inputs\":[{\"name\":\"_claimIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"resolvedAt\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"Timestamp\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rootClaim\",\"inputs\":[],\"outputs\":[{\"name\":\"rootClaim_\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"splitDepth\",\"inputs\":[],\"outputs\":[{\"name\":\"splitDepth_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"status\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumGameStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"step\",\"inputs\":[{\"name\":\"_claimIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_isAttack\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"_stateData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"vm\",\"inputs\":[],\"outputs\":[{\"name\":\"vm_\",\"type\":\"address\",\"internalType\":\"contractIBigStepper\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"weth\",\"inputs\":[],\"outputs\":[{\"name\":\"weth_\",\"type\":\"address\",\"internalType\":\"contractIDelayedWETH\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Move\",\"inputs\":[{\"name\":\"parentIndex\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"claim\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"Claim\"},{\"name\":\"claimant\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Resolved\",\"inputs\":[{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumGameStatus\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BondTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotDefendRootClaim\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClaimAboveSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClaimAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClaimAlreadyResolved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClockNotExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClockTimeExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DuplicateStep\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GameDepthExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GameNotInProgress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientBond\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidLocalIdent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidParent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPrestate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSplitDepth\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoCreditToClaim\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OutOfOrderResolution\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnexpectedRootClaim\",\"inputs\":[{\"name\":\"rootClaim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}]},{\"type\":\"error\",\"name\":\"ValidStep\",\"inputs\":[]}]",
Bin: "0x6101a06040523480156200001257600080fd5b5060405162003f3238038062003f328339810160408190526200003591620000cd565b848410620000565760405163e62ccf3960e01b815260040160405180910390fd5b63ffffffff90981661016052608096909652610120949094526101409290925260a05260c0526001600160401b031660e0526001600160a01b0390811661010052166101805262000176565b6001600160a01b0381168114620000b857600080fd5b50565b8051620000c881620000a2565b919050565b60008060008060008060008060006101208a8c031215620000ed57600080fd5b895163ffffffff811681146200010257600080fd5b8099505060208a0151975060408a0151965060608a0151955060808a0151945060a08a0151935060c08a015160018060401b03811681146200014357600080fd5b60e08b01519093506200015681620000a2565b9150620001676101008b01620000bb565b90509295985092959850929598565b60805160a05160c05160e0516101005161012051610140516101605161018051613c9c620002966000396000818161032601528181610a870152818161135f0152818161175101526132f201526000818161050201526123480152600081816104370152612f9e0152600081816101e70152818161143d01526121a30152600081816102d201528181611c1e0152611f7a0152600081816106aa01528181610f8a01526124a60152600081816106dd01528181610d7801528181610e4101528181611a7901528181612179015281816128e701528181612b2a01528181612c5801528181612d600152612e3c01526000818161077f01528181610de4015281816119680152611a9a0152600081816104c70152611b300152613c9c6000f3fe6080604052600436106101cf5760003560e01c80638d450a95116100f6578063d8cc1a3c1161008f578063f8f43ff611610061578063f8f43ff61461072c578063fa24f7431461074c578063fa315aa914610770578063fdffbb28146107a357005b8063d8cc1a3c1461067b578063e1f0c3761461069b578063ec5e6308146106ce578063f3f7214e1461070157005b8063c55cd0c7116100c8578063c55cd0c714610590578063c6f0308c146105a3578063cf09e0d01461062d578063d5d44d801461064e57005b80638d450a95146104b8578063bbdc02db146104eb578063bcef3b551461052c578063c395e1ca1461056957005b8063609d33341161016857806368800abf1161013a57806368800abf146104285780638129fc1c1461045b5780638980e0cc146104635780638b85902b1461047857005b8063609d3334146103a057806360e27464146103b5578063632247ea146103d55780636361506d146103e857005b806335fef567116101a157806335fef567146102b05780633a768463146102c35780633fc8cef31461031757806354fd4d501461034a57005b80630356fe3a146101d857806319effeb41461021a578063200d2ed2146102605780632810e1d61461029b57005b366101d657005b005b3480156101e457600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561022657600080fd5b506000546102479068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610211565b34801561026c57600080fd5b5060005461028e90700100000000000000000000000000000000900460ff1681565b60405161021191906136d6565b3480156102a757600080fd5b5061028e6107b6565b6101d66102be366004613717565b6109b3565b3480156102cf57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b34801561032357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102f2565b34801561035657600080fd5b506103936040518060400160405280600581526020017f302e372e3000000000000000000000000000000000000000000000000000000081525081565b60405161021191906137a4565b3480156103ac57600080fd5b506103936109c3565b3480156103c157600080fd5b506101d66103d03660046137d9565b6109d6565b6101d66103e3366004613812565b610b82565b3480156103f457600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610207565b34801561043457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b6101d66113f9565b34801561046f57600080fd5b50600154610207565b34801561048457600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135610207565b3480156104c457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b3480156104f757600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610211565b34801561053857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610207565b34801561057557600080fd5b50610207610584366004613847565b50662386f26fc1000090565b6101d661059e366004613717565b611814565b3480156105af57600080fd5b506105c36105be366004613879565b611820565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610211565b34801561063957600080fd5b506000546102479067ffffffffffffffff1681565b34801561065a57600080fd5b506102076106693660046137d9565b60026020526000908152604090205481565b34801561068757600080fd5b506101d66106963660046138db565b6118b7565b3480156106a757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610247565b3480156106da57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b34801561070d57600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610211565b34801561073857600080fd5b506101d6610747366004613965565b611eec565b34801561075857600080fd5b50610761612346565b60405161021193929190613991565b34801561077c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b6101d66107b1366004613879565b6123a3565b600080600054700100000000000000000000000000000000900460ff1660028111156107e4576107e46136a7565b1461081b576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460ff16610857576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110610883576108836139bf565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff16146108be5760016108c1565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617700100000000000000000000000000000000836002811115610972576109726136a7565b021790556002811115610987576109876136a7565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6109bf82826000610b82565b5050565b60606109d160406020612804565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610a3b576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b3d576040519150601f19603f3d011682016040523d82523d6000602084013e610b42565b606091505b5050905080610b7d576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610bae57610bae6136a7565b14610be5576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610bfa57610bfa6139bf565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610cbf908390869061289b16565b90506000610d5f826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610da15750610d9e7f00000000000000000000000000000000000000000000000000000000000000006002613a1d565b81145b8015610dab575084155b15610de2576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610e3c576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e677f00000000000000000000000000000000000000000000000000000000000000006001613a1d565b8103610e7957610e79868885886128a3565b34662386f26fc100001115610eba576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835160009063ffffffff90811614610f1a576001856000015163ffffffff1681548110610ee957610ee96139bf565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610f3e9067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610f68610f31856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610f7c9190613a1d565b610f869190613a35565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115610ff9576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff1615611077576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c81526020019081526020016000206001808054905061130c9190613a35565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b1580156113a457600080fd5b505af11580156113b8573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a45050505050505050505050565b600554610100900460ff161561143b576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135116114f2576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60663611156115095763c407e0256000526004601cfd5b6040805160e08101825263ffffffff808252600060208301818152328486019081526fffffffffffffffffffffffffffffffff34818116606088019081527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560808901908152600160a08a0181815242861660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549185167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091179055517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155915195518116700100000000000000000000000000000000029516949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b15801561179757600080fd5b505af11580156117ab573d6000803e3d6000fd5b50506000805467ffffffffffffffff42167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009091161790555050600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550565b6109bf82826001610b82565b6001818154811061183057600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff1660028111156118e3576118e36136a7565b1461191a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061192f5761192f6139bf565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b905061198e7f00000000000000000000000000000000000000000000000000000000000000006001613a1d565b611a2a826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611a6b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611b5a57611abe7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613a35565b6001901b611add846fffffffffffffffffffffffffffffffff16612a64565b67ffffffffffffffff16611af19190613a7b565b15611b2e57611b25611b1660016fffffffffffffffffffffffffffffffff8716613a8f565b865463ffffffff166000612b0a565b60030154611b50565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611b84565b60038501549150611b81611b166fffffffffffffffffffffffffffffffff86166001613ac0565b90505b600882901b60088a8a604051611b9b929190613af4565b6040518091039020901b14611bdc576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611be78c612bee565b90506000611bf6836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290611c70908f908f908f908f908a90600401613b4d565b6020604051808303816000875af1158015611c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb39190613b87565b600485015491149150600090600290611d5e906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611dfa896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611e049190613ba0565b611e0e9190613bc1565b67ffffffffffffffff161590508115158103611e56576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff1615611ead576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611f1857611f186136a7565b14611f4f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611f5e86612c1d565b93509350935093506000611f748585858561304a565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120079190613be8565b9050600189036120ff5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612063367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af11580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190613b87565b5061233b565b6002890361212b5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612063565b600389036121575773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612063565b6004890361229057600061219d6fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613109565b6121c7907f0000000000000000000000000000000000000000000000000000000000000000613a1d565b6121d2906001613a1d565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122899190613b87565b505061233b565b60058903612309576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390524660c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016120b6565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335606061239c6109c3565b9050909192565b60008054700100000000000000000000000000000000900460ff1660028111156123cf576123cf6136a7565b14612406576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001828154811061241b5761241b6139bf565b60009182526020822060059190910201600481015490925061245d90700100000000000000000000000000000000900460401c67ffffffffffffffff16610f31565b600483015490915060009061248f90700100000000000000000000000000000000900467ffffffffffffffff16610f31565b6124999042613ba0565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c166124d38284613c05565b67ffffffffffffffff1611612514576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805485158015612534575060055460ff165b1561256b576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015801561257857508515155b156125dd578454640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156125ab57816125c7565b600187015473ffffffffffffffffffffffffffffffffffffffff165b90506125d381886131be565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b8381101561272357600085828154811061260e5761260e6139bf565b6000918252602080832090910154808352600490915260409091205490915015612664576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612679576126796139bf565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff161580156126d2575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612710576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b50508061271c90613c28565b90506125f2565b5061276b73ffffffffffffffffffffffffffffffffffffffff8316156127495782612765565b600188015473ffffffffffffffffffffffffffffffffffffffff165b886131be565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff84160217875560008881526004602052604081206127c79161366d565b876000036125d357600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b6060600061283b84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003613a1d565b90508267ffffffffffffffff1667ffffffffffffffff81111561286057612860613c60565b6040519080825280601f01601f19166020018201604052801561288a576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60006128c26fffffffffffffffffffffffffffffffff84166001613ac0565b905060006128d282866001612b0a565b9050600086901a83806129c5575061290b60027f0000000000000000000000000000000000000000000000000000000000000000613a7b565b60048301546002906129af906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6129b99190613bc1565b67ffffffffffffffff16145b15612a1d5760ff8116600114806129df575060ff81166002145b612a18576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016114e9565b612a5b565b60ff811615612a5b576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016114e9565b50505050505050565b600080612af1837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008082612b5357612b4e6fffffffffffffffffffffffffffffffff86167f000000000000000000000000000000000000000000000000000000000000000061334a565b612b6e565b612b6e856fffffffffffffffffffffffffffffffff16613511565b905060018481548110612b8357612b836139bf565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff828116911614612be657815460018054909163ffffffff16908110612bd157612bd16139bf565b90600052602060002090600502019150612b94565b509392505050565b6000806000806000612bff86612c1d565b9350935093509350612c138484848461304a565b9695505050505050565b6000806000806000859050600060018281548110612c3d57612c3d6139bf565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612d14906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612d55576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612e1c906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612e9857825463ffffffff16612e627f00000000000000000000000000000000000000000000000000000000000000006001613a1d565b8303612e6c578391505b60018181548110612e7f57612e7f6139bf565b9060005260206000209060050201935080945050612d59565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612f01612eec856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015612fe6576000612f39836fffffffffffffffffffffffffffffffff16612a64565b67ffffffffffffffff161115612f9c576000612f73612f6b60016fffffffffffffffffffffffffffffffff8616613a8f565b896001612b0a565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50612fc09050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff16975061303c565b6000613008612f6b6fffffffffffffffffffffffffffffffff85166001613ac0565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841681036130b05782826040516020016130939291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b604051602081830303815290604052805190602001209050613101565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080613196847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161322e576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff841660009081526020919091526040812080548392906132a1908490613a1d565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b15801561333657600080fd5b505af1158015612a5b573d6000803e3d6000fd5b6000816133e9846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161161342a576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61343383613511565b9050816134d2826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161161350b576135086134ef836001613a1d565b6fffffffffffffffffffffffffffffffff8316906135bd565b90505b92915050565b600081196001830116816135a5827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b60008061364a847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b508054600082559060005260206000209081019061368b919061368e565b50565b5b808211156136a3576000815560010161368f565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310613711577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561372a57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561375f57602081850181015186830182015201613743565b81811115613771576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006135086020830184613739565b73ffffffffffffffffffffffffffffffffffffffff8116811461368b57600080fd5b6000602082840312156137eb57600080fd5b81356137f6816137b7565b9392505050565b8035801515811461380d57600080fd5b919050565b60008060006060848603121561382757600080fd5b833592506020840135915061383e604085016137fd565b90509250925092565b60006020828403121561385957600080fd5b81356fffffffffffffffffffffffffffffffff811681146137f657600080fd5b60006020828403121561388b57600080fd5b5035919050565b60008083601f8401126138a457600080fd5b50813567ffffffffffffffff8111156138bc57600080fd5b6020830191508360208285010111156138d457600080fd5b9250929050565b600080600080600080608087890312156138f457600080fd5b86359550613904602088016137fd565b9450604087013567ffffffffffffffff8082111561392157600080fd5b61392d8a838b01613892565b9096509450606089013591508082111561394657600080fd5b5061395389828a01613892565b979a9699509497509295939492505050565b60008060006060848603121561397a57600080fd5b505081359360208301359350604090920135919050565b63ffffffff841681528260208201526060604082015260006139b66060830184613739565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613a3057613a306139ee565b500190565b600082821015613a4757613a476139ee565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613a8a57613a8a613a4c565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015613ab857613ab86139ee565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115613aeb57613aeb6139ee565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000613b61606083018789613b04565b8281036020840152613b74818688613b04565b9150508260408301529695505050505050565b600060208284031215613b9957600080fd5b5051919050565b600067ffffffffffffffff83811690831681811015613ab857613ab86139ee565b600067ffffffffffffffff80841680613bdc57613bdc613a4c565b92169190910692915050565b600060208284031215613bfa57600080fd5b81516137f6816137b7565b600067ffffffffffffffff808316818516808303821115613aeb57613aeb6139ee565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c5957613c596139ee565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a",
ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gameType\",\"type\":\"uint32\",\"internalType\":\"GameType\"},{\"name\":\"_absolutePrestate\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"_genesisBlockNumber\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_genesisOutputRoot\",\"type\":\"bytes32\",\"internalType\":\"Hash\"},{\"name\":\"_maxGameDepth\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_splitDepth\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_gameDuration\",\"type\":\"uint64\",\"internalType\":\"Duration\"},{\"name\":\"_vm\",\"type\":\"address\",\"internalType\":\"contractIBigStepper\"},{\"name\":\"_weth\",\"type\":\"address\",\"internalType\":\"contractIDelayedWETH\"},{\"name\":\"_l2ChainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"fallback\",\"stateMutability\":\"payable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"absolutePrestate\",\"inputs\":[],\"outputs\":[{\"name\":\"absolutePrestate_\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addLocalData\",\"inputs\":[{\"name\":\"_ident\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_execLeafIdx\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_partOffset\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"attack\",\"inputs\":[{\"name\":\"_parentIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"claimCredit\",\"inputs\":[{\"name\":\"_recipient\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"claimData\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"parentIndex\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"counteredBy\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"claimant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"bond\",\"type\":\"uint128\",\"internalType\":\"uint128\"},{\"name\":\"claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"position\",\"type\":\"uint128\",\"internalType\":\"Position\"},{\"name\":\"clock\",\"type\":\"uint128\",\"internalType\":\"Clock\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"claimDataLen\",\"inputs\":[],\"outputs\":[{\"name\":\"len_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"claimedBondFlag\",\"inputs\":[],\"outputs\":[{\"name\":\"claimedBondFlag_\",\"type\":\"uint128\",\"internalType\":\"uint128\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"createdAt\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"Timestamp\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"credit\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"defend\",\"inputs\":[{\"name\":\"_parentIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"extraData\",\"inputs\":[],\"outputs\":[{\"name\":\"extraData_\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"gameData\",\"inputs\":[],\"outputs\":[{\"name\":\"gameType_\",\"type\":\"uint32\",\"internalType\":\"GameType\"},{\"name\":\"rootClaim_\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"extraData_\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gameDuration\",\"inputs\":[],\"outputs\":[{\"name\":\"gameDuration_\",\"type\":\"uint64\",\"internalType\":\"Duration\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gameType\",\"inputs\":[],\"outputs\":[{\"name\":\"gameType_\",\"type\":\"uint32\",\"internalType\":\"GameType\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"genesisBlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"genesisBlockNumber_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"genesisOutputRoot\",\"inputs\":[],\"outputs\":[{\"name\":\"genesisOutputRoot_\",\"type\":\"bytes32\",\"internalType\":\"Hash\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRequiredBond\",\"inputs\":[{\"name\":\"_position\",\"type\":\"uint128\",\"internalType\":\"Position\"}],\"outputs\":[{\"name\":\"requiredBond_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"l1Head\",\"inputs\":[],\"outputs\":[{\"name\":\"l1Head_\",\"type\":\"bytes32\",\"internalType\":\"Hash\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"l2BlockNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"l2BlockNumber_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"l2ChainId\",\"inputs\":[],\"outputs\":[{\"name\":\"l2ChainId_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxGameDepth\",\"inputs\":[],\"outputs\":[{\"name\":\"maxGameDepth_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"move\",\"inputs\":[{\"name\":\"_challengeIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_claim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"},{\"name\":\"_isAttack\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"resolve\",\"inputs\":[],\"outputs\":[{\"name\":\"status_\",\"type\":\"uint8\",\"internalType\":\"enumGameStatus\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"resolveClaim\",\"inputs\":[{\"name\":\"_claimIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"resolvedAt\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"Timestamp\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"rootClaim\",\"inputs\":[],\"outputs\":[{\"name\":\"rootClaim_\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"splitDepth\",\"inputs\":[],\"outputs\":[{\"name\":\"splitDepth_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"status\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumGameStatus\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"step\",\"inputs\":[{\"name\":\"_claimIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_isAttack\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"_stateData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"vm\",\"inputs\":[],\"outputs\":[{\"name\":\"vm_\",\"type\":\"address\",\"internalType\":\"contractIBigStepper\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"weth\",\"inputs\":[],\"outputs\":[{\"name\":\"weth_\",\"type\":\"address\",\"internalType\":\"contractIDelayedWETH\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Move\",\"inputs\":[{\"name\":\"parentIndex\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"claim\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"Claim\"},{\"name\":\"claimant\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Resolved\",\"inputs\":[{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"enumGameStatus\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AlreadyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BondTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotDefendRootClaim\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClaimAboveSplit\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClaimAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClaimAlreadyResolved\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClockNotExpired\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ClockTimeExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DuplicateStep\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GameDepthExceeded\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"GameNotInProgress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientBond\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidLocalIdent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidParent\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPrestate\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSplitDepth\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NoCreditToClaim\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OutOfOrderResolution\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnexpectedRootClaim\",\"inputs\":[{\"name\":\"rootClaim\",\"type\":\"bytes32\",\"internalType\":\"Claim\"}]},{\"type\":\"error\",\"name\":\"ValidStep\",\"inputs\":[]}]",
Bin: "0x6101c06040523480156200001257600080fd5b5060405162003fb038038062003fb08339810160408190526200003591620000c6565b858510620000565760405163e62ccf3960e01b815260040160405180910390fd5b63ffffffff90991661016052608097909752610120959095526101409390935260a09190915260c0526001600160401b031660e0526001600160a01b039081166101005216610180526101a05262000177565b80516001600160a01b0381168114620000c157600080fd5b919050565b6000806000806000806000806000806101408b8d031215620000e757600080fd5b8a5163ffffffff81168114620000fc57600080fd5b809a505060208b0151985060408b0151975060608b0151965060808b0151955060a08b0151945060c08b015160018060401b03811681146200013d57600080fd5b93506200014d60e08c01620000a9565b92506200015e6101008c01620000a9565b91506101208b015190509295989b9194979a5092959850565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051613d07620002a9600039600081816106a2015261231901526000818161033e01528181610ad2015281816113aa0152818161179c015261335d01526000818161051a01526123b301526000818161044f01526130090152600081816101ff0152818161148801526121ee0152600081816102ea01528181611c690152611fc50152600081816106f501528181610fd5015261251101526000818161072801528181610dc301528181610e8c01528181611ac4015281816121c40152818161295201528181612b9501528181612cc301528181612dcb0152612ea70152600081816107ca01528181610e2f015281816119b30152611ae50152600081816104df0152611b7b0152613d076000f3fe6080604052600436106101e75760003560e01c80638d450a951161010e578063d6ae3cd5116100a7578063f3f7214e11610079578063fa24f74311610061578063fa24f74314610797578063fa315aa9146107bb578063fdffbb28146107ee57005b8063f3f7214e1461074c578063f8f43ff61461077757005b8063d6ae3cd514610693578063d8cc1a3c146106c6578063e1f0c376146106e6578063ec5e63081461071957005b8063c55cd0c7116100e0578063c55cd0c7146105a8578063c6f0308c146105bb578063cf09e0d014610645578063d5d44d801461066657005b80638d450a95146104d0578063bbdc02db14610503578063bcef3b5514610544578063c395e1ca1461058157005b8063609d33341161018057806368800abf1161015257806368800abf146104405780638129fc1c146104735780638980e0cc1461047b5780638b85902b1461049057005b8063609d3334146103b857806360e27464146103cd578063632247ea146103ed5780636361506d1461040057005b806335fef567116101b957806335fef567146102c85780633a768463146102db5780633fc8cef31461032f57806354fd4d501461036257005b80630356fe3a146101f057806319effeb414610232578063200d2ed2146102785780632810e1d6146102b357005b366101ee57005b005b3480156101fc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5060005461025f9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610229565b34801561028457600080fd5b506000546102a690700100000000000000000000000000000000900460ff1681565b6040516102299190613741565b3480156102bf57600080fd5b506102a6610801565b6101ee6102d6366004613782565b6109fe565b3480156102e757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610229565b34801561033b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061030a565b34801561036e57600080fd5b506103ab6040518060400160405280600581526020017f302e372e3000000000000000000000000000000000000000000000000000000081525081565b604051610229919061380f565b3480156103c457600080fd5b506103ab610a0e565b3480156103d957600080fd5b506101ee6103e8366004613844565b610a21565b6101ee6103fb36600461387d565b610bcd565b34801561040c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561021f565b34801561044c57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b6101ee611444565b34801561048757600080fd5b5060015461021f565b34801561049c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561021f565b3480156104dc57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b34801561050f57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610229565b34801561055057600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561021f565b34801561058d57600080fd5b5061021f61059c3660046138b2565b50662386f26fc1000090565b6101ee6105b6366004613782565b61185f565b3480156105c757600080fd5b506105db6105d63660046138e4565b61186b565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610229565b34801561065157600080fd5b5060005461025f9067ffffffffffffffff1681565b34801561067257600080fd5b5061021f610681366004613844565b60026020526000908152604090205481565b34801561069f57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b3480156106d257600080fd5b506101ee6106e1366004613946565b611902565b3480156106f257600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061025f565b34801561072557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b34801561075857600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610229565b34801561078357600080fd5b506101ee6107923660046139d0565b611f37565b3480156107a357600080fd5b506107ac6123b1565b604051610229939291906139fc565b3480156107c757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b6101ee6107fc3660046138e4565b61240e565b600080600054700100000000000000000000000000000000900460ff16600281111561082f5761082f613712565b14610866576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460ff166108a2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660016000815481106108ce576108ce613a2a565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff161461090957600161090c565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156109bd576109bd613712565b0217905560028111156109d2576109d2613712565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b610a0a82826000610bcd565b5050565b6060610a1c6040602061286f565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610a86576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b88576040519150601f19603f3d011682016040523d82523d6000602084013e610b8d565b606091505b5050905080610bc8576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610bf957610bf9613712565b14610c30576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610c4557610c45613a2a565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610d0a908390869061290616565b90506000610daa826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610dec5750610de97f00000000000000000000000000000000000000000000000000000000000000006002613a88565b81145b8015610df6575084155b15610e2d576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610e87576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eb27f00000000000000000000000000000000000000000000000000000000000000006001613a88565b8103610ec457610ec48688858861290e565b34662386f26fc100001115610f05576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835160009063ffffffff90811614610f65576001856000015163ffffffff1681548110610f3457610f34613a2a565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610f899067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610fb3610f7c856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610fc79190613a88565b610fd19190613aa0565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115611044576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff16156110c2576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c8152602001908152602001600020600180805490506113579190613aa0565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b1580156113ef57600080fd5b505af1158015611403573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a45050505050505050505050565b600554610100900460ff1615611486576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001351161153d576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60663611156115545763c407e0256000526004601cfd5b6040805160e08101825263ffffffff808252600060208301818152328486019081526fffffffffffffffffffffffffffffffff34818116606088019081527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560808901908152600160a08a0181815242861660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549185167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091179055517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155915195518116700100000000000000000000000000000000029516949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b50506000805467ffffffffffffffff42167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009091161790555050600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550565b610a0a82826001610bcd565b6001818154811061187b57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561192e5761192e613712565b14611965576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061197a5761197a613a2a565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506119d97f00000000000000000000000000000000000000000000000000000000000000006001613a88565b611a75826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611ab6576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611ba557611b097f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613aa0565b6001901b611b28846fffffffffffffffffffffffffffffffff16612acf565b67ffffffffffffffff16611b3c9190613ae6565b15611b7957611b70611b6160016fffffffffffffffffffffffffffffffff8716613afa565b865463ffffffff166000612b75565b60030154611b9b565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611bcf565b60038501549150611bcc611b616fffffffffffffffffffffffffffffffff86166001613b2b565b90505b600882901b60088a8a604051611be6929190613b5f565b6040518091039020901b14611c27576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c328c612c59565b90506000611c41836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290611cbb908f908f908f908f908a90600401613bb8565b6020604051808303816000875af1158015611cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfe9190613bf2565b600485015491149150600090600290611da9906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611e45896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611e4f9190613c0b565b611e599190613c2c565b67ffffffffffffffff161590508115158103611ea1576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff1615611ef8576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611f6357611f63613712565b14611f9a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611fa986612c88565b93509350935093506000611fbf858585856130b5565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190613c53565b90506001890361214a5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a846120ae367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121449190613bf2565b506123a6565b600289036121765773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84896120ae565b600389036121a25773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84876120ae565b600489036122db5760006121e86fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613174565b612212907f0000000000000000000000000000000000000000000000000000000000000000613a88565b61221d906001613a88565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af11580156122b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d49190613bf2565b50506123a6565b60058903612374576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401612101565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060612407610a0e565b9050909192565b60008054700100000000000000000000000000000000900460ff16600281111561243a5761243a613712565b14612471576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001828154811061248657612486613a2a565b6000918252602082206005919091020160048101549092506124c890700100000000000000000000000000000000900460401c67ffffffffffffffff16610f7c565b60048301549091506000906124fa90700100000000000000000000000000000000900467ffffffffffffffff16610f7c565b6125049042613c0b565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661253e8284613c70565b67ffffffffffffffff161161257f576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260046020526040902080548515801561259f575060055460ff165b156125d6576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801580156125e357508515155b15612648578454640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156126165781612632565b600187015473ffffffffffffffffffffffffffffffffffffffff165b905061263e8188613229565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b8381101561278e57600085828154811061267957612679613a2a565b60009182526020808320909101548083526004909152604090912054909150156126cf576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182815481106126e4576126e4613a2a565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff1615801561273d575060048101546fffffffffffffffffffffffffffffffff908116908516115b1561277b576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b50508061278790613c93565b905061265d565b506127d673ffffffffffffffffffffffffffffffffffffffff8316156127b457826127d0565b600188015473ffffffffffffffffffffffffffffffffffffffff165b88613229565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff8416021787556000888152600460205260408120612832916136d8565b8760000361263e57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b606060006128a684367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003613a88565b90508267ffffffffffffffff1667ffffffffffffffff8111156128cb576128cb613ccb565b6040519080825280601f01601f1916602001820160405280156128f5576020820181803683370190505b509150828160208401375092915050565b151760011b90565b600061292d6fffffffffffffffffffffffffffffffff84166001613b2b565b9050600061293d82866001612b75565b9050600086901a8380612a30575061297660027f0000000000000000000000000000000000000000000000000000000000000000613ae6565b6004830154600290612a1a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b612a249190613c2c565b67ffffffffffffffff16145b15612a885760ff811660011480612a4a575060ff81166002145b612a83576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401611534565b612ac6565b60ff811615612ac6576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401611534565b50505050505050565b600080612b5c837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008082612bbe57612bb96fffffffffffffffffffffffffffffffff86167f00000000000000000000000000000000000000000000000000000000000000006133b5565b612bd9565b612bd9856fffffffffffffffffffffffffffffffff1661357c565b905060018481548110612bee57612bee613a2a565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff828116911614612c5157815460018054909163ffffffff16908110612c3c57612c3c613a2a565b90600052602060002090600502019150612bff565b509392505050565b6000806000806000612c6a86612c88565b9350935093509350612c7e848484846130b5565b9695505050505050565b6000806000806000859050600060018281548110612ca857612ca8613a2a565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612d7f906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612dc0576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612e87906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612f0357825463ffffffff16612ecd7f00000000000000000000000000000000000000000000000000000000000000006001613a88565b8303612ed7578391505b60018181548110612eea57612eea613a2a565b9060005260206000209060050201935080945050612dc4565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612f6c612f57856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015613051576000612fa4836fffffffffffffffffffffffffffffffff16612acf565b67ffffffffffffffff161115613007576000612fde612fd660016fffffffffffffffffffffffffffffffff8616613afa565b896001612b75565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a5061302b9050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff1697506130a7565b6000613073612fd66fffffffffffffffffffffffffffffffff85166001613b2b565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff8416810361311b5782826040516020016130fe9291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b60405160208183030381529060405280519060200120905061316c565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080613201847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000018101613299576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff8416600090815260209190915260408120805483929061330c908490613a88565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b1580156133a157600080fd5b505af1158015612ac6573d6000803e3d6000fd5b600081613454846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611613495576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61349e8361357c565b90508161353d826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116135765761357361355a836001613a88565b6fffffffffffffffffffffffffffffffff831690613628565b90505b92915050565b60008119600183011681613610827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b6000806136b5847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b50805460008255906000526020600020908101906136f691906136f9565b50565b5b8082111561370e57600081556001016136fa565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061377c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561379557600080fd5b50508035926020909101359150565b6000815180845260005b818110156137ca576020818501810151868301820152016137ae565b818111156137dc576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061357360208301846137a4565b73ffffffffffffffffffffffffffffffffffffffff811681146136f657600080fd5b60006020828403121561385657600080fd5b813561386181613822565b9392505050565b8035801515811461387857600080fd5b919050565b60008060006060848603121561389257600080fd5b83359250602084013591506138a960408501613868565b90509250925092565b6000602082840312156138c457600080fd5b81356fffffffffffffffffffffffffffffffff8116811461386157600080fd5b6000602082840312156138f657600080fd5b5035919050565b60008083601f84011261390f57600080fd5b50813567ffffffffffffffff81111561392757600080fd5b60208301915083602082850101111561393f57600080fd5b9250929050565b6000806000806000806080878903121561395f57600080fd5b8635955061396f60208801613868565b9450604087013567ffffffffffffffff8082111561398c57600080fd5b6139988a838b016138fd565b909650945060608901359150808211156139b157600080fd5b506139be89828a016138fd565b979a9699509497509295939492505050565b6000806000606084860312156139e557600080fd5b505081359360208301359350604090920135919050565b63ffffffff84168152826020820152606060408201526000613a2160608301846137a4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613a9b57613a9b613a59565b500190565b600082821015613ab257613ab2613a59565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613af557613af5613ab7565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015613b2357613b23613a59565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115613b5657613b56613a59565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000613bcc606083018789613b6f565b8281036020840152613bdf818688613b6f565b9150508260408301529695505050505050565b600060208284031215613c0457600080fd5b5051919050565b600067ffffffffffffffff83811690831681811015613b2357613b23613a59565b600067ffffffffffffffff80841680613c4757613c47613ab7565b92169190910692915050565b600060208284031215613c6557600080fd5b815161386181613822565b600067ffffffffffffffff808316818516808303821115613b5657613b56613a59565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cc457613cc4613a59565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a",
}
// FaultDisputeGameABI is the input ABI used to generate the binding from.
......@@ -43,7 +43,7 @@ var FaultDisputeGameABI = FaultDisputeGameMetaData.ABI
var FaultDisputeGameBin = FaultDisputeGameMetaData.Bin
// DeployFaultDisputeGame deploys a new Ethereum contract, binding an instance of FaultDisputeGame to it.
func DeployFaultDisputeGame(auth *bind.TransactOpts, backend bind.ContractBackend, _gameType uint32, _absolutePrestate [32]byte, _genesisBlockNumber *big.Int, _genesisOutputRoot [32]byte, _maxGameDepth *big.Int, _splitDepth *big.Int, _gameDuration uint64, _vm common.Address, _weth common.Address) (common.Address, *types.Transaction, *FaultDisputeGame, error) {
func DeployFaultDisputeGame(auth *bind.TransactOpts, backend bind.ContractBackend, _gameType uint32, _absolutePrestate [32]byte, _genesisBlockNumber *big.Int, _genesisOutputRoot [32]byte, _maxGameDepth *big.Int, _splitDepth *big.Int, _gameDuration uint64, _vm common.Address, _weth common.Address, _l2ChainId *big.Int) (common.Address, *types.Transaction, *FaultDisputeGame, error) {
parsed, err := FaultDisputeGameMetaData.GetAbi()
if err != nil {
return common.Address{}, nil, nil, err
......@@ -52,7 +52,7 @@ func DeployFaultDisputeGame(auth *bind.TransactOpts, backend bind.ContractBacken
return common.Address{}, nil, nil, errors.New("GetABI returned nil")
}
address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(FaultDisputeGameBin), backend, _gameType, _absolutePrestate, _genesisBlockNumber, _genesisOutputRoot, _maxGameDepth, _splitDepth, _gameDuration, _vm, _weth)
address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(FaultDisputeGameBin), backend, _gameType, _absolutePrestate, _genesisBlockNumber, _genesisOutputRoot, _maxGameDepth, _splitDepth, _gameDuration, _vm, _weth, _l2ChainId)
if err != nil {
return common.Address{}, nil, nil, err
}
......@@ -724,6 +724,37 @@ func (_FaultDisputeGame *FaultDisputeGameCallerSession) L2BlockNumber() (*big.In
return _FaultDisputeGame.Contract.L2BlockNumber(&_FaultDisputeGame.CallOpts)
}
// L2ChainId is a free data retrieval call binding the contract method 0xd6ae3cd5.
//
// Solidity: function l2ChainId() view returns(uint256 l2ChainId_)
func (_FaultDisputeGame *FaultDisputeGameCaller) L2ChainId(opts *bind.CallOpts) (*big.Int, error) {
var out []interface{}
err := _FaultDisputeGame.contract.Call(opts, &out, "l2ChainId")
if err != nil {
return *new(*big.Int), err
}
out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
return out0, err
}
// L2ChainId is a free data retrieval call binding the contract method 0xd6ae3cd5.
//
// Solidity: function l2ChainId() view returns(uint256 l2ChainId_)
func (_FaultDisputeGame *FaultDisputeGameSession) L2ChainId() (*big.Int, error) {
return _FaultDisputeGame.Contract.L2ChainId(&_FaultDisputeGame.CallOpts)
}
// L2ChainId is a free data retrieval call binding the contract method 0xd6ae3cd5.
//
// Solidity: function l2ChainId() view returns(uint256 l2ChainId_)
func (_FaultDisputeGame *FaultDisputeGameCallerSession) L2ChainId() (*big.Int, error) {
return _FaultDisputeGame.Contract.L2ChainId(&_FaultDisputeGame.CallOpts)
}
// MaxGameDepth is a free data retrieval call binding the contract method 0xfa315aa9.
//
// Solidity: function maxGameDepth() view returns(uint256 maxGameDepth_)
......
......@@ -13,7 +13,7 @@ const FaultDisputeGameStorageLayoutJSON = "{\"storage\":[{\"astId\":1000,\"contr
var FaultDisputeGameStorageLayout = new(solc.StorageLayout)
var FaultDisputeGameDeployedBin = "0x6080604052600436106101cf5760003560e01c80638d450a95116100f6578063d8cc1a3c1161008f578063f8f43ff611610061578063f8f43ff61461072c578063fa24f7431461074c578063fa315aa914610770578063fdffbb28146107a357005b8063d8cc1a3c1461067b578063e1f0c3761461069b578063ec5e6308146106ce578063f3f7214e1461070157005b8063c55cd0c7116100c8578063c55cd0c714610590578063c6f0308c146105a3578063cf09e0d01461062d578063d5d44d801461064e57005b80638d450a95146104b8578063bbdc02db146104eb578063bcef3b551461052c578063c395e1ca1461056957005b8063609d33341161016857806368800abf1161013a57806368800abf146104285780638129fc1c1461045b5780638980e0cc146104635780638b85902b1461047857005b8063609d3334146103a057806360e27464146103b5578063632247ea146103d55780636361506d146103e857005b806335fef567116101a157806335fef567146102b05780633a768463146102c35780633fc8cef31461031757806354fd4d501461034a57005b80630356fe3a146101d857806319effeb41461021a578063200d2ed2146102605780632810e1d61461029b57005b366101d657005b005b3480156101e457600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561022657600080fd5b506000546102479068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610211565b34801561026c57600080fd5b5060005461028e90700100000000000000000000000000000000900460ff1681565b60405161021191906136d6565b3480156102a757600080fd5b5061028e6107b6565b6101d66102be366004613717565b6109b3565b3480156102cf57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b34801561032357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102f2565b34801561035657600080fd5b506103936040518060400160405280600581526020017f302e372e3000000000000000000000000000000000000000000000000000000081525081565b60405161021191906137a4565b3480156103ac57600080fd5b506103936109c3565b3480156103c157600080fd5b506101d66103d03660046137d9565b6109d6565b6101d66103e3366004613812565b610b82565b3480156103f457600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360200135610207565b34801561043457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b6101d66113f9565b34801561046f57600080fd5b50600154610207565b34801561048457600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135610207565b3480156104c457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b3480156104f757600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610211565b34801561053857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335610207565b34801561057557600080fd5b50610207610584366004613847565b50662386f26fc1000090565b6101d661059e366004613717565b611814565b3480156105af57600080fd5b506105c36105be366004613879565b611820565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610211565b34801561063957600080fd5b506000546102479067ffffffffffffffff1681565b34801561065a57600080fd5b506102076106693660046137d9565b60026020526000908152604090205481565b34801561068757600080fd5b506101d66106963660046138db565b6118b7565b3480156106a757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610247565b3480156106da57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b34801561070d57600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610211565b34801561073857600080fd5b506101d6610747366004613965565b611eec565b34801561075857600080fd5b50610761612346565b60405161021193929190613991565b34801561077c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610207565b6101d66107b1366004613879565b6123a3565b600080600054700100000000000000000000000000000000900460ff1660028111156107e4576107e46136a7565b1461081b576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460ff16610857576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110610883576108836139bf565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff16146108be5760016108c1565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617700100000000000000000000000000000000836002811115610972576109726136a7565b021790556002811115610987576109876136a7565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b6109bf82826000610b82565b5050565b60606109d160406020612804565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610a3b576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b3d576040519150601f19603f3d011682016040523d82523d6000602084013e610b42565b606091505b5050905080610b7d576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610bae57610bae6136a7565b14610be5576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610bfa57610bfa6139bf565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610cbf908390869061289b16565b90506000610d5f826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610da15750610d9e7f00000000000000000000000000000000000000000000000000000000000000006002613a1d565b81145b8015610dab575084155b15610de2576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610e3c576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e677f00000000000000000000000000000000000000000000000000000000000000006001613a1d565b8103610e7957610e79868885886128a3565b34662386f26fc100001115610eba576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835160009063ffffffff90811614610f1a576001856000015163ffffffff1681548110610ee957610ee96139bf565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610f3e9067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610f68610f31856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610f7c9190613a1d565b610f869190613a35565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115610ff9576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff1615611077576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c81526020019081526020016000206001808054905061130c9190613a35565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b1580156113a457600080fd5b505af11580156113b8573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a45050505050505050505050565b600554610100900460ff161561143b576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360400135116114f2576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60663611156115095763c407e0256000526004601cfd5b6040805160e08101825263ffffffff808252600060208301818152328486019081526fffffffffffffffffffffffffffffffff34818116606088019081527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560808901908152600160a08a0181815242861660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549185167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091179055517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155915195518116700100000000000000000000000000000000029516949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b15801561179757600080fd5b505af11580156117ab573d6000803e3d6000fd5b50506000805467ffffffffffffffff42167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009091161790555050600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550565b6109bf82826001610b82565b6001818154811061183057600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff1660028111156118e3576118e36136a7565b1461191a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061192f5761192f6139bf565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b905061198e7f00000000000000000000000000000000000000000000000000000000000000006001613a1d565b611a2a826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611a6b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611b5a57611abe7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613a35565b6001901b611add846fffffffffffffffffffffffffffffffff16612a64565b67ffffffffffffffff16611af19190613a7b565b15611b2e57611b25611b1660016fffffffffffffffffffffffffffffffff8716613a8f565b865463ffffffff166000612b0a565b60030154611b50565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611b84565b60038501549150611b81611b166fffffffffffffffffffffffffffffffff86166001613ac0565b90505b600882901b60088a8a604051611b9b929190613af4565b6040518091039020901b14611bdc576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611be78c612bee565b90506000611bf6836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290611c70908f908f908f908f908a90600401613b4d565b6020604051808303816000875af1158015611c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb39190613b87565b600485015491149150600090600290611d5e906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611dfa896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611e049190613ba0565b611e0e9190613bc1565b67ffffffffffffffff161590508115158103611e56576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff1615611ead576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611f1857611f186136a7565b14611f4f576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611f5e86612c1d565b93509350935093506000611f748585858561304a565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120079190613be8565b9050600189036120ff5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612063367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af11580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190613b87565b5061233b565b6002890361212b5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612063565b600389036121575773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612063565b6004890361229057600061219d6fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613109565b6121c7907f0000000000000000000000000000000000000000000000000000000000000000613a1d565b6121d2906001613a1d565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122899190613b87565b505061233b565b60058903612309576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390524660c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a4016120b6565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900335606061239c6109c3565b9050909192565b60008054700100000000000000000000000000000000900460ff1660028111156123cf576123cf6136a7565b14612406576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001828154811061241b5761241b6139bf565b60009182526020822060059190910201600481015490925061245d90700100000000000000000000000000000000900460401c67ffffffffffffffff16610f31565b600483015490915060009061248f90700100000000000000000000000000000000900467ffffffffffffffff16610f31565b6124999042613ba0565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c166124d38284613c05565b67ffffffffffffffff1611612514576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600460205260409020805485158015612534575060055460ff165b1561256b576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015801561257857508515155b156125dd578454640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156125ab57816125c7565b600187015473ffffffffffffffffffffffffffffffffffffffff165b90506125d381886131be565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b8381101561272357600085828154811061260e5761260e6139bf565b6000918252602080832090910154808352600490915260409091205490915015612664576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612679576126796139bf565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff161580156126d2575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612710576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b50508061271c90613c28565b90506125f2565b5061276b73ffffffffffffffffffffffffffffffffffffffff8316156127495782612765565b600188015473ffffffffffffffffffffffffffffffffffffffff165b886131be565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff84160217875560008881526004602052604081206127c79161366d565b876000036125d357600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b6060600061283b84367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003613a1d565b90508267ffffffffffffffff1667ffffffffffffffff81111561286057612860613c60565b6040519080825280601f01601f19166020018201604052801561288a576020820181803683370190505b509150828160208401375092915050565b151760011b90565b60006128c26fffffffffffffffffffffffffffffffff84166001613ac0565b905060006128d282866001612b0a565b9050600086901a83806129c5575061290b60027f0000000000000000000000000000000000000000000000000000000000000000613a7b565b60048301546002906129af906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6129b99190613bc1565b67ffffffffffffffff16145b15612a1d5760ff8116600114806129df575060ff81166002145b612a18576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016114e9565b612a5b565b60ff811615612a5b576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016114e9565b50505050505050565b600080612af1837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008082612b5357612b4e6fffffffffffffffffffffffffffffffff86167f000000000000000000000000000000000000000000000000000000000000000061334a565b612b6e565b612b6e856fffffffffffffffffffffffffffffffff16613511565b905060018481548110612b8357612b836139bf565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff828116911614612be657815460018054909163ffffffff16908110612bd157612bd16139bf565b90600052602060002090600502019150612b94565b509392505050565b6000806000806000612bff86612c1d565b9350935093509350612c138484848461304a565b9695505050505050565b6000806000806000859050600060018281548110612c3d57612c3d6139bf565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612d14906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612d55576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612e1c906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612e9857825463ffffffff16612e627f00000000000000000000000000000000000000000000000000000000000000006001613a1d565b8303612e6c578391505b60018181548110612e7f57612e7f6139bf565b9060005260206000209060050201935080945050612d59565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612f01612eec856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015612fe6576000612f39836fffffffffffffffffffffffffffffffff16612a64565b67ffffffffffffffff161115612f9c576000612f73612f6b60016fffffffffffffffffffffffffffffffff8616613a8f565b896001612b0a565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50612fc09050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff16975061303c565b6000613008612f6b6fffffffffffffffffffffffffffffffff85166001613ac0565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841681036130b05782826040516020016130939291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b604051602081830303815290604052805190602001209050613101565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080613196847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000001810161322e576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff841660009081526020919091526040812080548392906132a1908490613a1d565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b15801561333657600080fd5b505af1158015612a5b573d6000803e3d6000fd5b6000816133e9846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161161342a576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61343383613511565b9050816134d2826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff161161350b576135086134ef836001613a1d565b6fffffffffffffffffffffffffffffffff8316906135bd565b90505b92915050565b600081196001830116816135a5827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b60008061364a847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b508054600082559060005260206000209081019061368b919061368e565b50565b5b808211156136a3576000815560010161368f565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310613711577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561372a57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561375f57602081850181015186830182015201613743565b81811115613771576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006135086020830184613739565b73ffffffffffffffffffffffffffffffffffffffff8116811461368b57600080fd5b6000602082840312156137eb57600080fd5b81356137f6816137b7565b9392505050565b8035801515811461380d57600080fd5b919050565b60008060006060848603121561382757600080fd5b833592506020840135915061383e604085016137fd565b90509250925092565b60006020828403121561385957600080fd5b81356fffffffffffffffffffffffffffffffff811681146137f657600080fd5b60006020828403121561388b57600080fd5b5035919050565b60008083601f8401126138a457600080fd5b50813567ffffffffffffffff8111156138bc57600080fd5b6020830191508360208285010111156138d457600080fd5b9250929050565b600080600080600080608087890312156138f457600080fd5b86359550613904602088016137fd565b9450604087013567ffffffffffffffff8082111561392157600080fd5b61392d8a838b01613892565b9096509450606089013591508082111561394657600080fd5b5061395389828a01613892565b979a9699509497509295939492505050565b60008060006060848603121561397a57600080fd5b505081359360208301359350604090920135919050565b63ffffffff841681528260208201526060604082015260006139b66060830184613739565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613a3057613a306139ee565b500190565b600082821015613a4757613a476139ee565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613a8a57613a8a613a4c565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015613ab857613ab86139ee565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115613aeb57613aeb6139ee565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000613b61606083018789613b04565b8281036020840152613b74818688613b04565b9150508260408301529695505050505050565b600060208284031215613b9957600080fd5b5051919050565b600067ffffffffffffffff83811690831681811015613ab857613ab86139ee565b600067ffffffffffffffff80841680613bdc57613bdc613a4c565b92169190910692915050565b600060208284031215613bfa57600080fd5b81516137f6816137b7565b600067ffffffffffffffff808316818516808303821115613aeb57613aeb6139ee565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c5957613c596139ee565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
var FaultDisputeGameDeployedBin = "0x6080604052600436106101e75760003560e01c80638d450a951161010e578063d6ae3cd5116100a7578063f3f7214e11610079578063fa24f74311610061578063fa24f74314610797578063fa315aa9146107bb578063fdffbb28146107ee57005b8063f3f7214e1461074c578063f8f43ff61461077757005b8063d6ae3cd514610693578063d8cc1a3c146106c6578063e1f0c376146106e6578063ec5e63081461071957005b8063c55cd0c7116100e0578063c55cd0c7146105a8578063c6f0308c146105bb578063cf09e0d014610645578063d5d44d801461066657005b80638d450a95146104d0578063bbdc02db14610503578063bcef3b5514610544578063c395e1ca1461058157005b8063609d33341161018057806368800abf1161015257806368800abf146104405780638129fc1c146104735780638980e0cc1461047b5780638b85902b1461049057005b8063609d3334146103b857806360e27464146103cd578063632247ea146103ed5780636361506d1461040057005b806335fef567116101b957806335fef567146102c85780633a768463146102db5780633fc8cef31461032f57806354fd4d501461036257005b80630356fe3a146101f057806319effeb414610232578063200d2ed2146102785780632810e1d6146102b357005b366101ee57005b005b3480156101fc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b34801561023e57600080fd5b5060005461025f9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610229565b34801561028457600080fd5b506000546102a690700100000000000000000000000000000000900460ff1681565b6040516102299190613741565b3480156102bf57600080fd5b506102a6610801565b6101ee6102d6366004613782565b6109fe565b3480156102e757600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610229565b34801561033b57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061030a565b34801561036e57600080fd5b506103ab6040518060400160405280600581526020017f302e372e3000000000000000000000000000000000000000000000000000000081525081565b604051610229919061380f565b3480156103c457600080fd5b506103ab610a0e565b3480156103d957600080fd5b506101ee6103e8366004613844565b610a21565b6101ee6103fb36600461387d565b610bcd565b34801561040c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013561021f565b34801561044c57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b6101ee611444565b34801561048757600080fd5b5060015461021f565b34801561049c57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036040013561021f565b3480156104dc57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b34801561050f57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610229565b34801561055057600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033561021f565b34801561058d57600080fd5b5061021f61059c3660046138b2565b50662386f26fc1000090565b6101ee6105b6366004613782565b61185f565b3480156105c757600080fd5b506105db6105d63660046138e4565b61186b565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610229565b34801561065157600080fd5b5060005461025f9067ffffffffffffffff1681565b34801561067257600080fd5b5061021f610681366004613844565b60026020526000908152604090205481565b34801561069f57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b3480156106d257600080fd5b506101ee6106e1366004613946565b611902565b3480156106f257600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061025f565b34801561072557600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b34801561075857600080fd5b506040516fffffffffffffffffffffffffffffffff8152602001610229565b34801561078357600080fd5b506101ee6107923660046139d0565b611f37565b3480156107a357600080fd5b506107ac6123b1565b604051610229939291906139fc565b3480156107c757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061021f565b6101ee6107fc3660046138e4565b61240e565b600080600054700100000000000000000000000000000000900460ff16600281111561082f5761082f613712565b14610866576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460ff166108a2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660016000815481106108ce576108ce613a2a565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff161461090957600161090c565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff909116177001000000000000000000000000000000008360028111156109bd576109bd613712565b0217905560028111156109d2576109d2613712565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a290565b610a0a82826000610bcd565b5050565b6060610a1c6040602061286f565b905090565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610a86576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610b1657600080fd5b505af1158015610b2a573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b88576040519150601f19603f3d011682016040523d82523d6000602084013e610b8d565b606091505b5050905080610bc8576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610bf957610bf9613712565b14610c30576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610c4557610c45613a2a565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610d0a908390869061290616565b90506000610daa826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050861580610dec5750610de97f00000000000000000000000000000000000000000000000000000000000000006002613a88565b81145b8015610df6575084155b15610e2d576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115610e87576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610eb27f00000000000000000000000000000000000000000000000000000000000000006001613a88565b8103610ec457610ec48688858861290e565b34662386f26fc100001115610f05576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835160009063ffffffff90811614610f65576001856000015163ffffffff1681548110610f3457610f34613a2a565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b60c0850151600090610f899067ffffffffffffffff165b67ffffffffffffffff1690565b67ffffffffffffffff1642610fb3610f7c856fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16610fc79190613a88565b610fd19190613aa0565b90507f000000000000000000000000000000000000000000000000000000000000000060011c677fffffffffffffff1667ffffffffffffffff82161115611044576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604082901b421760008a8152608087901b6fffffffffffffffffffffffffffffffff8d1617602052604081209192509060008181526003602052604090205490915060ff16156110c2576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808d63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018c8152602001886fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008c8152602001908152602001600020600180805490506113579190613aa0565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b1580156113ef57600080fd5b505af1158015611403573d6000803e3d6000fd5b50506040513393508d92508e91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a45050505050505050505050565b600554610100900460ff1615611486576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003604001351161153d576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560048201526024015b60405180910390fd5b60663611156115545763c407e0256000526004601cfd5b6040805160e08101825263ffffffff808252600060208301818152328486019081526fffffffffffffffffffffffffffffffff34818116606088019081527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90033560808901908152600160a08a0181815242861660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549185167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091179055517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9850155915195518116700100000000000000000000000000000000029516949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b50506000805467ffffffffffffffff42167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009091161790555050600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905550565b610a0a82826001610bcd565b6001818154811061187b57600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561192e5761192e613712565b14611965576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001878154811061197a5761197a613a2a565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506119d97f00000000000000000000000000000000000000000000000000000000000000006001613a88565b611a75826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1614611ab6576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808915611ba557611b097f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613aa0565b6001901b611b28846fffffffffffffffffffffffffffffffff16612acf565b67ffffffffffffffff16611b3c9190613ae6565b15611b7957611b70611b6160016fffffffffffffffffffffffffffffffff8716613afa565b865463ffffffff166000612b75565b60030154611b9b565b7f00000000000000000000000000000000000000000000000000000000000000005b9150849050611bcf565b60038501549150611bcc611b616fffffffffffffffffffffffffffffffff86166001613b2b565b90505b600882901b60088a8a604051611be6929190613b5f565b6040518091039020901b14611c27576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c328c612c59565b90506000611c41836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290611cbb908f908f908f908f908a90600401613bb8565b6020604051808303816000875af1158015611cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfe9190613bf2565b600485015491149150600090600290611da9906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611e45896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b611e4f9190613c0b565b611e599190613c2c565b67ffffffffffffffff161590508115158103611ea1576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff1615611ef8576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff166002811115611f6357611f63613712565b14611f9a576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600080611fa986612c88565b93509350935093506000611fbf858585856130b5565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120529190613c53565b90506001890361214a5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a846120ae367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036020013590565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121449190613bf2565b506123a6565b600289036121765773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84896120ae565b600389036121a25773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84876120ae565b600489036122db5760006121e86fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613174565b612212907f0000000000000000000000000000000000000000000000000000000000000000613a88565b61221d906001613a88565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af11580156122b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d49190613bf2565b50506123a6565b60058903612374576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a401612101565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003356060612407610a0e565b9050909192565b60008054700100000000000000000000000000000000900460ff16600281111561243a5761243a613712565b14612471576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001828154811061248657612486613a2a565b6000918252602082206005919091020160048101549092506124c890700100000000000000000000000000000000900460401c67ffffffffffffffff16610f7c565b60048301549091506000906124fa90700100000000000000000000000000000000900467ffffffffffffffff16610f7c565b6125049042613c0b565b9050677fffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000060011c1661253e8284613c70565b67ffffffffffffffff161161257f576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084815260046020526040902080548515801561259f575060055460ff165b156125d6576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801580156125e357508515155b15612648578454640100000000900473ffffffffffffffffffffffffffffffffffffffff16600081156126165781612632565b600187015473ffffffffffffffffffffffffffffffffffffffff165b905061263e8188613229565b5050505050505050565b60006fffffffffffffffffffffffffffffffff815b8381101561278e57600085828154811061267957612679613a2a565b60009182526020808320909101548083526004909152604090912054909150156126cf576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182815481106126e4576126e4613a2a565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff1615801561273d575060048101546fffffffffffffffffffffffffffffffff908116908516115b1561277b576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b50508061278790613c93565b905061265d565b506127d673ffffffffffffffffffffffffffffffffffffffff8316156127b457826127d0565b600188015473ffffffffffffffffffffffffffffffffffffffff165b88613229565b86547fffffffffffffffff0000000000000000000000000000000000000000ffffffff1664010000000073ffffffffffffffffffffffffffffffffffffffff8416021787556000888152600460205260408120612832916136d8565b8760000361263e57600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050565b606060006128a684367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003613a88565b90508267ffffffffffffffff1667ffffffffffffffff8111156128cb576128cb613ccb565b6040519080825280601f01601f1916602001820160405280156128f5576020820181803683370190505b509150828160208401375092915050565b151760011b90565b600061292d6fffffffffffffffffffffffffffffffff84166001613b2b565b9050600061293d82866001612b75565b9050600086901a8380612a30575061297660027f0000000000000000000000000000000000000000000000000000000000000000613ae6565b6004830154600290612a1a906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b612a249190613c2c565b67ffffffffffffffff16145b15612a885760ff811660011480612a4a575060ff81166002145b612a83576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401611534565b612ac6565b60ff811615612ac6576040517ff40239db00000000000000000000000000000000000000000000000000000000815260048101889052602401611534565b50505050505050565b600080612b5c837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600167ffffffffffffffff919091161b90920392915050565b60008082612bbe57612bb96fffffffffffffffffffffffffffffffff86167f00000000000000000000000000000000000000000000000000000000000000006133b5565b612bd9565b612bd9856fffffffffffffffffffffffffffffffff1661357c565b905060018481548110612bee57612bee613a2a565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff828116911614612c5157815460018054909163ffffffff16908110612c3c57612c3c613a2a565b90600052602060002090600502019150612bff565b509392505050565b6000806000806000612c6a86612c88565b9350935093509350612c7e848484846130b5565b9695505050505050565b6000806000806000859050600060018281548110612ca857612ca8613a2a565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090612d7f906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611612dc0576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090612e87906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169250821115612f0357825463ffffffff16612ecd7f00000000000000000000000000000000000000000000000000000000000000006001613a88565b8303612ed7578391505b60018181548110612eea57612eea613a2a565b9060005260206000209060050201935080945050612dc4565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16612f6c612f57856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015613051576000612fa4836fffffffffffffffffffffffffffffffff16612acf565b67ffffffffffffffff161115613007576000612fde612fd660016fffffffffffffffffffffffffffffffff8616613afa565b896001612b75565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a5061302b9050565b7f00000000000000000000000000000000000000000000000000000000000000009a505b600386015460048701549099506fffffffffffffffffffffffffffffffff1697506130a7565b6000613073612fd66fffffffffffffffffffffffffffffffff85166001613b2b565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff8416810361311b5782826040516020016130fe9291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b60405160208183030381529060405280519060200120905061316c565b60408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a0016040516020818303038152906040528051906020012090505b949350505050565b600080613201847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1690508083036001841b600180831b0386831b17039250505092915050565b60028101546fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000018101613299576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280830180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff17905573ffffffffffffffffffffffffffffffffffffffff8416600090815260209190915260408120805483929061330c908490613a88565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b1580156133a157600080fd5b505af1158015612ac6573d6000803e3d6000fd5b600081613454846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff1611613495576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61349e8361357c565b90508161353d826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff16116135765761357361355a836001613a88565b6fffffffffffffffffffffffffffffffff831690613628565b90505b92915050565b60008119600183011681613610827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169390931c8015179392505050565b6000806136b5847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b67ffffffffffffffff169050808303600180821b0385821b179250505092915050565b50805460008255906000526020600020908101906136f691906136f9565b50565b5b8082111561370e57600081556001016136fa565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016003831061377c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561379557600080fd5b50508035926020909101359150565b6000815180845260005b818110156137ca576020818501810151868301820152016137ae565b818111156137dc576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061357360208301846137a4565b73ffffffffffffffffffffffffffffffffffffffff811681146136f657600080fd5b60006020828403121561385657600080fd5b813561386181613822565b9392505050565b8035801515811461387857600080fd5b919050565b60008060006060848603121561389257600080fd5b83359250602084013591506138a960408501613868565b90509250925092565b6000602082840312156138c457600080fd5b81356fffffffffffffffffffffffffffffffff8116811461386157600080fd5b6000602082840312156138f657600080fd5b5035919050565b60008083601f84011261390f57600080fd5b50813567ffffffffffffffff81111561392757600080fd5b60208301915083602082850101111561393f57600080fd5b9250929050565b6000806000806000806080878903121561395f57600080fd5b8635955061396f60208801613868565b9450604087013567ffffffffffffffff8082111561398c57600080fd5b6139988a838b016138fd565b909650945060608901359150808211156139b157600080fd5b506139be89828a016138fd565b979a9699509497509295939492505050565b6000806000606084860312156139e557600080fd5b505081359360208301359350604090920135919050565b63ffffffff84168152826020820152606060408201526000613a2160608301846137a4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613a9b57613a9b613a59565b500190565b600082821015613ab257613ab2613a59565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613af557613af5613ab7565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015613b2357613b23613a59565b039392505050565b60006fffffffffffffffffffffffffffffffff808316818516808303821115613b5657613b56613a59565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b606081526000613bcc606083018789613b6f565b8281036020840152613bdf818688613b6f565b9150508260408301529695505050505050565b600060208284031215613c0457600080fd5b5051919050565b600067ffffffffffffffff83811690831681811015613b2357613b23613a59565b600067ffffffffffffffff80841680613c4757613c47613ab7565b92169190910692915050565b600060208284031215613c6557600080fd5b815161386181613822565b600067ffffffffffffffff808316818516808303821115613b5657613b56613a59565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cc457613cc4613a59565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea164736f6c634300080f000a"
func init() {
......
......@@ -1326,7 +1326,8 @@ contract Deploy is Deployer {
_splitDepth: cfg.faultGameSplitDepth(),
_gameDuration: Duration.wrap(uint64(cfg.faultGameMaxDuration())),
_vm: _params.faultVm,
_weth: _params.weth
_weth: _params.weth,
_l2ChainId: cfg.l2ChainID()
})
);
} else {
......@@ -1342,6 +1343,7 @@ contract Deploy is Deployer {
_gameDuration: Duration.wrap(uint64(cfg.faultGameMaxDuration())),
_vm: _params.faultVm,
_weth: _params.weth,
_l2ChainId: cfg.l2ChainID(),
_proposer: cfg.l2OutputOracleProposer(),
_challenger: cfg.l2OutputOracleChallenger()
})
......
......@@ -100,8 +100,8 @@
"sourceCodeHash": "0x1e5a6deded88804971fc1847c9eac65921771bff353437c0b29ed2f55513b984"
},
"src/dispute/FaultDisputeGame.sol": {
"initCodeHash": "0x1db101f0c3613d5e3f7e4f5f73e3f4e50917aef72abd7c28571d9be6cd76e4ad",
"sourceCodeHash": "0x7bea42037f03604a2781c238426af34d46bd85a6520cb884045dd13b33139b34"
"initCodeHash": "0xe78a025dc7e95b4767ec683b0f188565c45cc5f0236e8706fd86d2fddcee59d5",
"sourceCodeHash": "0xb70cd464f9b6f444b489b2cdd6a2d69fd7f14db8eba535b2289974f51061b3c2"
},
"src/dispute/weth/DelayedWETH.sol": {
"initCodeHash": "0x41e274b12dc48658d073dfea67ef694c5cce3963757911ee4cecc9f4c312e4bb",
......
......@@ -45,6 +45,11 @@
"internalType": "contract IDelayedWETH",
"name": "_weth",
"type": "address"
},
{
"internalType": "uint256",
"name": "_l2ChainId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
......@@ -390,6 +395,19 @@
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "l2ChainId",
"outputs": [
{
"internalType": "uint256",
"name": "l2ChainId_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxGameDepth",
......
......@@ -46,6 +46,11 @@
"name": "_weth",
"type": "address"
},
{
"internalType": "uint256",
"name": "_l2ChainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "_proposer",
......@@ -400,6 +405,19 @@
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "l2ChainId",
"outputs": [
{
"internalType": "uint256",
"name": "l2ChainId_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxGameDepth",
......
......@@ -39,18 +39,21 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
/// @notice An onchain VM that performs single instruction steps on a fault proof program trace.
IBigStepper internal immutable VM;
/// @notice The genesis block number
/// @notice The genesis block number.
uint256 internal immutable GENESIS_BLOCK_NUMBER;
/// @notice The genesis output root
/// @notice The genesis output root.
Hash internal immutable GENESIS_OUTPUT_ROOT;
/// @notice The game type ID
/// @notice The game type ID.
GameType internal immutable GAME_TYPE;
/// @notice WETH contract for holding ETH
/// @notice WETH contract for holding ETH.
IDelayedWETH internal immutable WETH;
/// @notice The chain ID of the L2 network this contract argues about.
uint256 internal immutable L2_CHAIN_ID;
/// @notice The global root claim's position is always at gindex 1.
Position internal constant ROOT_POSITION = Position.wrap(1);
......@@ -97,6 +100,7 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
/// @param _gameDuration The duration of the game.
/// @param _vm An onchain VM that performs single instruction steps on an FPP trace.
/// @param _weth WETH contract for holding ETH.
/// @param _l2ChainId Chain ID of the L2 network this contract argues about.
constructor(
GameType _gameType,
Claim _absolutePrestate,
......@@ -106,7 +110,8 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
uint256 _splitDepth,
Duration _gameDuration,
IBigStepper _vm,
IDelayedWETH _weth
IDelayedWETH _weth,
uint256 _l2ChainId
) {
// The split depth cannot be greater than or equal to the max game depth.
if (_splitDepth >= _maxGameDepth) revert InvalidSplitDepth();
......@@ -120,6 +125,7 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
GAME_DURATION = _gameDuration;
VM = _vm;
WETH = _weth;
L2_CHAIN_ID = _l2ChainId;
}
/// @notice Receive function to allow the contract to receive ETH.
......@@ -350,7 +356,7 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
oracle.loadLocalData(_ident, uuid.raw(), bytes32(l2Number << 0xC0), 8, _partOffset);
} else if (_ident == LocalPreimageKey.CHAIN_ID) {
// Load the chain ID as a big-endian uint64 in the high order 8 bytes of the word.
oracle.loadLocalData(_ident, uuid.raw(), bytes32(block.chainid << 0xC0), 8, _partOffset);
oracle.loadLocalData(_ident, uuid.raw(), bytes32(L2_CHAIN_ID << 0xC0), 8, _partOffset);
} else {
revert InvalidLocalIdent();
}
......@@ -628,6 +634,11 @@ contract FaultDisputeGame is IFaultDisputeGame, Clone, ISemver {
weth_ = WETH;
}
/// @notice Returns the chain ID of the L2 network this contract argues about.
function l2ChainId() external view returns (uint256 l2ChainId_) {
l2ChainId_ = L2_CHAIN_ID;
}
////////////////////////////////////////////////////////////////
// HELPERS //
////////////////////////////////////////////////////////////////
......
......@@ -34,8 +34,11 @@ contract PermissionedDisputeGame is FaultDisputeGame {
/// @param _maxGameDepth The maximum depth of bisection.
/// @param _splitDepth The final depth of the output bisection portion of the game.
/// @param _gameDuration The duration of the game.
/// @param _vm An onchain VM that performs single instruction steps on a fault proof program
/// trace.
/// @param _vm An onchain VM that performs single instruction steps on an FPP trace.
/// @param _weth WETH contract for holding ETH.
/// @param _l2ChainId Chain ID of the L2 network this contract argues about.
/// @param _proposer Address that is allowed to create instances of this contract.
/// @param _challenger Address that is allowed to challenge instances of this contract.
constructor(
GameType _gameType,
Claim _absolutePrestate,
......@@ -46,6 +49,7 @@ contract PermissionedDisputeGame is FaultDisputeGame {
Duration _gameDuration,
IBigStepper _vm,
IDelayedWETH _weth,
uint256 _l2ChainId,
address _proposer,
address _challenger
)
......@@ -58,7 +62,8 @@ contract PermissionedDisputeGame is FaultDisputeGame {
_splitDepth,
_gameDuration,
_vm,
_weth
_weth,
_l2ChainId
)
{
PROPOSER = _proposer;
......
......@@ -59,7 +59,8 @@ contract FaultDisputeGame_Init is DisputeGameFactory_Init {
_splitDepth: 2 ** 2,
_gameDuration: Duration.wrap(7 days),
_vm: _vm,
_weth: delayedWeth
_weth: delayedWeth,
_l2ChainId: 10
});
// Register the game implementation with the factory.
disputeGameFactory.setImplementation(GAME_TYPE, gameImpl);
......@@ -133,7 +134,8 @@ contract FaultDisputeGame_Test is FaultDisputeGame_Init {
_splitDepth: _splitDepth,
_gameDuration: Duration.wrap(7 days),
_vm: alphabetVM,
_weth: DelayedWETH(payable(address(0)))
_weth: DelayedWETH(payable(address(0))),
_l2ChainId: 10
});
}
......@@ -893,7 +895,7 @@ contract FaultDisputeGame_Test is FaultDisputeGame_Init {
startingClaim,
disputedClaim,
bytes32(uint256(1) << 0xC0),
bytes32(block.chainid << 0xC0)
bytes32(gameProxy.l2ChainId() << 0xC0)
];
for (uint256 i = 1; i <= 5; i++) {
......@@ -939,7 +941,7 @@ contract FaultDisputeGame_Test is FaultDisputeGame_Init {
startingClaim,
disputedClaim,
bytes32(uint256(2) << 0xC0),
bytes32(block.chainid << 0xC0)
bytes32(gameProxy.l2ChainId() << 0xC0)
];
for (uint256 i = 1; i <= 5; i++) {
......
......@@ -70,6 +70,7 @@ contract PermissionedDisputeGame_Init is DisputeGameFactory_Init {
_gameDuration: Duration.wrap(7 days),
_vm: _vm,
_weth: _weth,
_l2ChainId: 10,
_proposer: PROPOSER,
_challenger: CHALLENGER
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment