{ "abi": [{ "type": "constructor", "inputs": [{ "name": "_gameType", "type": "uint32", "internalType": "GameType" }, { "name": "_absolutePrestate", "type": "bytes32", "internalType": "Claim" }, { "name": "_maxGameDepth", "type": "uint256", "internalType": "uint256" }, { "name": "_splitDepth", "type": "uint256", "internalType": "uint256" }, { "name": "_clockExtension", "type": "uint64", "internalType": "Duration" }, { "name": "_maxClockDuration", "type": "uint64", "internalType": "Duration" }, { "name": "_vm", "type": "address", "internalType": "contract IBigStepper" }, { "name": "_weth", "type": "address", "internalType": "contract IDelayedWETH" }, { "name": "_anchorStateRegistry", "type": "address", "internalType": "contract IAnchorStateRegistry" }, { "name": "_l2ChainId", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "absolutePrestate", "inputs": [], "outputs": [{ "name": "absolutePrestate_", "type": "bytes32", "internalType": "Claim" }], "stateMutability": "view" }, { "type": "function", "name": "addLocalData", "inputs": [{ "name": "_ident", "type": "uint256", "internalType": "uint256" }, { "name": "_execLeafIdx", "type": "uint256", "internalType": "uint256" }, { "name": "_partOffset", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "anchorStateRegistry", "inputs": [], "outputs": [{ "name": "registry_", "type": "address", "internalType": "contract IAnchorStateRegistry" }], "stateMutability": "view" }, { "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": "claims", "inputs": [{ "name": "", "type": "bytes32", "internalType": "ClaimHash" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "clockExtension", "inputs": [], "outputs": [{ "name": "clockExtension_", "type": "uint64", "internalType": "Duration" }], "stateMutability": "view" }, { "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": "gameCreator", "inputs": [], "outputs": [{ "name": "creator_", "type": "address", "internalType": "address" }], "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": "gameType", "inputs": [], "outputs": [{ "name": "gameType_", "type": "uint32", "internalType": "GameType" }], "stateMutability": "view" }, { "type": "function", "name": "getChallengerDuration", "inputs": [{ "name": "_claimIndex", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "duration_", "type": "uint64", "internalType": "Duration" }], "stateMutability": "view" }, { "type": "function", "name": "getRequiredBond", "inputs": [{ "name": "_position", "type": "uint128", "internalType": "Position" }], "outputs": [{ "name": "requiredBond_", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "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": "maxClockDuration", "inputs": [], "outputs": [{ "name": "maxClockDuration_", "type": "uint64", "internalType": "Duration" }], "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": "enum GameStatus" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "resolveClaim", "inputs": [{ "name": "_claimIndex", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "resolvedAt", "inputs": [], "outputs": [{ "name": "", "type": "uint64", "internalType": "Timestamp" }], "stateMutability": "view" }, { "type": "function", "name": "resolvedSubgames", "inputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "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": "startingBlockNumber", "inputs": [], "outputs": [{ "name": "startingBlockNumber_", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "startingOutputRoot", "inputs": [], "outputs": [{ "name": "root", "type": "bytes32", "internalType": "Hash" }, { "name": "l2BlockNumber", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "startingRootHash", "inputs": [], "outputs": [{ "name": "startingRootHash_", "type": "bytes32", "internalType": "Hash" }], "stateMutability": "view" }, { "type": "function", "name": "status", "inputs": [], "outputs": [{ "name": "", "type": "uint8", "internalType": "enum GameStatus" }], "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": "subgames", "inputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }, { "name": "", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "version", "inputs": [], "outputs": [{ "name": "", "type": "string", "internalType": "string" }], "stateMutability": "view" }, { "type": "function", "name": "vm", "inputs": [], "outputs": [{ "name": "vm_", "type": "address", "internalType": "contract IBigStepper" }], "stateMutability": "view" }, { "type": "function", "name": "weth", "inputs": [], "outputs": [{ "name": "weth_", "type": "address", "internalType": "contract IDelayedWETH" }], "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": "enum GameStatus" }], "anonymous": false }, { "type": "error", "name": "AlreadyInitialized", "inputs": [] }, { "type": "error", "name": "AnchorRootNotFound", "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": "IncorrectBondAmount", "inputs": [] }, { "type": "error", "name": "InvalidClockExtension", "inputs": [] }, { "type": "error", "name": "InvalidLocalIdent", "inputs": [] }, { "type": "error", "name": "InvalidParent", "inputs": [] }, { "type": "error", "name": "InvalidPrestate", "inputs": [] }, { "type": "error", "name": "InvalidSplitDepth", "inputs": [] }, { "type": "error", "name": "MaxDepthTooLarge", "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": [] }], "bytecode": { "object": "0x6101c06040523480156200001257600080fd5b5060405162004dfd38038062004dfd833981016040819052620000359162000187565b620000436001607e62000248565b60ff168811156200006757604051633beff19960e11b815260040160405180910390fd5b878710620000885760405163e62ccf3960e01b815260040160405180910390fd5b620000a7856001600160401b03166200014e60201b620029041760201c565b6001600160401b0316620000cf876001600160401b03166200014e60201b620029041760201c565b6001600160401b03161115620000f85760405163235dfb2b60e21b815260040160405180910390fd5b63ffffffff9099166101205260809790975260a09590955260c0939093526001600160401b039182166101a0521660e0526001600160a01b0390811661010052908116610140521661016052610180526200027a565b90565b80516001600160401b03811681146200016957600080fd5b919050565b6001600160a01b03811681146200018457600080fd5b50565b6000806000806000806000806000806101408b8d031215620001a857600080fd5b8a5163ffffffff81168114620001bd57600080fd5b809a505060208b0151985060408b0151975060608b01519650620001e460808c0162000151565b9550620001f460a08c0162000151565b945060c08b015162000206816200016e565b60e08c015190945062000219816200016e565b6101008c01519093506200022d816200016e565b809250506101208b015190509295989b9194979a5092959850565b600060ff821660ff8416808210156200027157634e487b7160e01b600052601160045260246000fd5b90039392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051614a0b620003f2600039600081816105c60152818161124f0152818161130d015261133701526000818161084a0152612b5501526000818161050b01528181610c1f015261186001526000818161045201528181610da50152818161170701528181611c610152613f310152600081816106a60152818161181f0152612bef01526000818161041f015281816124c6015261281b01526000818161089d015281816111e90152818161127a0152818161136f01528181611e6d01528181611eaf0152612ced0152600081816108d00152818161108f01528181611158015281816112d80152818161231901528181612a1d015281816130fd0152818161382c0152818161395a01528181613a5b0152613b30015260008181610987015281816110fb01528181611f7e015281816120040152818161220f015261233a01526000818161066b01526123d80152614a0b6000f3fe6080604052600436106102bb5760003560e01c80638b85902b1161016e578063d6ae3cd5116100cb578063f8f43ff61161007f578063fa315aa911610064578063fa315aa914610978578063fdffbb28146109ab578063fe2bbeb2146109cb57600080fd5b8063f8f43ff614610934578063fa24f7431461095457600080fd5b8063dabd396d116100b0578063dabd396d1461088e578063ec5e6308146108c1578063eff0f592146108f457600080fd5b8063d6ae3cd51461083b578063d8cc1a3c1461086e57600080fd5b8063c395e1ca11610122578063c6f0308c11610107578063c6f0308c14610763578063cf09e0d0146107ed578063d5d44d801461080e57600080fd5b8063c395e1ca14610730578063c55cd0c71461075057600080fd5b8063bbdc02db11610153578063bbdc02db1461068f578063bcef3b55146106d0578063bd8da9561461071057600080fd5b80638b85902b1461061c5780638d450a951461065c57600080fd5b806357da950e1161021c5780636361506d116101d057806370872aa5116101b557806370872aa5146105ea5780638129fc1c146105ff5780638980e0cc1461060757600080fd5b80636361506d146105775780636b6716c0146105b757600080fd5b8063609d333411610201578063609d33341461052f57806360e2746414610544578063632247ea1461056457600080fd5b806357da950e146104cc5780635c0cba33146104fc57600080fd5b806335fef567116102735780633a768463116102585780633a768463146104105780633fc8cef31461044357806354fd4d501461047657600080fd5b806335fef5671461039a57806337b1b229146103af57600080fd5b806325fc2ace116102a457806325fc2ace146103465780632810e1d6146103655780632ad69aeb1461037a57600080fd5b806319effeb4146102c0578063200d2ed21461030b575b600080fd5b3480156102cc57600080fd5b506000546102ed9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561031757600080fd5b5060005461033990700100000000000000000000000000000000900460ff1681565b60405161030291906142b6565b34801561035257600080fd5b506006545b604051908152602001610302565b34801561037157600080fd5b506103396109fb565b34801561038657600080fd5b506103576103953660046142f7565b610ca0565b6103ad6103a83660046142f7565b610cd1565b005b3480156103bb57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610302565b34801561041c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561044f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561048257600080fd5b506104bf6040518060400160405280600681526020017f302e31372e30000000000000000000000000000000000000000000000000000081525081565b6040516103029190614384565b3480156104d857600080fd5b506006546007546104e7919082565b60408051928352602083019190915201610302565b34801561050857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561053b57600080fd5b506104bf610ce6565b34801561055057600080fd5b506103ad61055f3660046143bc565b610cf4565b6103ad6105723660046143f5565b610ea0565b34801561058357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610357565b3480156105c357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156105f657600080fd5b50600754610357565b6103ad6117a0565b34801561061357600080fd5b50600154610357565b34801561062857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135610357565b34801561066857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561069b57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610302565b3480156106dc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610357565b34801561071c57600080fd5b506102ed61072b36600461442a565b611cf8565b34801561073c57600080fd5b5061035761074b366004614443565b611ed8565b6103ad61075e3660046142f7565b6120bb565b34801561076f57600080fd5b5061078361077e36600461442a565b6120c7565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610302565b3480156107f957600080fd5b506000546102ed9067ffffffffffffffff1681565b34801561081a57600080fd5b506103576108293660046143bc565b60026020526000908152604090205481565b34801561084757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561087a57600080fd5b506103ad6108893660046144be565b61215e565b34801561089a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156108cd57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561090057600080fd5b5061092461090f36600461442a565b60036020526000908152604090205460ff1681565b6040519015158152602001610302565b34801561094057600080fd5b506103ad61094f366004614548565b61278d565b34801561096057600080fd5b50610969612bed565b60405161030293929190614574565b34801561098457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b3480156109b757600080fd5b506103ad6109c636600461442a565b612c4d565b3480156109d757600080fd5b506109246109e636600461442a565b60056020526000908152604090205460ff1681565b600080600054700100000000000000000000000000000000900460ff166002811115610a2957610a29614287565b14610a60576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff16610ac4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110610af057610af0614599565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614610b2b576001610b2e565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617700100000000000000000000000000000000836002811115610bdf57610bdf614287565b021790556002811115610bf457610bf4614287565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663838c2d1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b5050505090565b60046020528160005260406000208181548110610cbc57600080fd5b90600052602060002001600091509150505481565b610cdd82826000610ea0565b5050565b905090565b6060610ce16054602061305f565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610d59576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b5050905080610e9b576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610ecc57610ecc614287565b14610f03576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610f1857610f18614599565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610fdd90839086906130b116565b9050600061107d826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508615806110b857506110b57f000000000000000000000000000000000000000000000000000000000000000060026145f7565b81145b80156110c2575084155b156110f9576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611153576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117e7f000000000000000000000000000000000000000000000000000000000000000060016145f7565b810361119057611190868885886130b9565b3461119a83611ed8565b146111d1576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006111dc88611cf8565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611244576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112a4919061460f565b67ffffffffffffffff166112bf8267ffffffffffffffff1690565b67ffffffffffffffff1611156113a15760006112fc60017f0000000000000000000000000000000000000000000000000000000000000000614638565b83146113325767ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016611367565b6113677f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16600261464f565b905061139d817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661460f565b9150505b6000604082901b42176000898152608086901b6fffffffffffffffffffffffffffffffff8c1617602052604081209192509060008181526003602052604090205490915060ff161561141f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808c63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018b8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008b8152602001908152602001600020600180805490506116b49190614638565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50506040513393508c92508d91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a450505050505050505050565b60005471010000000000000000000000000000000000900460ff16156117f2576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637258a807906024016040805180830381865afa1580156118a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ca919061467f565b909250905081611906576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526006829055600781905536607a1461193957639824bdab6000526004601cfd5b80367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135116119d3576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff8082526000602083018181527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90038035606090811c868801908152346fffffffffffffffffffffffffffffffff81811693890193845260149094013560808901908152600160a08a0181815242871660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549186167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf985015551955182167001000000000000000000000000000000000295909116949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015580547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000017815583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611d2657611d26614287565b14611d5d576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110611d7257611d72614599565b600091825260208220600590910201805490925063ffffffff90811614611de157815460018054909163ffffffff16908110611db057611db0614599565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b6004820154600090611e1990700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b611e2d9067ffffffffffffffff1642614638565b611e4c611e0c846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16611e6091906145f7565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611ead5780611ecf565b7f00000000000000000000000000000000000000000000000000000000000000005b95945050505050565b600080611f77836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115611fd6576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a80630bebc2006000611ff183836146d2565b9050670de0b6b3a76400006000612028827f00000000000000000000000000000000000000000000000000000000000000006146e6565b90506000612046612041670de0b6b3a7640000866146e6565b613273565b9050600061205484846134ce565b90506000612062838361351d565b9050600061206f8261354b565b9050600061208e82612089670de0b6b3a76400008f6146e6565b613733565b9050600061209c8b8361351d565b90506120a8818d6146e6565b9f9e505050505050505050505050505050565b610cdd82826001610ea0565b600181815481106120d757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561218a5761218a614287565b146121c1576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600187815481106121d6576121d6614599565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506122357f000000000000000000000000000000000000000000000000000000000000000060016145f7565b6122d1826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161461230b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156124025761235e7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614638565b6001901b61237d846fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff166123999190614723565b156123d6576123cd6123be60016fffffffffffffffffffffffffffffffff8716614737565b865463ffffffff16600061380c565b600301546123f8565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061242c565b600385015491506124296123be6fffffffffffffffffffffffffffffffff86166001614760565b90505b600882901b60088a8a604051612443929190614794565b6040518091039020901b14612484576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061248f8c6138f0565b9050600061249e836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290612518908f908f908f908f908a906004016147ed565b6020604051808303816000875af1158015612537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255b9190614827565b600485015491149150600090600290612606906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126a2896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126ac9190614840565b6126b69190614863565b60ff1615905081151581036126f7576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff161561274e576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156127b9576127b9614287565b146127f0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000806127ff8661391f565b9350935093509350600061281585858585613d28565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614885565b9050600189036129a35773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612907367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299d9190614827565b50612be2565b600289036129cf5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612907565b600389036129fb5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612907565b60048903612b17576000612a416fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613de2565b600754612a4e91906145f7565b612a599060016145f7565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b109190614827565b5050612be2565b60058903612bb0576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161295a565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356060612c46610ce6565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115612c7957612c79614287565b14612cb0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612cc557612cc5614599565b906000526020600020906005020190506000612ce083611cf8565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015612d49576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526005602052604090205460ff1615612d92576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600460205260409020805480158015612daf57508415155b15612e49578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115612de25781612dfe565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050612e0a8187613e90565b505050600093845250506005602052506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60006fffffffffffffffffffffffffffffffff815b83811015612f91576000858281548110612e7a57612e7a614599565b6000918252602080832090910154808352600590915260409091205490915060ff16612ed2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612ee757612ee7614599565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612f40575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612f7e576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b505080612f8a906148a2565b9050612e5e565b50612fd973ffffffffffffffffffffffffffffffffffffffff831615612fb75782612fd3565b600187015473ffffffffffffffffffffffffffffffffffffffff165b87613e90565b50845473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff90911617909355505050600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b151760011b90565b60006130d86fffffffffffffffffffffffffffffffff84166001614760565b905060006130e88286600161380c565b9050600086901a83806131d4575061312160027f0000000000000000000000000000000000000000000000000000000000000000614723565b60048301546002906131c5906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6131cf9190614863565b60ff16145b1561322c5760ff8116600114806131ee575060ff81166002145b613227576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b61326a565b60ff81161561326a576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b50505050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b17600082136132d257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261350b57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b60008160001904831182021561353b5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d7821361357957919050565b680755bf798b4a1bf1e582126135975763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000613764670de0b6b3a76400008361374b86613273565b61375591906148da565b61375f9190614996565b61354b565b90505b92915050565b6000806137fa837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082613855576138506fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000613f89565b613870565b613870856fffffffffffffffffffffffffffffffff16614139565b90506001848154811061388557613885614599565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff8281169116146138e857815460018054909163ffffffff169081106138d3576138d3614599565b90600052602060002090600502019150613896565b509392505050565b60008060008060006139018661391f565b935093509350935061391584848484613d28565b9695505050505050565b600080600080600085905060006001828154811061393f5761393f614599565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090613a16906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613a50576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090613b17906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115613b8c57825463ffffffff16613b567f000000000000000000000000000000000000000000000000000000000000000060016145f7565b8303613b60578391505b60018181548110613b7357613b73614599565b9060005260206000209060050201935080945050613a54565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16613bf5613be0856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015613cc4576000613c2d836fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff161115613c98576000613c6f613c6760016fffffffffffffffffffffffffffffffff8616614737565b89600161380c565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50613c9e9050565b6006549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750613d1a565b6000613ce6613c676fffffffffffffffffffffffffffffffff85166001614760565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615613d955760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611ecf565b8282604051602001613dc39291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080613e6f847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff909216928392613ee09084906145f7565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b158015613f7557600080fd5b505af115801561326a573d6000803e3d6000fd5b600081614028846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614062576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61406b83614139565b90508161410a826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613767576137646141208360016145f7565b6fffffffffffffffffffffffffffffffff8316906141de565b600081196001830116816141cd827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b60008061426b847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106142f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561430a57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561433f57602081850181015186830182015201614323565b81811115614351576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006137646020830184614319565b73ffffffffffffffffffffffffffffffffffffffff811681146143b957600080fd5b50565b6000602082840312156143ce57600080fd5b81356143d981614397565b9392505050565b803580151581146143f057600080fd5b919050565b60008060006060848603121561440a57600080fd5b8335925060208401359150614421604085016143e0565b90509250925092565b60006020828403121561443c57600080fd5b5035919050565b60006020828403121561445557600080fd5b81356fffffffffffffffffffffffffffffffff811681146143d957600080fd5b60008083601f84011261448757600080fd5b50813567ffffffffffffffff81111561449f57600080fd5b6020830191508360208285010111156144b757600080fd5b9250929050565b600080600080600080608087890312156144d757600080fd5b863595506144e7602088016143e0565b9450604087013567ffffffffffffffff8082111561450457600080fd5b6145108a838b01614475565b9096509450606089013591508082111561452957600080fd5b5061453689828a01614475565b979a9699509497509295939492505050565b60008060006060848603121561455d57600080fd5b505081359360208301359350604090920135919050565b63ffffffff84168152826020820152606060408201526000611ecf6060830184614319565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561460a5761460a6145c8565b500190565b600067ffffffffffffffff83811690831681811015614630576146306145c8565b039392505050565b60008282101561464a5761464a6145c8565b500390565b600067ffffffffffffffff80831681851681830481118215151615614676576146766145c8565b02949350505050565b6000806040838503121561469257600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826146e1576146e16146a3565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471e5761471e6145c8565b500290565b600082614732576147326146a3565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015614630576146306145c8565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561478b5761478b6145c8565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006148016060830187896147a4565b82810360208401526148148186886147a4565b9150508260408301529695505050505050565b60006020828403121561483957600080fd5b5051919050565b600060ff821660ff84168082101561485a5761485a6145c8565b90039392505050565b600060ff831680614876576148766146a3565b8060ff84160691505092915050565b60006020828403121561489757600080fd5b81516143d981614397565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148d3576148d36145c8565b5060010190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561491b5761491b6145c8565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614956576149566145c8565b60008712925087820587128484161615614972576149726145c8565b87850587128184161615614988576149886145c8565b505050929093029392505050565b6000826149a5576149a56146a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156149f9576149f96145c8565b50059056fea164736f6c634300080f000a", "sourceMap": "996:43827:164:-:0;;;4927:1230;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5391:35;5425:1;512:3:176;5391:35:164;:::i;:::-;5375:51;;:13;:51;5371:82;;;5435:18;;-1:-1:-1;;;5435:18:164;;;;;;;;;;;5371:82;5564:13;5549:11;:28;5545:60;;5586:19;;-1:-1:-1;;;5586:19:164;;;;;;;;;;;5545:60;5722:23;:17;-1:-1:-1;;;;;5722:21:164;;;;;;:23;;:::i;:::-;-1:-1:-1;;;;;5698:47:164;:21;:15;-1:-1:-1;;;;;5698:19:164;;;;;;:21;;:::i;:::-;-1:-1:-1;;;;;5698:47:164;;5694:83;;;5754:23;;-1:-1:-1;;;5754:23:164;;;;;;;;;;;5694:83;5788:21;;;;;;5819:37;;;;;-1:-1:-1;5866:30:164;;;;5906:25;;;;;-1:-1:-1;;;;;5941:33:164;;;;;5984:38;;;-1:-1:-1;;;;;6032:8:164;;;;;6050:12;;;;;6072:44;;;6126:24;;996:43827;;2881:145:177;3001:9;2881:145::o;14:198:357:-;115:13;;-1:-1:-1;;;;;157:30:357;;147:41;;137:69;;202:1;199;192:12;137:69;14:198;;;:::o;217:144::-;-1:-1:-1;;;;;305:31:357;;295:42;;285:70;;351:1;348;341:12;285:70;217:144;:::o;366:1384::-;714:6;722;730;738;746;754;762;770;778;786;839:3;827:9;818:7;814:23;810:33;807:53;;;856:1;853;846:12;807:53;888:9;882:16;938:10;931:5;927:22;920:5;917:33;907:61;;964:1;961;954:12;907:61;987:5;977:15;;;1032:2;1021:9;1017:18;1011:25;1001:35;;1076:2;1065:9;1061:18;1055:25;1045:35;;1120:2;1109:9;1105:18;1099:25;1089:35;;1143:72;1210:3;1199:9;1195:19;1143:72;:::i;:::-;1133:82;;1234:72;1301:3;1290:9;1286:19;1234:72;:::i;:::-;1224:82;;1351:3;1340:9;1336:19;1330:26;1365:46;1403:7;1365:46;:::i;:::-;1482:3;1467:19;;1461:26;1430:7;;-1:-1:-1;1496:46:357;1461:26;1496:46;:::i;:::-;1613:3;1598:19;;1592:26;1561:7;;-1:-1:-1;1627:46:357;1592:26;1627:46;:::i;:::-;1692:7;1682:17;;;1739:3;1728:9;1724:19;1718:26;1708:36;;366:1384;;;;;;;;;;;;;:::o;1755:292::-;1793:4;1830;1827:1;1823:12;1862:4;1859:1;1855:12;1887:3;1882;1879:12;1876:135;;;1933:10;1928:3;1924:20;1921:1;1914:31;1968:4;1965:1;1958:15;1996:4;1993:1;1986:15;1876:135;2028:13;;;1755:292;-1:-1:-1;;;1755:292:357:o;:::-;996:43827:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x6080604052600436106102bb5760003560e01c80638b85902b1161016e578063d6ae3cd5116100cb578063f8f43ff61161007f578063fa315aa911610064578063fa315aa914610978578063fdffbb28146109ab578063fe2bbeb2146109cb57600080fd5b8063f8f43ff614610934578063fa24f7431461095457600080fd5b8063dabd396d116100b0578063dabd396d1461088e578063ec5e6308146108c1578063eff0f592146108f457600080fd5b8063d6ae3cd51461083b578063d8cc1a3c1461086e57600080fd5b8063c395e1ca11610122578063c6f0308c11610107578063c6f0308c14610763578063cf09e0d0146107ed578063d5d44d801461080e57600080fd5b8063c395e1ca14610730578063c55cd0c71461075057600080fd5b8063bbdc02db11610153578063bbdc02db1461068f578063bcef3b55146106d0578063bd8da9561461071057600080fd5b80638b85902b1461061c5780638d450a951461065c57600080fd5b806357da950e1161021c5780636361506d116101d057806370872aa5116101b557806370872aa5146105ea5780638129fc1c146105ff5780638980e0cc1461060757600080fd5b80636361506d146105775780636b6716c0146105b757600080fd5b8063609d333411610201578063609d33341461052f57806360e2746414610544578063632247ea1461056457600080fd5b806357da950e146104cc5780635c0cba33146104fc57600080fd5b806335fef567116102735780633a768463116102585780633a768463146104105780633fc8cef31461044357806354fd4d501461047657600080fd5b806335fef5671461039a57806337b1b229146103af57600080fd5b806325fc2ace116102a457806325fc2ace146103465780632810e1d6146103655780632ad69aeb1461037a57600080fd5b806319effeb4146102c0578063200d2ed21461030b575b600080fd5b3480156102cc57600080fd5b506000546102ed9068010000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020015b60405180910390f35b34801561031757600080fd5b5060005461033990700100000000000000000000000000000000900460ff1681565b60405161030291906142b6565b34801561035257600080fd5b506006545b604051908152602001610302565b34801561037157600080fd5b506103396109fb565b34801561038657600080fd5b506103576103953660046142f7565b610ca0565b6103ad6103a83660046142f7565b610cd1565b005b3480156103bb57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90033560601c5b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610302565b34801561041c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561044f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561048257600080fd5b506104bf6040518060400160405280600681526020017f302e31372e30000000000000000000000000000000000000000000000000000081525081565b6040516103029190614384565b3480156104d857600080fd5b506006546007546104e7919082565b60408051928352602083019190915201610302565b34801561050857600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103eb565b34801561053b57600080fd5b506104bf610ce6565b34801561055057600080fd5b506103ad61055f3660046143bc565b610cf4565b6103ad6105723660046143f5565b610ea0565b34801561058357600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360340135610357565b3480156105c357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156105f657600080fd5b50600754610357565b6103ad6117a0565b34801561061357600080fd5b50600154610357565b34801561062857600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135610357565b34801561066857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561069b57600080fd5b5060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610302565b3480156106dc57600080fd5b50367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360140135610357565b34801561071c57600080fd5b506102ed61072b36600461442a565b611cf8565b34801561073c57600080fd5b5061035761074b366004614443565b611ed8565b6103ad61075e3660046142f7565b6120bb565b34801561076f57600080fd5b5061078361077e36600461442a565b6120c7565b6040805163ffffffff909816885273ffffffffffffffffffffffffffffffffffffffff968716602089015295909416948601949094526fffffffffffffffffffffffffffffffff9182166060860152608085015291821660a08401521660c082015260e001610302565b3480156107f957600080fd5b506000546102ed9067ffffffffffffffff1681565b34801561081a57600080fd5b506103576108293660046143bc565b60026020526000908152604090205481565b34801561084757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561087a57600080fd5b506103ad6108893660046144be565b61215e565b34801561089a57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006102ed565b3480156108cd57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b34801561090057600080fd5b5061092461090f36600461442a565b60036020526000908152604090205460ff1681565b6040519015158152602001610302565b34801561094057600080fd5b506103ad61094f366004614548565b61278d565b34801561096057600080fd5b50610969612bed565b60405161030293929190614574565b34801561098457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610357565b3480156109b757600080fd5b506103ad6109c636600461442a565b612c4d565b3480156109d757600080fd5b506109246109e636600461442a565b60056020526000908152604090205460ff1681565b600080600054700100000000000000000000000000000000900460ff166002811115610a2957610a29614287565b14610a60576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805260056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5460ff16610ac4576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600081548110610af057610af0614599565b6000918252602090912060059091020154640100000000900473ffffffffffffffffffffffffffffffffffffffff1614610b2b576001610b2e565b60025b6000805467ffffffffffffffff421668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff82168117835592935083927fffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffff000000000000000000ffffffffffffffff90911617700100000000000000000000000000000000836002811115610bdf57610bdf614287565b021790556002811115610bf457610bf4614287565b6040517f5e186f09b9c93491f14e277eea7faa5de6a2d4bda75a79af7a3684fbfb42da6090600090a27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663838c2d1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c8557600080fd5b505af1158015610c99573d6000803e3d6000fd5b5050505090565b60046020528160005260406000208181548110610cbc57600080fd5b90600052602060002001600091509150505481565b610cdd82826000610ea0565b5050565b905090565b6060610ce16054602061305f565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040812080549082905590819003610d59576040517f17bfe5f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ff3fef3a300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f3fef3a390604401600060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610e5b576040519150601f19603f3d011682016040523d82523d6000602084013e610e60565b606091505b5050905080610e9b576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60008054700100000000000000000000000000000000900460ff166002811115610ecc57610ecc614287565b14610f03576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018481548110610f1857610f18614599565b600091825260208083206040805160e0810182526005909402909101805463ffffffff808216865273ffffffffffffffffffffffffffffffffffffffff6401000000009092048216948601949094526001820154169184019190915260028101546fffffffffffffffffffffffffffffffff90811660608501526003820154608085015260049091015480821660a0850181905270010000000000000000000000000000000090910490911660c0840152919350909190610fdd90839086906130b116565b9050600061107d826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508615806110b857506110b57f000000000000000000000000000000000000000000000000000000000000000060026145f7565b81145b80156110c2575084155b156110f9576040517fa42637bc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000811115611153576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61117e7f000000000000000000000000000000000000000000000000000000000000000060016145f7565b810361119057611190868885886130b9565b3461119a83611ed8565b146111d1576040517f8620aa1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006111dc88611cf8565b905067ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811690821603611244576040517f3381d11400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166112a4919061460f565b67ffffffffffffffff166112bf8267ffffffffffffffff1690565b67ffffffffffffffff1611156113a15760006112fc60017f0000000000000000000000000000000000000000000000000000000000000000614638565b83146113325767ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016611367565b6113677f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16600261464f565b905061139d817f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1661460f565b9150505b6000604082901b42176000898152608086901b6fffffffffffffffffffffffffffffffff8c1617602052604081209192509060008181526003602052604090205490915060ff161561141f576040517f80497e3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016003600083815260200190815260200160002060006101000a81548160ff02191690831515021790555060016040518060e001604052808c63ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001346fffffffffffffffffffffffffffffffff1681526020018b8152602001876fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506080820151816003015560a08201518160040160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060c08201518160040160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050600460008b8152602001908152602001600020600180805490506116b49190614638565b81546001810183556000928352602083200155604080517fd0e30db0000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263d0e30db09234926004808301939282900301818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50506040513393508c92508d91507f9b3245740ec3b155098a55be84957a4da13eaf7f14a8bc6f53126c0b9350f2be90600090a450505050505050505050565b60005471010000000000000000000000000000000000900460ff16156117f2576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7258a80700000000000000000000000000000000000000000000000000000000815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152600090819073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637258a807906024016040805180830381865afa1580156118a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ca919061467f565b909250905081611906576040517f6a6bc3b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080518082019091528281526020018190526006829055600781905536607a1461193957639824bdab6000526004601cfd5b80367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c900360540135116119d3576040517ff40239db000000000000000000000000000000000000000000000000000000008152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036014013560048201526024015b60405180910390fd5b6040805160e08101825263ffffffff8082526000602083018181527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe369081013560f01c90038035606090811c868801908152346fffffffffffffffffffffffffffffffff81811693890193845260149094013560808901908152600160a08a0181815242871660c08c0190815282548084018455928a529a5160059092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054995173ffffffffffffffffffffffffffffffffffffffff908116640100000000027fffffffffffffffff000000000000000000000000000000000000000000000000909b1694909c16939093179890981790915592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf787018054918a167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8860180549186167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf985015551955182167001000000000000000000000000000000000295909116949094177fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa9091015580547fffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000017815583517fd0e30db000000000000000000000000000000000000000000000000000000000815293517f00000000000000000000000000000000000000000000000000000000000000009092169363d0e30db093926004828101939282900301818588803b158015611ca757600080fd5b505af1158015611cbb573d6000803e3d6000fd5b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164267ffffffffffffffff161790555050505050565b600080600054700100000000000000000000000000000000900460ff166002811115611d2657611d26614287565b14611d5d576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018381548110611d7257611d72614599565b600091825260208220600590910201805490925063ffffffff90811614611de157815460018054909163ffffffff16908110611db057611db0614599565b906000526020600020906005020160040160109054906101000a90046fffffffffffffffffffffffffffffffff1690505b6004820154600090611e1990700100000000000000000000000000000000900467ffffffffffffffff165b67ffffffffffffffff1690565b611e2d9067ffffffffffffffff1642614638565b611e4c611e0c846fffffffffffffffffffffffffffffffff1660401c90565b67ffffffffffffffff16611e6091906145f7565b905067ffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001667ffffffffffffffff168167ffffffffffffffff1611611ead5780611ecf565b7f00000000000000000000000000000000000000000000000000000000000000005b95945050505050565b600080611f77836fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690507f0000000000000000000000000000000000000000000000000000000000000000811115611fd6576040517f56f57b2b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b642e90edd00062061a80630bebc2006000611ff183836146d2565b9050670de0b6b3a76400006000612028827f00000000000000000000000000000000000000000000000000000000000000006146e6565b90506000612046612041670de0b6b3a7640000866146e6565b613273565b9050600061205484846134ce565b90506000612062838361351d565b9050600061206f8261354b565b9050600061208e82612089670de0b6b3a76400008f6146e6565b613733565b9050600061209c8b8361351d565b90506120a8818d6146e6565b9f9e505050505050505050505050505050565b610cdd82826001610ea0565b600181815481106120d757600080fd5b60009182526020909120600590910201805460018201546002830154600384015460049094015463ffffffff8416955064010000000090930473ffffffffffffffffffffffffffffffffffffffff908116949216926fffffffffffffffffffffffffffffffff91821692918082169170010000000000000000000000000000000090041687565b60008054700100000000000000000000000000000000900460ff16600281111561218a5761218a614287565b146121c1576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600187815481106121d6576121d6614599565b6000918252602082206005919091020160048101549092506fffffffffffffffffffffffffffffffff16908715821760011b90506122357f000000000000000000000000000000000000000000000000000000000000000060016145f7565b6122d1826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff161461230b576040517f5f53dd9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008089156124025761235e7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614638565b6001901b61237d846fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff166123999190614723565b156123d6576123cd6123be60016fffffffffffffffffffffffffffffffff8716614737565b865463ffffffff16600061380c565b600301546123f8565b7f00000000000000000000000000000000000000000000000000000000000000005b915084905061242c565b600385015491506124296123be6fffffffffffffffffffffffffffffffff86166001614760565b90505b600882901b60088a8a604051612443929190614794565b6040518091039020901b14612484576040517f696550ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061248f8c6138f0565b9050600061249e836003015490565b6040517fe14ced320000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e14ced3290612518908f908f908f908f908a906004016147ed565b6020604051808303816000875af1158015612537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255b9190614827565b600485015491149150600090600290612606906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126a2896fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6126ac9190614840565b6126b69190614863565b60ff1615905081151581036126f7576040517ffb4e40dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8754640100000000900473ffffffffffffffffffffffffffffffffffffffff161561274e576040517f9071e6af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505085547fffffffffffffffff0000000000000000000000000000000000000000ffffffff163364010000000002179095555050505050505050505050565b60008054700100000000000000000000000000000000900460ff1660028111156127b9576127b9614287565b146127f0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000806127ff8661391f565b9350935093509350600061281585858585613d28565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a89190614885565b9050600189036129a35773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a84612907367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90036034013590565b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526024830191909152604482015260206064820152608481018a905260a4015b6020604051808303816000875af1158015612979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299d9190614827565b50612be2565b600289036129cf5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8489612907565b600389036129fb5773ffffffffffffffffffffffffffffffffffffffff81166352f0f3ad8a8487612907565b60048903612b17576000612a416fffffffffffffffffffffffffffffffff85167f0000000000000000000000000000000000000000000000000000000000000000613de2565b600754612a4e91906145f7565b612a599060016145f7565b905073ffffffffffffffffffffffffffffffffffffffff82166352f0f3ad8b8560405160e084901b7fffffffff000000000000000000000000000000000000000000000000000000001681526004810192909252602482015260c084901b604482015260086064820152608481018b905260a4016020604051808303816000875af1158015612aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b109190614827565b5050612be2565b60058903612bb0576040517f52f0f3ad000000000000000000000000000000000000000000000000000000008152600481018a9052602481018390527f000000000000000000000000000000000000000000000000000000000000000060c01b6044820152600860648201526084810188905273ffffffffffffffffffffffffffffffffffffffff8216906352f0f3ad9060a40161295a565b6040517fff137e6500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b7f0000000000000000000000000000000000000000000000000000000000000000367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c9003601401356060612c46610ce6565b9050909192565b60008054700100000000000000000000000000000000900460ff166002811115612c7957612c79614287565b14612cb0576040517f67fe195000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612cc557612cc5614599565b906000526020600020906005020190506000612ce083611cf8565b905067ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169082161015612d49576040517ff2440b5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526005602052604090205460ff1615612d92576040517ff1a9458100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600460205260409020805480158015612daf57508415155b15612e49578354640100000000900473ffffffffffffffffffffffffffffffffffffffff1660008115612de25781612dfe565b600186015473ffffffffffffffffffffffffffffffffffffffff165b9050612e0a8187613e90565b505050600093845250506005602052506040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60006fffffffffffffffffffffffffffffffff815b83811015612f91576000858281548110612e7a57612e7a614599565b6000918252602080832090910154808352600590915260409091205490915060ff16612ed2576040517f9a07664600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060018281548110612ee757612ee7614599565b600091825260209091206005909102018054909150640100000000900473ffffffffffffffffffffffffffffffffffffffff16158015612f40575060048101546fffffffffffffffffffffffffffffffff908116908516115b15612f7e576001810154600482015473ffffffffffffffffffffffffffffffffffffffff90911695506fffffffffffffffffffffffffffffffff1693505b505080612f8a906148a2565b9050612e5e565b50612fd973ffffffffffffffffffffffffffffffffffffffff831615612fb75782612fd3565b600187015473ffffffffffffffffffffffffffffffffffffffff165b87613e90565b50845473ffffffffffffffffffffffffffffffffffffffff909116640100000000027fffffffffffffffff0000000000000000000000000000000000000000ffffffff90911617909355505050600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b604051818152367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81013560f01c90038284820160208401378260208301016000815260208101604052505092915050565b151760011b90565b60006130d86fffffffffffffffffffffffffffffffff84166001614760565b905060006130e88286600161380c565b9050600086901a83806131d4575061312160027f0000000000000000000000000000000000000000000000000000000000000000614723565b60048301546002906131c5906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b6131cf9190614863565b60ff16145b1561322c5760ff8116600114806131ee575060ff81166002145b613227576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b61326a565b60ff81161561326a576040517ff40239db000000000000000000000000000000000000000000000000000000008152600481018890526024016119ca565b50505050505050565b6fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b17600082136132d257631615e6386000526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261350b57637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b60008160001904831182021561353b5763bac65e5b6000526004601cfd5b50670de0b6b3a764000091020490565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d7821361357957919050565b680755bf798b4a1bf1e582126135975763a37bfec96000526004601cfd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000613764670de0b6b3a76400008361374b86613273565b61375591906148da565b61375f9190614996565b61354b565b90505b92915050565b6000806137fa837e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b600160ff919091161b90920392915050565b60008082613855576138506fffffffffffffffffffffffffffffffff86167f0000000000000000000000000000000000000000000000000000000000000000613f89565b613870565b613870856fffffffffffffffffffffffffffffffff16614139565b90506001848154811061388557613885614599565b906000526020600020906005020191505b60048201546fffffffffffffffffffffffffffffffff8281169116146138e857815460018054909163ffffffff169081106138d3576138d3614599565b90600052602060002090600502019150613896565b509392505050565b60008060008060006139018661391f565b935093509350935061391584848484613d28565b9695505050505050565b600080600080600085905060006001828154811061393f5761393f614599565b600091825260209091206004600590920201908101549091507f000000000000000000000000000000000000000000000000000000000000000090613a16906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613a50576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000815b60048301547f000000000000000000000000000000000000000000000000000000000000000090613b17906fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169250821115613b8c57825463ffffffff16613b567f000000000000000000000000000000000000000000000000000000000000000060016145f7565b8303613b60578391505b60018181548110613b7357613b73614599565b9060005260206000209060050201935080945050613a54565b600481810154908401546fffffffffffffffffffffffffffffffff91821691166000816fffffffffffffffffffffffffffffffff16613bf5613be0856fffffffffffffffffffffffffffffffff1660011c90565b6fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff161490508015613cc4576000613c2d836fffffffffffffffffffffffffffffffff1661376d565b6fffffffffffffffffffffffffffffffff161115613c98576000613c6f613c6760016fffffffffffffffffffffffffffffffff8616614737565b89600161380c565b6003810154600490910154909c506fffffffffffffffffffffffffffffffff169a50613c9e9050565b6006549a505b600386015460048701549099506fffffffffffffffffffffffffffffffff169750613d1a565b6000613ce6613c676fffffffffffffffffffffffffffffffff85166001614760565b6003808901546004808b015492840154930154909e506fffffffffffffffffffffffffffffffff9182169d50919b50169850505b505050505050509193509193565b60006fffffffffffffffffffffffffffffffff841615613d955760408051602081018790526fffffffffffffffffffffffffffffffff8087169282019290925260608101859052908316608082015260a00160405160208183030381529060405280519060200120611ecf565b8282604051602001613dc39291909182526fffffffffffffffffffffffffffffffff16602082015260400190565b6040516020818303038152906040528051906020012095945050505050565b600080613e6f847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1690508083036001841b600180831b0386831b17039250505092915050565b60028082015473ffffffffffffffffffffffffffffffffffffffff841660009081526020929092526040822080546fffffffffffffffffffffffffffffffff909216928392613ee09084906145f7565b90915550506040517f7eee288d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018390527f00000000000000000000000000000000000000000000000000000000000000001690637eee288d90604401600060405180830381600087803b158015613f7557600080fd5b505af115801561326a573d6000803e3d6000fd5b600081614028846fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611614062576040517fb34b5c2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61406b83614139565b90508161410a826fffffffffffffffffffffffffffffffff167e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff1611613767576137646141208360016145f7565b6fffffffffffffffffffffffffffffffff8316906141de565b600081196001830116816141cd827e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169390931c8015179392505050565b60008061426b847e09010a0d15021d0b0e10121619031e080c141c0f111807131b17061a05041f7f07c4acdd0000000000000000000000000000000000000000000000000000000067ffffffffffffffff831160061b83811c63ffffffff1060051b1792831c600181901c17600281901c17600481901c17600881901c17601081901c170260fb1c1a1790565b60ff169050808303600180821b0385821b179250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600383106142f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806040838503121561430a57600080fd5b50508035926020909101359150565b6000815180845260005b8181101561433f57602081850181015186830182015201614323565b81811115614351576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006137646020830184614319565b73ffffffffffffffffffffffffffffffffffffffff811681146143b957600080fd5b50565b6000602082840312156143ce57600080fd5b81356143d981614397565b9392505050565b803580151581146143f057600080fd5b919050565b60008060006060848603121561440a57600080fd5b8335925060208401359150614421604085016143e0565b90509250925092565b60006020828403121561443c57600080fd5b5035919050565b60006020828403121561445557600080fd5b81356fffffffffffffffffffffffffffffffff811681146143d957600080fd5b60008083601f84011261448757600080fd5b50813567ffffffffffffffff81111561449f57600080fd5b6020830191508360208285010111156144b757600080fd5b9250929050565b600080600080600080608087890312156144d757600080fd5b863595506144e7602088016143e0565b9450604087013567ffffffffffffffff8082111561450457600080fd5b6145108a838b01614475565b9096509450606089013591508082111561452957600080fd5b5061453689828a01614475565b979a9699509497509295939492505050565b60008060006060848603121561455d57600080fd5b505081359360208301359350604090920135919050565b63ffffffff84168152826020820152606060408201526000611ecf6060830184614319565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561460a5761460a6145c8565b500190565b600067ffffffffffffffff83811690831681811015614630576146306145c8565b039392505050565b60008282101561464a5761464a6145c8565b500390565b600067ffffffffffffffff80831681851681830481118215151615614676576146766145c8565b02949350505050565b6000806040838503121561469257600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826146e1576146e16146a3565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471e5761471e6145c8565b500290565b600082614732576147326146a3565b500690565b60006fffffffffffffffffffffffffffffffff83811690831681811015614630576146306145c8565b60006fffffffffffffffffffffffffffffffff80831681851680830382111561478b5761478b6145c8565b01949350505050565b8183823760009101908152919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6060815260006148016060830187896147a4565b82810360208401526148148186886147a4565b9150508260408301529695505050505050565b60006020828403121561483957600080fd5b5051919050565b600060ff821660ff84168082101561485a5761485a6145c8565b90039392505050565b600060ff831680614876576148766146a3565b8060ff84160691505092915050565b60006020828403121561489757600080fd5b81516143d981614397565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148d3576148d36145c8565b5060010190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561491b5761491b6145c8565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614956576149566145c8565b60008712925087820587128484161615614972576149726145c8565b87850587128184161615614988576149886145c8565b505050929093029392505050565b6000826149a5576149a56146a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f8000000000000000000000000000000000000000000000000000000000000000831416156149f9576149f96145c8565b50059056fea164736f6c634300080f000a", "sourceMap": "996:43827:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3113:27;;;;;;;;;;-1:-1:-1;3113:27:164;;;;;;;;;;;;;;221:18:357;209:31;;;191:50;;179:2;164:18;3113:27:164;;;;;;;;3180:24;;;;;;;;;;-1:-1:-1;3180:24:164;;;;;;;;;;;;;;;;;;:::i;22098:135::-;;;;;;;;;;-1:-1:-1;22203:18:164;:23;22098:135;;;1021:25:357;;;1009:2;994:18;22098:135:164;848:204:357;22480:905:164;;;;;;;;;;;;;:::i;3777:45::-;;;;;;;;;;-1:-1:-1;3777:45:164;;;;;:::i;:::-;;:::i;19512:119::-;;;;;;:::i;:::-;;:::i;:::-;;27482:110;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1993:36;1989:2;1985:45;27482:110:164;;;1949:42:357;1937:55;;;1919:74;;1907:2;1892:18;27482:110:164;1773:226:357;34509:79:164;;;;;;;;;;-1:-1:-1;34579:2:164;34509:79;;34653:88;;;;;;;;;;-1:-1:-1;34730:4:164;34653:88;;2918:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4061:36::-;;;;;;;;;;-1:-1:-1;4061:36:164;;;;;;;;;;;;;3473:25:357;;;3529:2;3514:18;;3507:34;;;;3446:18;4061:36:164;3272:275:357;34807:136:164;;;;;;;;;;-1:-1:-1;34915:21:164;34807:136;;27942:231;;;;;;;;;;;;;:::i;31160:671::-;;;;;;;;;;-1:-1:-1;31160:671:164;;;;;:::i;:::-;;:::i;14106:5200::-;;;;;;:::i;:::-;;:::i;27792:111::-;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27890:4:164;3514:22:97;3501:36;27792:111:164;27482:110;34331:125;;;;;;;;;;-1:-1:-1;34434:15:164;34331:125;;21898:156;;;;;;;;;;-1:-1:-1;22015:32:164;;21898:156;;6198:2903;;;:::i;33244:101::-;;;;;;;;;;-1:-1:-1;33322:9:164;:16;33244:101;;21730:124;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;21842:4:164;3514:22:97;3501:36;21730:124:164;27482:110;33631:130;;;;;;;;;;-1:-1:-1;33737:17:164;33631:130;;27335:108;;;;;;;;;;-1:-1:-1;27335:108:164;;5615:10:357;27427:9:164;5603:23:357;5585:42;;5573:2;5558:18;27335:108:164;5409:224:357;27631:122:164;;;;;;;;;;-1:-1:-1;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27740:4:164;3514:22:97;3501:36;27631:122:164;27482:110;32166:1011;;;;;;;;;;-1:-1:-1;32166:1011:164;;;;;:::i;:::-;;:::i;28849:2171::-;;;;;;;;;;-1:-1:-1;28849:2171:164;;;;;:::i;:::-;;:::i;19350:118::-;;;;;;:::i;:::-;;:::i;3405:28::-;;;;;;;;;;-1:-1:-1;3405:28:164;;;;;:::i;:::-;;:::i;:::-;;;;6590:10:357;6578:23;;;6560:42;;6621;6699:15;;;6694:2;6679:18;;6672:43;6751:15;;;;6731:18;;;6724:43;;;;6786:34;6856:15;;;6851:2;6836:18;;6829:43;6903:3;6888:19;;6881:35;6953:15;;;6947:3;6932:19;;6925:44;7006:15;7000:3;6985:19;;6978:44;6547:3;6532:19;3405:28:164;6160:868:357;3017:26:164;;;;;;;;;;-1:-1:-1;3017:26:164;;;;;;;;3500:41;;;;;;;;;;-1:-1:-1;3500:41:164;;;;;:::i;:::-;;;;;;;;;;;;;;35032:105;;;;;;;;;;-1:-1:-1;35119:11:164;35032:105;;9353:4442;;;;;;;;;;-1:-1:-1;9353:4442:164;;;;;:::i;:::-;;:::i;34137:134::-;;;;;;;;;;-1:-1:-1;34246:18:164;34137:134;;33975:108;;;;;;;;;;-1:-1:-1;34065:11:164;33975:108;;3629:40;;;;;;;;;;-1:-1:-1;3629:40:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8626:14:357;;8619:22;8601:41;;8589:2;8574:18;3629:40:164;8461:187:357;19675:2011:164;;;;;;;;;;-1:-1:-1;19675:2011:164;;;;;:::i;:::-;;:::i;28212:213::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;33811:117::-;;;;;;;;;;-1:-1:-1;33907:14:164;33811:117;;23429:3867;;;;;;;;;;-1:-1:-1;23429:3867:164;;;;;:::i;:::-;;:::i;3912:48::-;;;;;;;;;;-1:-1:-1;3912:48:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;22480:905;22517:18;;22639:6;;;;;;;:32;;;;;;;;:::i;:::-;;22635:64;;22680:19;;;;;;;;;;;;;;22635:64;22813:19;;;:16;:19;;;;;;22808:55;;22841:22;;;;;;;;;;;;;;22808:55;22989:1;22953:38;;:9;22963:1;22953:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:24;;;;;;:38;:94;;23021:26;22953:94;;;22994:24;22953:94;23057:10;:52;;;23092:15;23057:52;;;;;;;;;;22943:104;;-1:-1:-1;22943:104:164;;23239:16;;;;;;;;22943:104;23239:16;;;;;;;;:::i;:::-;;;;;23230:26;;;;;;;;:::i;:::-;;;;;;;;23334:21;:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22480:905;:::o;3777:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19512:119::-;19591:33;19596:12;19610:6;19618:5;19591:4;:33::i;:::-;19512:119;;:::o;27565:20::-;27554:31;;27482:110;:::o;27942:231::-;27984:23;28142:24;28155:4;28161;28142:12;:24::i;31160:671::-;31333:18;;;31307:23;31333:18;;;:6;:18;;;;;;;31361:22;;;;31333:18;31457:20;;;31453:75;;31500:17;;;;;;;;;;;;;;31453:75;31605:42;;;;;:13;9795:55:357;;;31605:42:164;;;9777:74:357;9867:18;;;9860:34;;;31605:4:164;:13;;;;9750:18:357;;31605:42:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31708:12;31725:10;:15;;31749;31725:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31707:66;;;31788:7;31783:41;;31804:20;;;;;;;;;;;;;;31783:41;31210:621;;31160:671;:::o;14106:5200::-;14307:22;14297:6;;;;;;;:32;;;;;;;;:::i;:::-;;14293:64;;14338:19;;;;;;;;;;;;;;14293:64;14448:23;14474:9;14484:15;14474:26;;;;;;;;:::i;:::-;;;;;;;;;14448:52;;;;;;;;14474:26;;;;;;;14448:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14448:52:164;;14474:26;14829:25;;14448:52;;14844:9;;14829:14;:25;:::i;:::-;14805:49;;14864:25;14892:20;:12;:18;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;14892:20:164;14864:48;;;-1:-1:-1;15259:20:164;;;:60;;-1:-1:-1;15304:15:164;:11;15318:1;15304:15;:::i;:::-;15283:17;:36;15259:60;15258:76;;;;;15325:9;15324:10;15258:76;15254:137;;;15357:23;;;;;;;;;;;;;;15254:137;15752:14;15732:17;:34;15728:66;;;15775:19;;;;;;;;;;;;;;15728:66;16022:15;:11;16036:1;16022:15;:::i;:::-;16001:17;:36;15997:138;;16053:71;16078:6;16086:15;16103:9;16114;16053:24;:71::i;:::-;16258:9;16225:29;16241:12;16225:15;:29::i;:::-;:42;16221:76;;16276:21;;;;;;;;;;;;;;16221:76;16530:21;16554:38;16576:15;16554:21;:38::i;:::-;16530:62;-1:-1:-1;16764:22:164;:18;:22;;16742:16;;;:46;16738:78;;16797:19;;;;;;;;;;;;;;16738:78;17525:19;:15;:19;17498:22;:18;:22;:48;;;;:::i;:::-;17477:69;;:18;:12;:16;;3001:9:177;2881:145;17477:18:164;:69;;;17473:424;;;17671:22;17733:15;17747:1;17733:11;:15;:::i;:::-;17712:17;:36;:88;;17779:19;:15;:19;17712:88;;;17751:25;:15;:19;;17775:1;17751:25;:::i;:::-;17671:129;-1:-1:-1;17843:42:164;17671:129;17843:18;:22;;:42;:::i;:::-;17814:72;;17548:349;17473:424;17998:15;668:4:177;664:20;;;18066:15:164;661:36:177;18368:19:164;758:20:175;;;811:3;807:19;;;832:34;828:56;;804:81;798:4;791:95;929:4;913:21;;17998:86:164;;-1:-1:-1;18368:19:164;18454:17;;;;:6;:17;;;;;;18368:72;;-1:-1:-1;18454:17:164;;18450:50;;;18480:20;;;;;;;;;;;;;;18450:50;18530:4;18510:6;:17;18517:9;18510:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18578:9;18606:366;;;;;;;;18654:15;18606:366;;;;;;18770:1;18606:366;;;;;;18800:10;18606:366;;;;;;18842:9;18606:366;;;;;;18877:6;18606:366;;;;18911:12;18606:366;;;;;;18948:9;18606:366;;;;;18578:404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19051:8;:25;19060:15;19051:25;;;;;;;;;;;19101:1;19082:9;:16;;;;:20;;;;:::i;:::-;19051:52;;;;;;;-1:-1:-1;19051:52:164;;;;;;;;19143:34;;;;;;;;:12;:4;:12;;;;19164:9;;19143:34;;;;;-1:-1:-1;19143:34:164;;;;;19164:9;19143:12;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19258:41:164;;19288:10;;-1:-1:-1;19280:6:164;;-1:-1:-1;19263:15:164;;-1:-1:-1;19258:41:164;;;;;14198:5108;;;;;;;14106:5200;;;:::o;6198:2903::-;6888:11;;;;;;;6884:44;;;6908:20;;;;;;;;;;;;;;6884:44;7018:40;;;;;;7048:9;5603:23:357;7018:40:164;;;5585:42:357;6980:9:164;;;;7018:29;:21;:29;;;;5558:18:357;;7018:40:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6979:79;;-1:-1:-1;6979:79:164;-1:-1:-1;6979:79:164;7155:57;;7192:20;;;;;;;;;;;;;;7155:57;7285:58;;;;;;;;;;;;;;;;;7264:18;:79;;;;;;;7960:14;7976:4;7957:24;7947:195;;8082:10;8076:4;8069:24;8123:4;8117;8110:18;7947:195;8339:15;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;21842:4:164;3514:22:97;3501:36;8320:34:164;8316:79;;8363:32;;;;;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27740:4:164;3514:22:97;3501:36;8363:32:164;;;1021:25:357;994:18;;8363:32:164;;;;;;;;8316:79;8464:370;;;;;;;;8505:16;8464:370;;;-1:-1:-1;8464:370:164;;;;;;14561:22:97;14565:14;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1993:36;;1989:2;1985:45;;;8464:370:164;;;;;;8635:9;8464:370;;;;;;;;;;27740:4;3514:22:97;;;3501:36;8464:370:164;;;;;;8436:9;8464:370;;;;;;8801:15;8464:370;;;;;;;;8436:408;;;;;;;;;;;;;;;;;;;;;;;8464:370;8436:408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8895:18;;;;;;;;8953:34;;;;;;;:4;:12;;;;;;8635:9;8436:408;8953:34;;;;-1:-1:-1;8953:34:164;;;;;8635:9;8953:12;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9043:9:164;:51;;;;9077:15;9043:51;;;;;-1:-1:-1;;;;;6198:2903:164:o;32166:1011::-;32239:18;;32381:6;;;;;;;:32;;;;;;;;:::i;:::-;;32377:89;;32436:19;;;;;;;;;;;;;;32377:89;32517:34;32554:9;32564:11;32554:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;32689:28;;32554:22;;-1:-1:-1;32721:16:164;32689:28;;;:48;32685:138;;32777:28;;32767:9;:39;;:9;;32777:28;;;32767:39;;;;;;:::i;:::-;;;;;;;;;;;:45;;;;;;;;;;;;32753:59;;32685:138;33006:22;;;;32910:24;;33006:40;;:22;;;1624:28:177;;33006:34:164;:38;;3001:9:177;2881:145;33006:40:164;32988:58;;;;:15;:58;:::i;:::-;32956:28;:22;:11;:20;;1135:4:177;1131:17;;913:251;32956:28:164;:91;;;;;;:::i;:::-;32910:138;-1:-1:-1;33090:22:164;:18;:22;33070:44;;:17;:44;;;:100;;33152:17;33070:100;;;33117:18;33070:100;33058:112;32166:1011;-1:-1:-1;;;;;32166:1011:164:o;28849:2171::-;28915:21;28948:13;28972:17;:9;:15;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;28972:17:164;28964:26;;28948:42;;29012:14;29004:5;:22;29000:54;;;29035:19;;;;;;;;;;;;;;29000:54;29145:8;29188:7;29230:11;29120:22;29997:31;29188:7;29230:11;29997:31;:::i;:::-;29985:43;-1:-1:-1;2458:4:98;30038:9:164;30093:38;2458:4:98;30093:14:164;:38;:::i;:::-;30081:50;-1:-1:-1;30228:11:164;30250:58;30281:25;2458:4:98;30281:1:164;:25;:::i;:::-;30250:23;:58::i;:::-;30228:81;;30386:14;30403:30;30428:1;30431;30403:24;:30::i;:::-;30386:47;;30567:17;30587:37;30612:3;30617:6;30587:24;:37::i;:::-;30567:57;;30634:11;30648:43;30680:9;30648:24;:43::i;:::-;30634:57;-1:-1:-1;30746:13:164;30762:69;30634:57;30800:29;2458:4:98;30800:5:164;:29;:::i;:::-;30762:24;:69::i;:::-;30746:85;;30841:19;30863:57;30888:14;30912:6;30863:24;:57::i;:::-;30841:79;-1:-1:-1;30985:28:164;30841:79;30985:14;:28;:::i;:::-;30969:44;28849:2171;-1:-1:-1;;;;;;;;;;;;;;;28849:2171:164:o;19350:118::-;19429:32;19434:12;19448:6;19456:4;19429;:32::i;3405:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3405:28:164;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9353:4442::-;9636:22;9626:6;;;;;;;:32;;;;;;;;:::i;:::-;;9622:64;;9667:19;;;;;;;;;;;;;;9622:64;9777:24;9804:9;9814:11;9804:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9910:15;;;;9804:22;;-1:-1:-1;9910:15:164;;;8619:17:176;;8616:32;;8613:1;8609:40;9982:44:164;-1:-1:-1;10161:18:164;:14;10178:1;10161:18;:::i;:::-;10142:15;:7;:13;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;10142:15:164;:37;;;10138:65;;10188:15;;;;;;;;;;;;;;10138:65;10279:19;10308:27;10349:9;10345:1343;;;11080:28;11097:11;11080:14;:28;:::i;:::-;11074:1;:35;;11048:22;:7;:20;;;:22::i;:::-;:62;;;;;;:::i;:::-;11047:69;:211;;11171:81;11204:19;11222:1;11204:13;;;:19;:::i;:::-;11226:18;;;;;11171;:81::i;:::-;:87;;;11047:211;;;11135:17;11047:211;11031:227;;11351:6;11339:18;;10345:1343;;;11558:12;;;;;-1:-1:-1;11596:81:164;11629:19;:13;;;11647:1;11629:19;:::i;11596:81::-;11584:93;;10345:1343;12084:1;12061:13;:24;;12056:1;12041:10;;12031:21;;;;;;;:::i;:::-;;;;;;;;:26;;:54;12027:84;;12094:17;;;;;;;;;;;;;;12027:84;12182:9;12194:30;12212:11;12194:17;:30::i;:::-;12182:42;;13197:14;13257:21;:9;:15;;;3001:9:177;2881:145;13257:21:164;13214:39;;;;;:2;:7;;;;;:39;;13222:10;;;;13234:6;;;;13242:4;;13214:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13332:18;;;;13214:64;;;-1:-1:-1;13288:20:164;;13362:1;;13332:26;;:18;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;13332:26:164;13312:17;:9;:15;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;13312:17:164;:46;;;;:::i;:::-;13311:52;;;;:::i;:::-;:57;;;;-1:-1:-1;13382:28:164;;;;;13378:52;;13419:11;;;;;;;;;;;;;;13378:52;13524:18;;;;;:32;:18;:32;13520:60;;13565:15;;;;;;;;;;;;;;13520:60;-1:-1:-1;;13757:31:164;;;;13778:10;13757:31;;;;;;-1:-1:-1;;;;;;;;;;;9353:4442:164:o;19675:2011::-;19878:22;19868:6;;;;;;;:32;;;;;;;;:::i;:::-;;19864:64;;19909:19;;;;;;;;;;;;;;19864:64;19940:14;19956:20;19978:14;19994:20;20030:45;20062:12;20030:31;:45::i;:::-;19939:136;;;;;;;;20085:9;20097:66;20118:8;20128:11;20141:8;20151:11;20097:20;:66::i;:::-;20085:78;;20174:22;20199:2;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20174:36;;5253:4:194;20224:6:164;:39;20220:1460;;20316:20;;;;20337:6;20345:4;20357:14;14565::97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27890:4:164;3514:22:97;3501:36;3001:9:177;2881:145;20357:8:164;3001:9:177;2881:145;20357:14:164;20316:73;;;;;;;;;;;;;14739:25:357;;;;14780:18;;;14773:34;;;;14823:18;;;14816:34;20373:2:164;14866:18:357;;;14859:34;14909:19;;;14902:35;;;14711:19;;20316:73:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20220:1460;;;5374:4:194;20410:6:164;:47;20406:1274;;20530:20;;;;20551:6;20559:4;20571:8;:14;2881:145:177;20406:1274:164;5495:4:194;20624:6:164;:47;20620:1060;;20743:20;;;;20764:6;20772:4;20784:8;:14;2881:145:177;20620:1060:164;5624:4:194;20837:6:164;:51;20833:847;;21168:16;21222:35;:22;;;21245:11;21222:22;:35::i;:::-;21187:32;;:70;;;;:::i;:::-;:74;;21260:1;21187:74;:::i;:::-;21168:93;-1:-1:-1;21276:20:164;;;;21297:6;21305:4;21276:83;;;;;;;;;;;;;14739:25:357;;;;14780:18;;;14773:34;21337:4:164;21325:16;;;14823:18:357;;;14816:34;21344:1:164;14866:18:357;;;14859:34;14909:19;;;14902:35;;;14711:19;;21276:83:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20890:480;20833:847;;;5721:4:194;21380:6:164;:35;21376:304;;21526:86;;;;;;;;14739:25:357;;;14780:18;;;14773:34;;;21575:11:164;21590:4;21575:19;14823:18:357;;;14816:34;21597:1:164;14866:18:357;;;14859:34;14909:19;;;14902:35;;;21526:20:164;;;;;;14711:19:357;;21526:86:164;14471:472:357;21376:304:164;21650:19;;;;;;;;;;;;;;21376:304;19765:1921;;;;;;19675:2011;;;:::o;28212:213::-;27427:9;14565:14:97;14561:22;;;14548:36;14543:3;14539:46;14519:67;;27740:4:164;3514:22:97;3501:36;28293:23:164;28407:11;:9;:11::i;:::-;28394:24;;28212:213;;;:::o;23429:3867::-;23593:22;23583:6;;;;;;;:32;;;;;;;;:::i;:::-;;23579:64;;23624:19;;;;;;;;;;;;;;23579:64;23654:34;23691:9;23701:11;23691:22;;;;;;;;:::i;:::-;;;;;;;;;;;23654:59;;23723:31;23757:34;23779:11;23757:21;:34::i;:::-;23723:68;-1:-1:-1;24102:22:164;:18;:22;;24071:26;;;:55;24067:85;;;24135:17;;;;;;;;;;;;;;24067:85;24221:29;;;;:16;:29;;;;;;;;24217:64;;;24259:22;;;;;;;;;;;;;;24217:64;24292:34;24329:21;;;:8;:21;;;;;24390:23;;24576:24;;:44;;;;-1:-1:-1;24604:16:164;;;24576:44;24572:805;;;25109:28;;;;;;;25087:19;25171:25;;:67;;25227:11;25171:67;;;25199:25;;;;;;25171:67;25151:87;;25252:44;25268:9;25279:16;25252:15;:44::i;:::-;-1:-1:-1;;;25310:29:164;;;;-1:-1:-1;;25310:16:164;:29;;-1:-1:-1;25310:29:164;;;:36;;;;25342:4;25310:36;;;23429:3867::o;24572:805::-;25445:17;25526;25445;25554:1129;25578:19;25574:1;:23;25554:1129;;;25618:22;25643:16;25660:1;25643:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;25764:32;;;:16;:32;;;;;;;;25643:19;;-1:-1:-1;25764:32:164;;25759:68;;25805:22;;;;;;;;;;;;;;25759:68;25842:23;25868:9;25878:14;25868:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;26483:17;;25868:25;;-1:-1:-1;26483:17:164;;;:31;:17;:31;:79;;;;-1:-1:-1;26542:14:164;;;;;;;;26518:19;;;:44;26483:79;26479:194;;;26594:14;;;;26644;;;;26594;;;;;-1:-1:-1;26644:14:164;;;-1:-1:-1;26479:194:164;25604:1079;;25599:3;;;;:::i;:::-;;;25554:1129;;;-1:-1:-1;26891:98:164;26907:23;;;;:63;;26961:9;26907:63;;;26933:25;;;;;;26907:63;26972:16;26891:15;:98::i;:::-;-1:-1:-1;27161:40:164;;;;;;;;;;;;;;;;-1:-1:-1;;;27161:28:164;27253:29;;;:16;:29;;;;;:36;;;;-1:-1:-1;27253:36:164;;;23429:3867::o;1122:588:97:-;1389:4;1383:11;1407:19;;;14565:14;14561:22;;;14548:36;14543:3;14539:46;14519:67;;1407:19;1489:22;;;1482:4;1473:14;;1460:60;1562:6;1555:4;1550:3;1546:14;1542:27;1592:1;1589;1582:12;1664:4;1661:1;1657:12;1651:4;1644:26;;1362:342;1122:588;;;;:::o;8478:187:176:-;8619:17;8616:32;8613:1;8609:40;;8478:187::o;36108:1977:164:-;36860:24;36901:20;:14;;;36920:1;36901:20;:::i;:::-;36860:62;;36932:26;36961:80;36988:15;37013:10;37034:4;36961:18;:80::i;:::-;36932:109;-1:-1:-1;37051:14:164;37074:19;;;37109:9;;:61;;-1:-1:-1;37155:15:164;37169:1;37155:11;:15;:::i;:::-;37122:17;;;;37150:1;;37122:25;;:17;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;37122:25:164;:29;;;;:::i;:::-;:48;;;37109:61;37105:974;;;37648:36;;;4806:1:194;37648:36:164;;:74;;-1:-1:-1;37688:34:164;;;4900:1:194;37688:34:164;37648:74;37642:154;;37750:31;;;;;;;;1021:25:357;;;994:18;;37750:31:164;848:204:357;37642:154:164;37105:974;;;37816:34;;;;37812:267;;38037:31;;;;;;;;1021:25:357;;;994:18;;38037:31:164;848:204:357;37812:267:164;36289:1796;;;36108:1977;;;;:::o;11843:3927:98:-;12373:34;12370:41;-1:-1:-1;12367:1:98;12363:49;12466:9;;;12446:18;12443:33;12440:1;12436:41;12430:48;12524:9;;;12512:10;12509:25;12506:1;12502:33;12496:40;12578:9;;;12570:6;12567:21;12564:1;12560:29;12554:36;12630:9;;;12624:4;12621:19;12618:1;12614:27;12608:34;11891:8;12739:9;;12729:135;;12781:10;12775:4;12768:24;12845:4;12839;12832:18;12729:135;13016:66;12962:34;12951:9;;;12947:50;12941:4;12937:61;12932:151;12925:159;13210:9;;;13205:3;13201:19;;;14173:31;14169:39;;14272:9;;13660:2;14264:18;;;14230:32;14226:57;14348:9;;14340:18;;14305:33;14301:58;14424:9;;14416:18;;14381:33;14377:58;14500:9;;14492:18;;14457:33;14453:58;14575:9;;14567:18;;14533:32;14529:57;14648:9;;14640:18;;14608:30;14604:55;13672:31;13668:59;;13664:67;;13656:76;;13606:32;13602:131;13598:139;;13590:148;;13540:32;13536:203;13532:211;;13524:220;;13430:349;;13809:9;;13801:18;;13797:57;;13884:9;;13876:18;;;13872:57;;13951:9;;;13947:55;;15131:10;15261:43;15257:51;15499:11;;;15426:71;15422:89;15418:97;15595:72;15591:80;15747:3;15743:11;;11843:3927::o;5293:468::-;5354:9;5574:16;5568:23;;5586:3;5559:33;5552:41;5545:49;;5535:173;;5627:10;5621:4;5614:24;5689:4;5683;5676:18;5535:173;-1:-1:-1;5737:3:98;5730:11;;;;5726:19;;5293:468::o;2809:424::-;2870:9;3063:1;3059;3055:6;3051:14;3048:1;3045:21;3042:1;3038:29;3035:145;;;3099:10;3093:4;3086:24;3161:4;3155;3148:18;3035:145;-1:-1:-1;3213:3:98;3202:9;;3198:19;;2809:424::o;8260:3448::-;8309:8;8504:21;8499:1;:26;8495:40;;8260:3448;;;:::o;8495:40::-;8841:21;8838:1;8834:29;8824:164;;8900:10;8894:4;8887:24;8965:4;8959;8952:18;8824:164;9280:7;9274:2;9269:7;;;9268:19;;-1:-1:-1;9551:8:98;9619:2;9575:29;9564:7;;;9563:41;9607:7;9563:51;9562:59;;9647:29;9643:33;;9639:37;;;10328:35;;;10383:5;;9959:2;10382:13;;;10399:32;10381:50;10451:5;;10450:13;;10449:51;;10520:5;;10519:13;;10536:34;10518:52;10590:5;;10589:13;;10588:53;;10661:5;;10660:13;;10677:35;10659:53;9965:32;9898:31;9894:35;;9949:5;;9948:13;;9947:50;;;10022:5;;;:40;;10082:5;10081:13;;;10098:35;10080:53;10151:5;;;10160:40;10151:50;11079:10;11607:49;11594:62;11669:3;:7;;;;11593:84;;;;;;-1:-1:-1;;8260:3448:98:o;7938:186::-;7997:6;8081:36;2458:4;8100:1;8089:8;8095:1;8089:5;:8::i;:::-;:12;;;;:::i;:::-;8088:28;;;;:::i;:::-;8081:6;:36::i;:::-;8074:43;;7938:186;;;;;:::o;2826:363:176:-;2891:21;3066:11;3080:16;3086:9;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;3080:16;3170:1;3066:30;;;;;3161:11;3146:27;;;;2826:363;-1:-1:-1;;2826:363:176:o;38605:677:164:-;38755:27;38854:25;38882:7;:71;;38915:38;:25;;;38941:11;38915:25;:38::i;:::-;38882:71;;;38892:20;:4;:18;;;:20::i;:::-;38854:99;;39121:9;39131:6;39121:17;;;;;;;;:::i;:::-;;;;;;;;;;;39109:29;;39148:128;39155:18;;;;39183:20;;;;39155:18;;:50;39148:128;;39243:21;;39233:9;:32;;:9;;39243:21;;;39233:32;;;;;;:::i;:::-;;;;;;;;;;;39221:44;;39148:128;;;38788:494;38605:677;;;;;:::o;43519:319::-;43590:10;43613:14;43629:20;43651:14;43667:20;43703:44;43735:11;43703:31;:44::i;:::-;43612:135;;;;;;;;43765:66;43786:8;43796:11;43809:8;43819:11;43765:20;:66::i;:::-;43757:74;43519:319;-1:-1:-1;;;;;;43519:319:164:o;39797:3468::-;39901:20;39923:21;39946:20;39968:21;40042:16;40061:6;40042:25;;40077:23;40103:9;40113:8;40103:19;;;;;;;;:::i;:::-;;;;;;;;;40245:14;40103:19;;;;;40245:14;;;;40103:19;;-1:-1:-1;40271:11:164;;40245:22;;:14;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;40245:22:164;:37;;;40241:67;;40291:17;;;;;;;;;;;;;;40241:67;40659:20;40723:5;40738:571;40761:14;;;;40787:11;;40761:22;;:14;;2237:66:176;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;40761:22:164;40746:37;;;;;40745:53;40738:571;;;40836:17;;;;41179:15;:11;40836:17;41179:15;:::i;:::-;41163:12;:31;41159:58;;41212:5;41196:21;;41159:58;41240:9;41250:11;41240:22;;;;;;;;:::i;:::-;;;;;;;;;;;41232:30;;41287:11;41276:22;;40800:509;40738:571;;;41622:22;;;;;41646:14;;;;41622:22;;;;;41646:14;41577:20;41646:14;41688:45;;:26;:20;:11;:18;;4185:1:176;4181:17;;4060:154;41688:20:164;:24;;3001:9:177;2881:145;41688:26:164;:45;;;41671:62;;42228:9;42224:1035;;;42567:1;42540:24;:9;:22;;;:24::i;:::-;:28;;;42536:349;;;42588:26;42617:70;42650:19;42668:1;42650:13;;;:19;:::i;:::-;42672:8;42682:4;42617:18;:70::i;:::-;42739:14;;;;42755:17;;;;;42739:14;;-1:-1:-1;42755:17:164;;;-1:-1:-1;42536:349:164;;-1:-1:-1;42536:349:164;;42840:18;:23;42812:58;;42536:349;42932:11;;;;42945:14;;;;42932:11;;-1:-1:-1;42945:14:164;;;-1:-1:-1;42224:1035:164;;;42991:26;43020:70;43053:19;:13;;;43071:1;43053:19;:::i;43020:70::-;43138:11;;;;;43151:14;;;;;43214;;;;43230:17;;;43138:11;;-1:-1:-1;43151:14:164;;;;;-1:-1:-1;43214:14:164;;-1:-1:-1;43230:17:164;;-1:-1:-1;;42224:1035:164;39995:3270;;;;;;;39797:3468;;;;;:::o;44205:616::-;44400:10;44622:16;;;:23;:192;;44752:60;;;;;;16946:25:357;;;16990:34;17060:15;;;17040:18;;;17033:43;;;;17092:18;;;17085:34;;;17155:15;;;17135:18;;;17128:43;16918:19;;44752:60:164;;;;;;;;;;;;44742:71;;;;;;44622:192;;;44691:9;44702:12;44680:35;;;;;;;;17415:25:357;;;17488:34;17476:47;17471:2;17456:18;;17449:75;17403:2;17388:18;;17182:348;44680:35:164;;;;;;;;;;;;;44670:46;;;;;;44614:200;44205:616;-1:-1:-1;;;;;44205:616:164:o;5396:336:176:-;5478:19;5509:11;5523:16;5529:9;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;5523:16;5509:30;;;;5604:3;5593:9;5589:19;5713:1;5702:9;5698:17;5693:1;5689;5678:9;5674:17;5670:25;5658:9;5647;5643:25;5640:56;5636:80;5621:95;;;5558:168;5396:336;;;;:::o;35528:361:164:-;35721:12;;;;;35788:18;;;35706:12;35788:18;;;;;;;;;;;:26;;35721:12;;;;;;;35788:26;;35721:12;;35788:26;:::i;:::-;;;;-1:-1:-1;;35853:29:164;;;;;:11;9795:55:357;;;35853:29:164;;;9777:74:357;9867:18;;;9860:34;;;35853:4:164;:11;;;;9750:18:357;;35853:29:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7263:794:176;7412:18;7553:20;7532:17;:9;:15;;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;7532:17;:41;;;7528:71;;7582:17;;;;;;;;;;;;;;7528:71;7665:24;7679:9;7665:13;:24::i;:::-;7653:36;;7946:20;7925:17;:9;:15;;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;7925:17;:41;;;7921:130;;7994:46;8015:24;:20;8038:1;8015:24;:::i;:::-;7994:20;;;;;:46::i;6034:710::-;6100:18;6263:14;;6294:1;6279:17;;6259:38;6100:18;6398:10;6259:38;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;6398:10;6384:24;;6607:19;;;;6718:9;;6712:16;;6034:710;-1:-1:-1;;;6034:710:176:o;4635:313::-;4717:20;4749:11;4763:16;4769:9;2237:66;2189:20;1511:18;1508:46;-1:-1:-1;1505:1:176;1501:54;1612:22;;;1600:10;1597:38;1594:1;1590:46;1579:58;1730:22;;;1796:1;1792:17;;;1778:32;1854:1;1850:17;;;1836:32;1912:1;1908:17;;;1894:32;1970:1;1966:17;;;1952:32;2028:2;2024:18;;;2010:33;2174:36;2169:3;2165:46;2135:190;2083:260;;1283:1076;4763:16;4749:30;;;;4844:3;4833:9;4829:19;4929:1;4925;4914:9;4910:17;4906:25;4894:9;4883;4879:25;4876:56;4861:71;;;4798:144;4635:313;;;;:::o;252:184:357:-;304:77;301:1;294:88;401:4;398:1;391:15;425:4;422:1;415:15;441:402;590:2;575:18;;623:1;612:13;;602:201;;659:77;656:1;649:88;760:4;757:1;750:15;788:4;785:1;778:15;602:201;812:25;;;441:402;:::o;1057:248::-;1125:6;1133;1186:2;1174:9;1165:7;1161:23;1157:32;1154:52;;;1202:1;1199;1192:12;1154:52;-1:-1:-1;;1225:23:357;;;1295:2;1280:18;;;1267:32;;-1:-1:-1;1057:248:357:o;2511:531::-;2553:3;2591:5;2585:12;2618:6;2613:3;2606:19;2643:1;2653:162;2667:6;2664:1;2661:13;2653:162;;;2729:4;2785:13;;;2781:22;;2775:29;2757:11;;;2753:20;;2746:59;2682:12;2653:162;;;2833:6;2830:1;2827:13;2824:87;;;2899:1;2892:4;2883:6;2878:3;2874:16;2870:27;2863:38;2824:87;-1:-1:-1;2956:2:357;2944:15;2961:66;2940:88;2931:98;;;;3031:4;2927:109;;2511:531;-1:-1:-1;;2511:531:357:o;3047:220::-;3196:2;3185:9;3178:21;3159:4;3216:45;3257:2;3246:9;3242:18;3234:6;3216:45;:::i;4037:154::-;4123:42;4116:5;4112:54;4105:5;4102:65;4092:93;;4181:1;4178;4171:12;4092:93;4037:154;:::o;4196:247::-;4255:6;4308:2;4296:9;4287:7;4283:23;4279:32;4276:52;;;4324:1;4321;4314:12;4276:52;4363:9;4350:23;4382:31;4407:5;4382:31;:::i;:::-;4432:5;4196:247;-1:-1:-1;;;4196:247:357:o;4448:160::-;4513:20;;4569:13;;4562:21;4552:32;;4542:60;;4598:1;4595;4588:12;4542:60;4448:160;;;:::o;4613:344::-;4715:6;4723;4731;4784:2;4772:9;4763:7;4759:23;4755:32;4752:52;;;4800:1;4797;4790:12;4752:52;4836:9;4823:23;4813:33;;4893:2;4882:9;4878:18;4865:32;4855:42;;4916:35;4947:2;4936:9;4932:18;4916:35;:::i;:::-;4906:45;;4613:344;;;;;:::o;5638:180::-;5697:6;5750:2;5738:9;5729:7;5725:23;5721:32;5718:52;;;5766:1;5763;5756:12;5718:52;-1:-1:-1;5789:23:357;;5638:180;-1:-1:-1;5638:180:357:o;5823:332::-;5913:6;5966:2;5954:9;5945:7;5941:23;5937:32;5934:52;;;5982:1;5979;5972:12;5934:52;6021:9;6008:23;6071:34;6064:5;6060:46;6053:5;6050:57;6040:85;;6121:1;6118;6111:12;7033:347;7084:8;7094:6;7148:3;7141:4;7133:6;7129:17;7125:27;7115:55;;7166:1;7163;7156:12;7115:55;-1:-1:-1;7189:20:357;;7232:18;7221:30;;7218:50;;;7264:1;7261;7254:12;7218:50;7301:4;7293:6;7289:17;7277:29;;7353:3;7346:4;7337:6;7329;7325:19;7321:30;7318:39;7315:59;;;7370:1;7367;7360:12;7315:59;7033:347;;;;;:::o;7385:854::-;7490:6;7498;7506;7514;7522;7530;7583:3;7571:9;7562:7;7558:23;7554:33;7551:53;;;7600:1;7597;7590:12;7551:53;7636:9;7623:23;7613:33;;7665:35;7696:2;7685:9;7681:18;7665:35;:::i;:::-;7655:45;;7751:2;7740:9;7736:18;7723:32;7774:18;7815:2;7807:6;7804:14;7801:34;;;7831:1;7828;7821:12;7801:34;7870:58;7920:7;7911:6;7900:9;7896:22;7870:58;:::i;:::-;7947:8;;-1:-1:-1;7844:84:357;-1:-1:-1;8035:2:357;8020:18;;8007:32;;-1:-1:-1;8051:16:357;;;8048:36;;;8080:1;8077;8070:12;8048:36;;8119:60;8171:7;8160:8;8149:9;8145:24;8119:60;:::i;:::-;7385:854;;;;-1:-1:-1;7385:854:357;;-1:-1:-1;7385:854:357;;8198:8;;7385:854;-1:-1:-1;;;7385:854:357:o;8653:316::-;8730:6;8738;8746;8799:2;8787:9;8778:7;8774:23;8770:32;8767:52;;;8815:1;8812;8805:12;8767:52;-1:-1:-1;;8838:23:357;;;8908:2;8893:18;;8880:32;;-1:-1:-1;8959:2:357;8944:18;;;8931:32;;8653:316;-1:-1:-1;8653:316:357:o;8974:435::-;9247:10;9239:6;9235:23;9224:9;9217:42;9295:6;9290:2;9279:9;9275:18;9268:34;9338:2;9333;9322:9;9318:18;9311:30;9198:4;9358:45;9399:2;9388:9;9384:18;9376:6;9358:45;:::i;9414:184::-;9466:77;9463:1;9456:88;9563:4;9560:1;9553:15;9587:4;9584:1;9577:15;10115:184;10167:77;10164:1;10157:88;10264:4;10261:1;10254:15;10288:4;10285:1;10278:15;10304:128;10344:3;10375:1;10371:6;10368:1;10365:13;10362:39;;;10381:18;;:::i;:::-;-1:-1:-1;10417:9:357;;10304:128::o;10437:229::-;10476:4;10505:18;10573:10;;;;10543;;10595:12;;;10592:38;;;10610:18;;:::i;:::-;10647:13;;10437:229;-1:-1:-1;;;10437:229:357:o;10671:125::-;10711:4;10739:1;10736;10733:8;10730:34;;;10744:18;;:::i;:::-;-1:-1:-1;10781:9:357;;10671:125::o;10801:270::-;10840:7;10872:18;10917:2;10914:1;10910:10;10947:2;10944:1;10940:10;11003:3;10999:2;10995:12;10990:3;10987:21;10980:3;10973:11;10966:19;10962:47;10959:73;;;11012:18;;:::i;:::-;11052:13;;10801:270;-1:-1:-1;;;;10801:270:357:o;11076:272::-;11182:6;11190;11243:2;11231:9;11222:7;11218:23;11214:32;11211:52;;;11259:1;11256;11249:12;11211:52;-1:-1:-1;;11282:16:357;;11338:2;11323:18;;;11317:25;11282:16;;11317:25;;-1:-1:-1;11076:272:357:o;11353:184::-;11405:77;11402:1;11395:88;11502:4;11499:1;11492:15;11526:4;11523:1;11516:15;11542:120;11582:1;11608;11598:35;;11613:18;;:::i;:::-;-1:-1:-1;11647:9:357;;11542:120::o;11667:228::-;11707:7;11833:1;11765:66;11761:74;11758:1;11755:81;11750:1;11743:9;11736:17;11732:105;11729:131;;;11840:18;;:::i;:::-;-1:-1:-1;11880:9:357;;11667:228::o;11900:112::-;11932:1;11958;11948:35;;11963:18;;:::i;:::-;-1:-1:-1;11997:9:357;;11900:112::o;12017:246::-;12057:4;12086:34;12170:10;;;;12140;;12192:12;;;12189:38;;;12207:18;;:::i;12268:253::-;12308:3;12336:34;12397:2;12394:1;12390:10;12427:2;12424:1;12420:10;12458:3;12454:2;12450:12;12445:3;12442:21;12439:47;;;12466:18;;:::i;:::-;12502:13;;12268:253;-1:-1:-1;;;;12268:253:357:o;12526:271::-;12709:6;12701;12696:3;12683:33;12665:3;12735:16;;12760:13;;;12735:16;12526:271;-1:-1:-1;12526:271:357:o;12802:325::-;12890:6;12885:3;12878:19;12942:6;12935:5;12928:4;12923:3;12919:14;12906:43;;12994:1;12987:4;12978:6;12973:3;12969:16;12965:27;12958:38;12860:3;13116:4;13046:66;13041:2;13033:6;13029:15;13025:88;13020:3;13016:98;13012:109;13005:116;;12802:325;;;;:::o;13132:502::-;13373:2;13362:9;13355:21;13336:4;13399:61;13456:2;13445:9;13441:18;13433:6;13425;13399:61;:::i;:::-;13508:9;13500:6;13496:22;13491:2;13480:9;13476:18;13469:50;13536:49;13578:6;13570;13562;13536:49;:::i;:::-;13528:57;;;13621:6;13616:2;13605:9;13601:18;13594:34;13132:502;;;;;;;;:::o;13639:184::-;13709:6;13762:2;13750:9;13741:7;13737:23;13733:32;13730:52;;;13778:1;13775;13768:12;13730:52;-1:-1:-1;13801:16:357;;13639:184;-1:-1:-1;13639:184:357:o;13828:195::-;13866:4;13903;13900:1;13896:12;13935:4;13932:1;13928:12;13960:3;13955;13952:12;13949:38;;;13967:18;;:::i;:::-;14004:13;;;13828:195;-1:-1:-1;;;13828:195:357:o;14028:157::-;14058:1;14092:4;14089:1;14085:12;14116:3;14106:37;;14123:18;;:::i;:::-;14175:3;14168:4;14165:1;14161:12;14157:22;14152:27;;;14028:157;;;;:::o;14190:276::-;14285:6;14338:2;14326:9;14317:7;14313:23;14309:32;14306:52;;;14354:1;14351;14344:12;14306:52;14386:9;14380:16;14405:31;14430:5;14405:31;:::i;15424:195::-;15463:3;15494:66;15487:5;15484:77;15481:103;;15564:18;;:::i;:::-;-1:-1:-1;15611:1:357;15600:13;;15424:195::o;15624:655::-;15663:7;15695:66;15787:1;15784;15780:9;15815:1;15812;15808:9;15860:1;15856:2;15852:10;15849:1;15846:17;15841:2;15837;15833:11;15829:35;15826:61;;;15867:18;;:::i;:::-;15906:66;15998:1;15995;15991:9;16045:1;16041:2;16036:11;16033:1;16029:19;16024:2;16020;16016:11;16012:37;16009:63;;;16052:18;;:::i;:::-;16098:1;16095;16091:9;16081:19;;16145:1;16141:2;16136:11;16133:1;16129:19;16124:2;16120;16116:11;16112:37;16109:63;;;16152:18;;:::i;:::-;16217:1;16213:2;16208:11;16205:1;16201:19;16196:2;16192;16188:11;16184:37;16181:63;;;16224:18;;:::i;:::-;-1:-1:-1;;;16264:9:357;;;;;15624:655;-1:-1:-1;;;15624:655:357:o;16284:308::-;16323:1;16349;16339:35;;16354:18;;:::i;:::-;16471:66;16468:1;16465:73;16396:66;16393:1;16390:73;16386:153;16383:179;;;16542:18;;:::i;:::-;-1:-1:-1;16576:10:357;;16284:308::o", "linkReferences": {}, "immutableReferences": { "97720": [{ "start": 1643, "length": 32 }, { "start": 9176, "length": 32 }], "97723": [{ "start": 2439, "length": 32 }, { "start": 4347, "length": 32 }, { "start": 8062, "length": 32 }, { "start": 8196, "length": 32 }, { "start": 8719, "length": 32 }, { "start": 9018, "length": 32 }], "97726": [{ "start": 2256, "length": 32 }, { "start": 4239, "length": 32 }, { "start": 4440, "length": 32 }, { "start": 4824, "length": 32 }, { "start": 8985, "length": 32 }, { "start": 10781, "length": 32 }, { "start": 12541, "length": 32 }, { "start": 14380, "length": 32 }, { "start": 14682, "length": 32 }, { "start": 14939, "length": 32 }, { "start": 15152, "length": 32 }], "97730": [{ "start": 2205, "length": 32 }, { "start": 4585, "length": 32 }, { "start": 4730, "length": 32 }, { "start": 4975, "length": 32 }, { "start": 7789, "length": 32 }, { "start": 7855, "length": 32 }, { "start": 11501, "length": 32 }], "97734": [{ "start": 1055, "length": 32 }, { "start": 9414, "length": 32 }, { "start": 10267, "length": 32 }], "97738": [{ "start": 1702, "length": 32 }, { "start": 6175, "length": 32 }, { "start": 11247, "length": 32 }], "97742": [{ "start": 1106, "length": 32 }, { "start": 3493, "length": 32 }, { "start": 5895, "length": 32 }, { "start": 7265, "length": 32 }, { "start": 16177, "length": 32 }], "97746": [{ "start": 1291, "length": 32 }, { "start": 3103, "length": 32 }, { "start": 6240, "length": 32 }], "97749": [{ "start": 2122, "length": 32 }, { "start": 11093, "length": 32 }], "97753": [{ "start": 1478, "length": 32 }, { "start": 4687, "length": 32 }, { "start": 4877, "length": 32 }, { "start": 4919, "length": 32 }] } }, "methodIdentifiers": { "absolutePrestate()": "8d450a95", "addLocalData(uint256,uint256,uint256)": "f8f43ff6", "anchorStateRegistry()": "5c0cba33", "attack(uint256,bytes32)": "c55cd0c7", "claimCredit(address)": "60e27464", "claimData(uint256)": "c6f0308c", "claimDataLen()": "8980e0cc", "claims(bytes32)": "eff0f592", "clockExtension()": "6b6716c0", "createdAt()": "cf09e0d0", "credit(address)": "d5d44d80", "defend(uint256,bytes32)": "35fef567", "extraData()": "609d3334", "gameCreator()": "37b1b229", "gameData()": "fa24f743", "gameType()": "bbdc02db", "getChallengerDuration(uint256)": "bd8da956", "getRequiredBond(uint128)": "c395e1ca", "initialize()": "8129fc1c", "l1Head()": "6361506d", "l2BlockNumber()": "8b85902b", "l2ChainId()": "d6ae3cd5", "maxClockDuration()": "dabd396d", "maxGameDepth()": "fa315aa9", "move(uint256,bytes32,bool)": "632247ea", "resolve()": "2810e1d6", "resolveClaim(uint256)": "fdffbb28", "resolvedAt()": "19effeb4", "resolvedSubgames(uint256)": "fe2bbeb2", "rootClaim()": "bcef3b55", "splitDepth()": "ec5e6308", "startingBlockNumber()": "70872aa5", "startingOutputRoot()": "57da950e", "startingRootHash()": "25fc2ace", "status()": "200d2ed2", "step(uint256,bool,bytes,bytes)": "d8cc1a3c", "subgames(uint256,uint256)": "2ad69aeb", "version()": "54fd4d50", "vm()": "3a768463", "weth()": "3fc8cef3" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"GameType\",\"name\":\"_gameType\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"_absolutePrestate\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_maxGameDepth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_splitDepth\",\"type\":\"uint256\"},{\"internalType\":\"Duration\",\"name\":\"_clockExtension\",\"type\":\"uint64\"},{\"internalType\":\"Duration\",\"name\":\"_maxClockDuration\",\"type\":\"uint64\"},{\"internalType\":\"contract IBigStepper\",\"name\":\"_vm\",\"type\":\"address\"},{\"internalType\":\"contract IDelayedWETH\",\"name\":\"_weth\",\"type\":\"address\"},{\"internalType\":\"contract IAnchorStateRegistry\",\"name\":\"_anchorStateRegistry\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_l2ChainId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AnchorRootNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotDefendRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAboveSplit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClockTimeExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateStep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameDepthExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GameNotInProgress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectBondAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClockExtension\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalIdent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPrestate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSplitDepth\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxDepthTooLarge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCreditToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfOrderResolution\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedRootClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidStep\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"parentIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"}],\"name\":\"Move\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum GameStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"Resolved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"absolutePrestate\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"absolutePrestate_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ident\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_execLeafIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_partOffset\",\"type\":\"uint256\"}],\"name\":\"addLocalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"anchorStateRegistry\",\"outputs\":[{\"internalType\":\"contract IAnchorStateRegistry\",\"name\":\"registry_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"claimCredit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claimData\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"parentIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"counteredBy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"bond\",\"type\":\"uint128\"},{\"internalType\":\"Claim\",\"name\":\"claim\",\"type\":\"bytes32\"},{\"internalType\":\"Position\",\"name\":\"position\",\"type\":\"uint128\"},{\"internalType\":\"Clock\",\"name\":\"clock\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimDataLen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"len_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ClaimHash\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clockExtension\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"clockExtension_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createdAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"credit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_parentIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"}],\"name\":\"defend\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameCreator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"creator_\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameData\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"},{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraData_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gameType\",\"outputs\":[{\"internalType\":\"GameType\",\"name\":\"gameType_\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"getChallengerDuration\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"duration_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Position\",\"name\":\"_position\",\"type\":\"uint128\"}],\"name\":\"getRequiredBond\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredBond_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1Head\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"l1Head_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2BlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2ChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2ChainId_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxClockDuration\",\"outputs\":[{\"internalType\":\"Duration\",\"name\":\"maxClockDuration_\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxGameDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxGameDepth_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_challengeIndex\",\"type\":\"uint256\"},{\"internalType\":\"Claim\",\"name\":\"_claim\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"}],\"name\":\"move\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"status_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resolvedAt\",\"outputs\":[{\"internalType\":\"Timestamp\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"resolvedSubgames\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootClaim\",\"outputs\":[{\"internalType\":\"Claim\",\"name\":\"rootClaim_\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"splitDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"splitDepth_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"startingBlockNumber_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingOutputRoot\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"l2BlockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingRootHash\",\"outputs\":[{\"internalType\":\"Hash\",\"name\":\"startingRootHash_\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"status\",\"outputs\":[{\"internalType\":\"enum GameStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_isAttack\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_stateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"step\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"subgames\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vm\",\"outputs\":[{\"internalType\":\"contract IBigStepper\",\"name\":\"vm_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contract IDelayedWETH\",\"name\":\"weth_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"UnexpectedRootClaim(bytes32)\":[{\"params\":{\"rootClaim\":\"is the claim that was unexpected.\"}}]},\"kind\":\"dev\",\"methods\":{\"addLocalData(uint256,uint256,uint256)\":{\"params\":{\"_execLeafIdx\":\"The index of the leaf claim in an execution subgame that requires the local data for a step.\",\"_ident\":\"The local identifier of the data to post.\",\"_partOffset\":\"The offset of the data to post.\"}},\"attack(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative attack position.\",\"_parentIndex\":\"Index of the `Claim` to attack in the `claimData` array.\"}},\"claimCredit(address)\":{\"params\":{\"_recipient\":\"The owner and recipient of the credit.\"}},\"constructor\":{\"params\":{\"_absolutePrestate\":\"The absolute prestate of the instruction trace.\",\"_anchorStateRegistry\":\"The contract that stores the anchor state for each game type.\",\"_clockExtension\":\"The clock extension to perform when the remaining duration is less than the extension.\",\"_gameType\":\"The type ID of the game.\",\"_l2ChainId\":\"Chain ID of the L2 network this contract argues about.\",\"_maxClockDuration\":\"The maximum amount of time that may accumulate on a team's chess clock.\",\"_maxGameDepth\":\"The maximum depth of bisection.\",\"_splitDepth\":\"The final depth of the output bisection portion of the game.\",\"_vm\":\"An onchain VM that performs single instruction steps on an FPP trace.\",\"_weth\":\"WETH contract for holding ETH.\"}},\"defend(uint256,bytes32)\":{\"params\":{\"_claim\":\"The `Claim` at the relative defense position.\",\"_parentIndex\":\"Index of the claim to defend in the `claimData` array.\"}},\"extraData()\":{\"details\":\"`clones-with-immutable-args` argument #4\",\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\"}},\"gameCreator()\":{\"details\":\"`clones-with-immutable-args` argument #1\",\"returns\":{\"creator_\":\"The creator of the dispute game.\"}},\"gameData()\":{\"returns\":{\"extraData_\":\"Any extra data supplied to the dispute game contract by the creator.\",\"gameType_\":\"The type of proof system being used.\",\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"gameType()\":{\"details\":\"The reference impl should be entirely different depending on the type (fault, validity)      i.e. The game type should indicate the security model.\",\"returns\":{\"gameType_\":\"The type of proof system being used.\"}},\"getChallengerDuration(uint256)\":{\"params\":{\"_claimIndex\":\"The index of the subgame root claim.\"},\"returns\":{\"duration_\":\"The time elapsed on the potential challenger to `_claimIndex`'s chess clock.\"}},\"getRequiredBond(uint128)\":{\"params\":{\"_position\":\"The position of the bonded interaction.\"},\"returns\":{\"requiredBond_\":\"The required ETH bond for the given move, in wei.\"}},\"initialize()\":{\"details\":\"This function may only be called once.\"},\"l1Head()\":{\"details\":\"`clones-with-immutable-args` argument #3\",\"returns\":{\"l1Head_\":\"The parent hash of the L1 block when the dispute game was created.\"}},\"move(uint256,bytes32,bool)\":{\"params\":{\"_challengeIndex\":\"The index of the claim being moved against.\",\"_claim\":\"The claim at the next logical position in the game.\",\"_isAttack\":\"Whether or not the move is an attack or defense.\"}},\"resolve()\":{\"details\":\"May only be called if the `status` is `IN_PROGRESS`.\",\"returns\":{\"status_\":\"The status of the game after resolution.\"}},\"resolveClaim(uint256)\":{\"details\":\"This function must be called bottom-up in the DAG      A subgame is a tree of claims that has a maximum depth of 1.      A subgame root claims is valid if, and only if, all of its child claims are invalid.      At the deepest level in the DAG, a claim is invalid if there's a successful step against it.\",\"params\":{\"_claimIndex\":\"The index of the subgame root claim to resolve.\"}},\"rootClaim()\":{\"details\":\"`clones-with-immutable-args` argument #2\",\"returns\":{\"rootClaim_\":\"The root claim of the DisputeGame.\"}},\"step(uint256,bool,bytes,bytes)\":{\"details\":\"This function should point to a fault proof processor in order to execute      a step in the fault proof program on-chain. The interface of the fault proof      processor contract should adhere to the `IBigStepper` interface.\",\"params\":{\"_claimIndex\":\"The index of the challenged claim within `claimData`.\",\"_isAttack\":\"Whether or not the step is an attack or a defense.\",\"_proof\":\"Proof to access memory nodes in the VM's merkle state tree.\",\"_stateData\":\"The stateData of the step is the preimage of the claim at the given        prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if        the move is a defense. If the step is an attack on the first instruction, it is        the absolute prestate of the fault proof VM.\"}}},\"stateVariables\":{\"status\":{\"return\":\"The current status of the game.\",\"returns\":{\"_0\":\"The current status of the game.\"}},\"version\":{\"custom:semver\":\"0.17.0\"}},\"title\":\"FaultDisputeGame\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"notice\":\"Thrown when a dispute game has already been initialized.\"}],\"AnchorRootNotFound()\":[{\"notice\":\"Thrown when an anchor root is not found for a given game type.\"}],\"BondTransferFailed()\":[{\"notice\":\"Thrown when the transfer of credit to a recipient account reverts.\"}],\"CannotDefendRootClaim()\":[{\"notice\":\"Thrown when a defense against the root claim is attempted.\"}],\"ClaimAboveSplit()\":[{\"notice\":\"Thrown when a parent output root is attempted to be found on a claim that is in         the output root portion of the tree.\"}],\"ClaimAlreadyExists()\":[{\"notice\":\"Thrown when a claim is attempting to be made that already exists.\"}],\"ClaimAlreadyResolved()\":[{\"notice\":\"Thrown when resolving a claim that has already been resolved.\"}],\"ClockNotExpired()\":[{\"notice\":\"Thrown when the game is attempted to be resolved too early.\"}],\"ClockTimeExceeded()\":[{\"notice\":\"Thrown when a move is attempted to be made after the clock has timed out.\"}],\"DuplicateStep()\":[{\"notice\":\"Thrown when trying to step against a claim for a second time, after it has already been countered with         an instruction step.\"}],\"GameDepthExceeded()\":[{\"notice\":\"Thrown when a move is attempted to be made at or greater than the max depth of the game.\"}],\"GameNotInProgress()\":[{\"notice\":\"Thrown when an action that requires the game to be `IN_PROGRESS` is invoked when         the game is not in progress.\"}],\"IncorrectBondAmount()\":[{\"notice\":\"Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction.\"}],\"InvalidClockExtension()\":[{\"notice\":\"Thrown on deployment if the max clock duration is less than or equal to the clock extension.\"}],\"InvalidLocalIdent()\":[{\"notice\":\"Thrown when an invalid local identifier is passed to the `addLocalData` function.\"}],\"InvalidParent()\":[{\"notice\":\"Thrown when a step is attempted above the maximum game depth.\"}],\"InvalidPrestate()\":[{\"notice\":\"Thrown when an invalid prestate is supplied to `step`.\"}],\"InvalidSplitDepth()\":[{\"notice\":\"Thrown on deployment if the split depth is greater than or equal to the max         depth of the game.\"}],\"MaxDepthTooLarge()\":[{\"notice\":\"Thrown on deployment if the max depth is greater than `LibPosition.`\"}],\"NoCreditToClaim()\":[{\"notice\":\"Thrown when a credit claim is attempted for a value of 0.\"}],\"OutOfOrderResolution()\":[{\"notice\":\"Thrown when resolving claims out of order.\"}],\"UnexpectedRootClaim(bytes32)\":[{\"notice\":\"Thrown when the root claim has an unexpected VM status.         Some games can only start with a root-claim with a specific status.\"}],\"ValidStep()\":[{\"notice\":\"Thrown when a step is made that computes the expected post state correctly.\"}]},\"events\":{\"Move(uint256,bytes32,address)\":{\"notice\":\"Emitted when a new claim is added to the DAG by `claimant`\"},\"Resolved(uint8)\":{\"notice\":\"Emitted when the game is resolved.\"}},\"kind\":\"user\",\"methods\":{\"absolutePrestate()\":{\"notice\":\"Returns the absolute prestate of the instruction trace.\"},\"addLocalData(uint256,uint256,uint256)\":{\"notice\":\"Posts the requested local data to the VM's `PreimageOralce`.\"},\"anchorStateRegistry()\":{\"notice\":\"Returns the anchor state registry contract.\"},\"attack(uint256,bytes32)\":{\"notice\":\"Attack a disagreed upon `Claim`.\"},\"claimCredit(address)\":{\"notice\":\"Claim the credit belonging to the recipient address.\"},\"claimData(uint256)\":{\"notice\":\"An append-only array of all claims made during the dispute game.\"},\"claimDataLen()\":{\"notice\":\"Returns the length of the `claimData` array.\"},\"claims(bytes32)\":{\"notice\":\"A mapping to allow for constant-time lookups of existing claims.\"},\"clockExtension()\":{\"notice\":\"Returns the clock extension constant.\"},\"createdAt()\":{\"notice\":\"The starting timestamp of the game\"},\"credit(address)\":{\"notice\":\"Credited balances for winning participants.\"},\"defend(uint256,bytes32)\":{\"notice\":\"Defend an agreed upon `Claim`.\"},\"extraData()\":{\"notice\":\"Getter for the extra data.\"},\"gameCreator()\":{\"notice\":\"Getter for the creator of the dispute game.\"},\"gameData()\":{\"notice\":\"A compliant implementation of this interface should return the components of the         game UUID's preimage provided in the cwia payload. The preimage of the UUID is         constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes         concatenation.\"},\"gameType()\":{\"notice\":\"Getter for the game type.\"},\"getChallengerDuration(uint256)\":{\"notice\":\"Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes         out at `MAX_CLOCK_DURATION`.\"},\"getRequiredBond(uint128)\":{\"notice\":\"Returns the required bond for a given move kind.\"},\"initialize()\":{\"notice\":\"Initializes the contract.\"},\"l1Head()\":{\"notice\":\"Getter for the parent hash of the L1 block when the dispute game was created.\"},\"l2BlockNumber()\":{\"notice\":\"The l2BlockNumber of the disputed output root in the `L2OutputOracle`.\"},\"l2ChainId()\":{\"notice\":\"Returns the chain ID of the L2 network this contract argues about.\"},\"maxClockDuration()\":{\"notice\":\"Returns the max clock duration.\"},\"maxGameDepth()\":{\"notice\":\"Returns the max game depth.\"},\"move(uint256,bytes32,bool)\":{\"notice\":\"Generic move function, used for both `attack` and `defend` moves.\"},\"resolve()\":{\"notice\":\"If all necessary information has been gathered, this function should mark the game         status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of         the resolved game. It is at this stage that the bonds should be awarded to the         necessary parties.\"},\"resolveClaim(uint256)\":{\"notice\":\"Resolves the subgame rooted at the given claim index.\"},\"resolvedAt()\":{\"notice\":\"The timestamp of the game's global resolution.\"},\"resolvedSubgames(uint256)\":{\"notice\":\"An interneal mapping of resolved subgames rooted at a claim index.\"},\"rootClaim()\":{\"notice\":\"Getter for the root claim.\"},\"splitDepth()\":{\"notice\":\"Returns the split depth.\"},\"startingBlockNumber()\":{\"notice\":\"Only the starting block number of the game.\"},\"startingOutputRoot()\":{\"notice\":\"The latest finalized output root, serving as the anchor for output bisection.\"},\"startingRootHash()\":{\"notice\":\"Only the starting output root of the game.\"},\"status()\":{\"notice\":\"Returns the current status of the game.\"},\"step(uint256,bool,bytes,bytes)\":{\"notice\":\"Perform an instruction step via an on-chain fault proof processor.\"},\"subgames(uint256,uint256)\":{\"notice\":\"A mapping of subgames rooted at a claim index to other claim indices in the subgame.\"},\"version()\":{\"notice\":\"Semantic version.\"},\"vm()\":{\"notice\":\"Returns the address of the VM.\"},\"weth()\":{\"notice\":\"Returns the WETH contract for holding ETH.\"}},\"notice\":\"An implementation of the `IFaultDisputeGame` interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/dispute/FaultDisputeGame.sol\":\"FaultDisputeGame\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solady/src/utils/Clone.sol\":{\"keccak256\":\"0xb408dc90294bacd394e59c83619e7dc76f45c83ad6f8e923eb07d3a5bab89f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3abeb55ad062c4b29b5b5edab6167de36615c51621ef71ef3ddfd9f6735a93b\",\"dweb:/ipfs/Qmboh4zX6ZgFVhetUhZGJ14kKXiaGeB9bW3Vseg2MLMGHW\"]},\"lib/solady/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260\",\"dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u\"]},\"src/cannon/interfaces/IPreimageOracle.sol\":{\"keccak256\":\"0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af\",\"dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1\"]},\"src/dispute/FaultDisputeGame.sol\":{\"keccak256\":\"0x0d90358576f7b5c14cfe338937ed4fea7d945f9a1b5e68111196310554b485b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d6d4ce62af4902e17af3a70b6c4688be4d148498c841af9c8ead2c076794e6e\",\"dweb:/ipfs/QmS2ebpEDxbhnUwXYnKEChS2zVpFvfdnJr3AbfDSQovBAN\"]},\"src/dispute/interfaces/IAnchorStateRegistry.sol\":{\"keccak256\":\"0x5fd05f2482d149668897e54f92d556a0c3512aa35b51ba800ef15d18dd490cb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://689d621bc5c43a41d5232980f0eceecd7a3d8aa99438dfd9fed5f73d5ecd2887\",\"dweb:/ipfs/QmQ5jw54TkdxLuLFti6JZown54rGQ3m3Q93pvnVU1j1HRj\"]},\"src/dispute/interfaces/IBigStepper.sol\":{\"keccak256\":\"0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884\",\"dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75\"]},\"src/dispute/interfaces/IDelayedWETH.sol\":{\"keccak256\":\"0x0bb035e9bbb411696841ea292eeed6d4463c3c3eee7d6c5d8e38a101e8a4ff04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0477cf2c137392d35081f23bfd7f3565881767dcb1489a62e7e80b3c178cfce8\",\"dweb:/ipfs/QmTjALjrHg5rvhjfCKPmXLTgkMNneECWaqoarunSoVS37G\"]},\"src/dispute/interfaces/IDisputeGame.sol\":{\"keccak256\":\"0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a\",\"dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6\"]},\"src/dispute/interfaces/IDisputeGameFactory.sol\":{\"keccak256\":\"0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd\",\"dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh\"]},\"src/dispute/interfaces/IFaultDisputeGame.sol\":{\"keccak256\":\"0xe2f3acb614ecffd6e0fee98443cf58fa95c1209f4ee43e723781733823da3437\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4cffbd5b53e6459aad472249e629ae5f52c725b6f6828050df019a18ab50278\",\"dweb:/ipfs/QmTC1GgzbwSyqd9fbJz2veqHnbKJfAK5tBr5jUZcC5N271\"]},\"src/dispute/interfaces/IInitializable.sol\":{\"keccak256\":\"0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5\",\"dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj\"]},\"src/dispute/interfaces/IWETH.sol\":{\"keccak256\":\"0x3858f6c0ce3ec7978b1ea1772484c25aec7c8c480ceaf18239f726fdd06fdd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72cf3bc31324409480e9ae6eb3e2654da8dff3cbf9f2136b19fe714293b3766\",\"dweb:/ipfs/QmTW3JiFUo8pYhDbthPH8ZSp5f1nmdga4CSzo4YdEzppnM\"]},\"src/dispute/lib/LibGameId.sol\":{\"keccak256\":\"0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0\",\"dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc\"]},\"src/dispute/lib/LibHashing.sol\":{\"keccak256\":\"0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920\",\"dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq\"]},\"src/dispute/lib/LibPosition.sol\":{\"keccak256\":\"0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48\",\"dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR\"]},\"src/dispute/lib/LibUDT.sol\":{\"keccak256\":\"0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046\",\"dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ\"]},\"src/libraries/DisputeErrors.sol\":{\"keccak256\":\"0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e\",\"dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71\"]},\"src/libraries/DisputeTypes.sol\":{\"keccak256\":\"0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961\",\"dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.15+commit.e14f2714" }, "language": "Solidity", "output": { "abi": [{ "inputs": [{ "internalType": "GameType", "name": "_gameType", "type": "uint32" }, { "internalType": "Claim", "name": "_absolutePrestate", "type": "bytes32" }, { "internalType": "uint256", "name": "_maxGameDepth", "type": "uint256" }, { "internalType": "uint256", "name": "_splitDepth", "type": "uint256" }, { "internalType": "Duration", "name": "_clockExtension", "type": "uint64" }, { "internalType": "Duration", "name": "_maxClockDuration", "type": "uint64" }, { "internalType": "contract IBigStepper", "name": "_vm", "type": "address" }, { "internalType": "contract IDelayedWETH", "name": "_weth", "type": "address" }, { "internalType": "contract IAnchorStateRegistry", "name": "_anchorStateRegistry", "type": "address" }, { "internalType": "uint256", "name": "_l2ChainId", "type": "uint256" }], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "error", "name": "AlreadyInitialized" }, { "inputs": [], "type": "error", "name": "AnchorRootNotFound" }, { "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": "IncorrectBondAmount" }, { "inputs": [], "type": "error", "name": "InvalidClockExtension" }, { "inputs": [], "type": "error", "name": "InvalidLocalIdent" }, { "inputs": [], "type": "error", "name": "InvalidParent" }, { "inputs": [], "type": "error", "name": "InvalidPrestate" }, { "inputs": [], "type": "error", "name": "InvalidSplitDepth" }, { "inputs": [], "type": "error", "name": "MaxDepthTooLarge" }, { "inputs": [], "type": "error", "name": "NoCreditToClaim" }, { "inputs": [], "type": "error", "name": "OutOfOrderResolution" }, { "inputs": [{ "internalType": "Claim", "name": "rootClaim", "type": "bytes32" }], "type": "error", "name": "UnexpectedRootClaim" }, { "inputs": [], "type": "error", "name": "ValidStep" }, { "inputs": [{ "internalType": "uint256", "name": "parentIndex", "type": "uint256", "indexed": true }, { "internalType": "Claim", "name": "claim", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "claimant", "type": "address", "indexed": true }], "type": "event", "name": "Move", "anonymous": false }, { "inputs": [{ "internalType": "enum GameStatus", "name": "status", "type": "uint8", "indexed": true }], "type": "event", "name": "Resolved", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "absolutePrestate", "outputs": [{ "internalType": "Claim", "name": "absolutePrestate_", "type": "bytes32" }] }, { "inputs": [{ "internalType": "uint256", "name": "_ident", "type": "uint256" }, { "internalType": "uint256", "name": "_execLeafIdx", "type": "uint256" }, { "internalType": "uint256", "name": "_partOffset", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "addLocalData" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "anchorStateRegistry", "outputs": [{ "internalType": "contract IAnchorStateRegistry", "name": "registry_", "type": "address" }] }, { "inputs": [{ "internalType": "uint256", "name": "_parentIndex", "type": "uint256" }, { "internalType": "Claim", "name": "_claim", "type": "bytes32" }], "stateMutability": "payable", "type": "function", "name": "attack" }, { "inputs": [{ "internalType": "address", "name": "_recipient", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "claimCredit" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function", "name": "claimData", "outputs": [{ "internalType": "uint32", "name": "parentIndex", "type": "uint32" }, { "internalType": "address", "name": "counteredBy", "type": "address" }, { "internalType": "address", "name": "claimant", "type": "address" }, { "internalType": "uint128", "name": "bond", "type": "uint128" }, { "internalType": "Claim", "name": "claim", "type": "bytes32" }, { "internalType": "Position", "name": "position", "type": "uint128" }, { "internalType": "Clock", "name": "clock", "type": "uint128" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "claimDataLen", "outputs": [{ "internalType": "uint256", "name": "len_", "type": "uint256" }] }, { "inputs": [{ "internalType": "ClaimHash", "name": "", "type": "bytes32" }], "stateMutability": "view", "type": "function", "name": "claims", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "clockExtension", "outputs": [{ "internalType": "Duration", "name": "clockExtension_", "type": "uint64" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "createdAt", "outputs": [{ "internalType": "Timestamp", "name": "", "type": "uint64" }] }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function", "name": "credit", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "_parentIndex", "type": "uint256" }, { "internalType": "Claim", "name": "_claim", "type": "bytes32" }], "stateMutability": "payable", "type": "function", "name": "defend" }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "extraData", "outputs": [{ "internalType": "bytes", "name": "extraData_", "type": "bytes" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "gameCreator", "outputs": [{ "internalType": "address", "name": "creator_", "type": "address" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "gameData", "outputs": [{ "internalType": "GameType", "name": "gameType_", "type": "uint32" }, { "internalType": "Claim", "name": "rootClaim_", "type": "bytes32" }, { "internalType": "bytes", "name": "extraData_", "type": "bytes" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "gameType", "outputs": [{ "internalType": "GameType", "name": "gameType_", "type": "uint32" }] }, { "inputs": [{ "internalType": "uint256", "name": "_claimIndex", "type": "uint256" }], "stateMutability": "view", "type": "function", "name": "getChallengerDuration", "outputs": [{ "internalType": "Duration", "name": "duration_", "type": "uint64" }] }, { "inputs": [{ "internalType": "Position", "name": "_position", "type": "uint128" }], "stateMutability": "view", "type": "function", "name": "getRequiredBond", "outputs": [{ "internalType": "uint256", "name": "requiredBond_", "type": "uint256" }] }, { "inputs": [], "stateMutability": "payable", "type": "function", "name": "initialize" }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "l1Head", "outputs": [{ "internalType": "Hash", "name": "l1Head_", "type": "bytes32" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "l2BlockNumber", "outputs": [{ "internalType": "uint256", "name": "l2BlockNumber_", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "l2ChainId", "outputs": [{ "internalType": "uint256", "name": "l2ChainId_", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "maxClockDuration", "outputs": [{ "internalType": "Duration", "name": "maxClockDuration_", "type": "uint64" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "maxGameDepth", "outputs": [{ "internalType": "uint256", "name": "maxGameDepth_", "type": "uint256" }] }, { "inputs": [{ "internalType": "uint256", "name": "_challengeIndex", "type": "uint256" }, { "internalType": "Claim", "name": "_claim", "type": "bytes32" }, { "internalType": "bool", "name": "_isAttack", "type": "bool" }], "stateMutability": "payable", "type": "function", "name": "move" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "resolve", "outputs": [{ "internalType": "enum GameStatus", "name": "status_", "type": "uint8" }] }, { "inputs": [{ "internalType": "uint256", "name": "_claimIndex", "type": "uint256" }], "stateMutability": "nonpayable", "type": "function", "name": "resolveClaim" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "resolvedAt", "outputs": [{ "internalType": "Timestamp", "name": "", "type": "uint64" }] }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function", "name": "resolvedSubgames", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "rootClaim", "outputs": [{ "internalType": "Claim", "name": "rootClaim_", "type": "bytes32" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "splitDepth", "outputs": [{ "internalType": "uint256", "name": "splitDepth_", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "startingBlockNumber", "outputs": [{ "internalType": "uint256", "name": "startingBlockNumber_", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "startingOutputRoot", "outputs": [{ "internalType": "Hash", "name": "root", "type": "bytes32" }, { "internalType": "uint256", "name": "l2BlockNumber", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "startingRootHash", "outputs": [{ "internalType": "Hash", "name": "startingRootHash_", "type": "bytes32" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "status", "outputs": [{ "internalType": "enum GameStatus", "name": "", "type": "uint8" }] }, { "inputs": [{ "internalType": "uint256", "name": "_claimIndex", "type": "uint256" }, { "internalType": "bool", "name": "_isAttack", "type": "bool" }, { "internalType": "bytes", "name": "_stateData", "type": "bytes" }, { "internalType": "bytes", "name": "_proof", "type": "bytes" }], "stateMutability": "nonpayable", "type": "function", "name": "step" }, { "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function", "name": "subgames", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "version", "outputs": [{ "internalType": "string", "name": "", "type": "string" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "vm", "outputs": [{ "internalType": "contract IBigStepper", "name": "vm_", "type": "address" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "weth", "outputs": [{ "internalType": "contract IDelayedWETH", "name": "weth_", "type": "address" }] }], "devdoc": { "kind": "dev", "methods": { "addLocalData(uint256,uint256,uint256)": { "params": { "_execLeafIdx": "The index of the leaf claim in an execution subgame that requires the local data for a step.", "_ident": "The local identifier of the data to post.", "_partOffset": "The offset of the data to post." } }, "attack(uint256,bytes32)": { "params": { "_claim": "The `Claim` at the relative attack position.", "_parentIndex": "Index of the `Claim` to attack in the `claimData` array." } }, "claimCredit(address)": { "params": { "_recipient": "The owner and recipient of the credit." } }, "constructor": { "params": { "_absolutePrestate": "The absolute prestate of the instruction trace.", "_anchorStateRegistry": "The contract that stores the anchor state for each game type.", "_clockExtension": "The clock extension to perform when the remaining duration is less than the extension.", "_gameType": "The type ID of the game.", "_l2ChainId": "Chain ID of the L2 network this contract argues about.", "_maxClockDuration": "The maximum amount of time that may accumulate on a team's chess clock.", "_maxGameDepth": "The maximum depth of bisection.", "_splitDepth": "The final depth of the output bisection portion of the game.", "_vm": "An onchain VM that performs single instruction steps on an FPP trace.", "_weth": "WETH contract for holding ETH." } }, "defend(uint256,bytes32)": { "params": { "_claim": "The `Claim` at the relative defense position.", "_parentIndex": "Index of the claim to defend in the `claimData` array." } }, "extraData()": { "details": "`clones-with-immutable-args` argument #4", "returns": { "extraData_": "Any extra data supplied to the dispute game contract by the creator." } }, "gameCreator()": { "details": "`clones-with-immutable-args` argument #1", "returns": { "creator_": "The creator of the dispute game." } }, "gameData()": { "returns": { "extraData_": "Any extra data supplied to the dispute game contract by the creator.", "gameType_": "The type of proof system being used.", "rootClaim_": "The root claim of the DisputeGame." } }, "gameType()": { "details": "The reference impl should be entirely different depending on the type (fault, validity)      i.e. The game type should indicate the security model.", "returns": { "gameType_": "The type of proof system being used." } }, "getChallengerDuration(uint256)": { "params": { "_claimIndex": "The index of the subgame root claim." }, "returns": { "duration_": "The time elapsed on the potential challenger to `_claimIndex`'s chess clock." } }, "getRequiredBond(uint128)": { "params": { "_position": "The position of the bonded interaction." }, "returns": { "requiredBond_": "The required ETH bond for the given move, in wei." } }, "initialize()": { "details": "This function may only be called once." }, "l1Head()": { "details": "`clones-with-immutable-args` argument #3", "returns": { "l1Head_": "The parent hash of the L1 block when the dispute game was created." } }, "move(uint256,bytes32,bool)": { "params": { "_challengeIndex": "The index of the claim being moved against.", "_claim": "The claim at the next logical position in the game.", "_isAttack": "Whether or not the move is an attack or defense." } }, "resolve()": { "details": "May only be called if the `status` is `IN_PROGRESS`.", "returns": { "status_": "The status of the game after resolution." } }, "resolveClaim(uint256)": { "details": "This function must be called bottom-up in the DAG      A subgame is a tree of claims that has a maximum depth of 1.      A subgame root claims is valid if, and only if, all of its child claims are invalid.      At the deepest level in the DAG, a claim is invalid if there's a successful step against it.", "params": { "_claimIndex": "The index of the subgame root claim to resolve." } }, "rootClaim()": { "details": "`clones-with-immutable-args` argument #2", "returns": { "rootClaim_": "The root claim of the DisputeGame." } }, "step(uint256,bool,bytes,bytes)": { "details": "This function should point to a fault proof processor in order to execute      a step in the fault proof program on-chain. The interface of the fault proof      processor contract should adhere to the `IBigStepper` interface.", "params": { "_claimIndex": "The index of the challenged claim within `claimData`.", "_isAttack": "Whether or not the step is an attack or a defense.", "_proof": "Proof to access memory nodes in the VM's merkle state tree.", "_stateData": "The stateData of the step is the preimage of the claim at the given        prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if        the move is a defense. If the step is an attack on the first instruction, it is        the absolute prestate of the fault proof VM." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "absolutePrestate()": { "notice": "Returns the absolute prestate of the instruction trace." }, "addLocalData(uint256,uint256,uint256)": { "notice": "Posts the requested local data to the VM's `PreimageOralce`." }, "anchorStateRegistry()": { "notice": "Returns the anchor state registry contract." }, "attack(uint256,bytes32)": { "notice": "Attack a disagreed upon `Claim`." }, "claimCredit(address)": { "notice": "Claim the credit belonging to the recipient address." }, "claimData(uint256)": { "notice": "An append-only array of all claims made during the dispute game." }, "claimDataLen()": { "notice": "Returns the length of the `claimData` array." }, "claims(bytes32)": { "notice": "A mapping to allow for constant-time lookups of existing claims." }, "clockExtension()": { "notice": "Returns the clock extension constant." }, "createdAt()": { "notice": "The starting timestamp of the game" }, "credit(address)": { "notice": "Credited balances for winning participants." }, "defend(uint256,bytes32)": { "notice": "Defend an agreed upon `Claim`." }, "extraData()": { "notice": "Getter for the extra data." }, "gameCreator()": { "notice": "Getter for the creator of the dispute game." }, "gameData()": { "notice": "A compliant implementation of this interface should return the components of the         game UUID's preimage provided in the cwia payload. The preimage of the UUID is         constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes         concatenation." }, "gameType()": { "notice": "Getter for the game type." }, "getChallengerDuration(uint256)": { "notice": "Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes         out at `MAX_CLOCK_DURATION`." }, "getRequiredBond(uint128)": { "notice": "Returns the required bond for a given move kind." }, "initialize()": { "notice": "Initializes the contract." }, "l1Head()": { "notice": "Getter for the parent hash of the L1 block when the dispute game was created." }, "l2BlockNumber()": { "notice": "The l2BlockNumber of the disputed output root in the `L2OutputOracle`." }, "l2ChainId()": { "notice": "Returns the chain ID of the L2 network this contract argues about." }, "maxClockDuration()": { "notice": "Returns the max clock duration." }, "maxGameDepth()": { "notice": "Returns the max game depth." }, "move(uint256,bytes32,bool)": { "notice": "Generic move function, used for both `attack` and `defend` moves." }, "resolve()": { "notice": "If all necessary information has been gathered, this function should mark the game         status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of         the resolved game. It is at this stage that the bonds should be awarded to the         necessary parties." }, "resolveClaim(uint256)": { "notice": "Resolves the subgame rooted at the given claim index." }, "resolvedAt()": { "notice": "The timestamp of the game's global resolution." }, "resolvedSubgames(uint256)": { "notice": "An interneal mapping of resolved subgames rooted at a claim index." }, "rootClaim()": { "notice": "Getter for the root claim." }, "splitDepth()": { "notice": "Returns the split depth." }, "startingBlockNumber()": { "notice": "Only the starting block number of the game." }, "startingOutputRoot()": { "notice": "The latest finalized output root, serving as the anchor for output bisection." }, "startingRootHash()": { "notice": "Only the starting output root of the game." }, "status()": { "notice": "Returns the current status of the game." }, "step(uint256,bool,bytes,bytes)": { "notice": "Perform an instruction step via an on-chain fault proof processor." }, "subgames(uint256,uint256)": { "notice": "A mapping of subgames rooted at a claim index to other claim indices in the subgame." }, "version()": { "notice": "Semantic version." }, "vm()": { "notice": "Returns the address of the VM." }, "weth()": { "notice": "Returns the WETH contract for holding ETH." } }, "version": 1 } }, "settings": { "remappings": ["@lib-keccak/=lib/lib-keccak/contracts/lib/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@rari-capital/solmate/=lib/solmate/", "@solady-test/=lib/lib-keccak/lib/solady/test/", "@solady/=lib/solady/src/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/", "lib-keccak/=lib/lib-keccak/contracts/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "safe-contracts/=lib/safe-contracts/contracts/", "solady/=lib/solady/", "solmate/=lib/solmate/src/"], "optimizer": { "enabled": true, "runs": 999999 }, "metadata": { "bytecodeHash": "none" }, "compilationTarget": { "src/dispute/FaultDisputeGame.sol": "FaultDisputeGame" }, "evmVersion": "london", "libraries": {} }, "sources": { "lib/solady/src/utils/Clone.sol": { "keccak256": "0xb408dc90294bacd394e59c83619e7dc76f45c83ad6f8e923eb07d3a5bab89f22", "urls": ["bzz-raw://c3abeb55ad062c4b29b5b5edab6167de36615c51621ef71ef3ddfd9f6735a93b", "dweb:/ipfs/Qmboh4zX6ZgFVhetUhZGJ14kKXiaGeB9bW3Vseg2MLMGHW"], "license": "MIT" }, "lib/solady/src/utils/FixedPointMathLib.sol": { "keccak256": "0x1fbad6f61bd3e5875e6b0060b67626cb1ccb9542c0da368a44eb3870c9a9e160", "urls": ["bzz-raw://5189fcd5ecff0f449475cf3183e9d6b509cd1221555aba6cd76c70b097cc8260", "dweb:/ipfs/Qmbt34Kf5h2DeYzmqXtg3jprYxDCFdENtf41NgCdcARA7u"], "license": "MIT" }, "src/cannon/interfaces/IPreimageOracle.sol": { "keccak256": "0x7bda0156571b468cf0e22321945655f2dacd7082f440f742aa4612b36b388a9f", "urls": ["bzz-raw://5ba53777c65987bc20faa7731476c779e7794a58bafb40191a25275a05e3f8af", "dweb:/ipfs/QmbxQwE2BC9aabTruDqkd2CLojwq7G9i2rkWKv46Wucae1"], "license": "MIT" }, "src/dispute/FaultDisputeGame.sol": { "keccak256": "0x0d90358576f7b5c14cfe338937ed4fea7d945f9a1b5e68111196310554b485b3", "urls": ["bzz-raw://5d6d4ce62af4902e17af3a70b6c4688be4d148498c841af9c8ead2c076794e6e", "dweb:/ipfs/QmS2ebpEDxbhnUwXYnKEChS2zVpFvfdnJr3AbfDSQovBAN"], "license": "MIT" }, "src/dispute/interfaces/IAnchorStateRegistry.sol": { "keccak256": "0x5fd05f2482d149668897e54f92d556a0c3512aa35b51ba800ef15d18dd490cb3", "urls": ["bzz-raw://689d621bc5c43a41d5232980f0eceecd7a3d8aa99438dfd9fed5f73d5ecd2887", "dweb:/ipfs/QmQ5jw54TkdxLuLFti6JZown54rGQ3m3Q93pvnVU1j1HRj"], "license": "MIT" }, "src/dispute/interfaces/IBigStepper.sol": { "keccak256": "0xc92ee3069677b903826c83d5b4e46e3be462f9ccf1d95e72a12b1052e3451f0a", "urls": ["bzz-raw://f93692bd3c8d9533ab8024ce2df6d880328826d1a92fdb9cf45301e2d0c65884", "dweb:/ipfs/QmUcmbjTw9gnCUNasgmQjVbSgcCPKZ1FQyA31dH4k5Nc75"], "license": "MIT" }, "src/dispute/interfaces/IDelayedWETH.sol": { "keccak256": "0x0bb035e9bbb411696841ea292eeed6d4463c3c3eee7d6c5d8e38a101e8a4ff04", "urls": ["bzz-raw://0477cf2c137392d35081f23bfd7f3565881767dcb1489a62e7e80b3c178cfce8", "dweb:/ipfs/QmTjALjrHg5rvhjfCKPmXLTgkMNneECWaqoarunSoVS37G"], "license": "MIT" }, "src/dispute/interfaces/IDisputeGame.sol": { "keccak256": "0xe2611453d5cc05f8aa30dc0e5e15ee5ae29fd3eb55a2c034424250baebf12f9b", "urls": ["bzz-raw://274e00fbcea3b8455bbaa042130bf1f7a5b2b769f28ad57afbf9fabfd74a757a", "dweb:/ipfs/QmRKQTfYdMjQYVbuZhdXts1d752eUq8RwrjqqwV5XRYLi6"], "license": "MIT" }, "src/dispute/interfaces/IDisputeGameFactory.sol": { "keccak256": "0x204d89d38d4dc0db40fbf898d95e639ac5608810a5a5506a3d80d71177648bda", "urls": ["bzz-raw://71e5c0ff04f409f30ca4f8ebfae1592c6ca495e315b059f969d11812e6e84dbd", "dweb:/ipfs/QmaNKkhkJv7qHzX6bKB3LjpWBupfMPLhoATUGx1HRTLtXh"], "license": "MIT" }, "src/dispute/interfaces/IFaultDisputeGame.sol": { "keccak256": "0xe2f3acb614ecffd6e0fee98443cf58fa95c1209f4ee43e723781733823da3437", "urls": ["bzz-raw://e4cffbd5b53e6459aad472249e629ae5f52c725b6f6828050df019a18ab50278", "dweb:/ipfs/QmTC1GgzbwSyqd9fbJz2veqHnbKJfAK5tBr5jUZcC5N271"], "license": "MIT" }, "src/dispute/interfaces/IInitializable.sol": { "keccak256": "0xbc553af6501a972850a98fc6284943f8e95a5183a7b4f64198c16fca2338c9dc", "urls": ["bzz-raw://b1f1c422ce4a9e72f0bbdec36434206da4af3a32d38f922acab957942e994ce5", "dweb:/ipfs/QmNQGWBceLxx1CKSMLfwTM584q8UCgUpF4rrFe8pdbWYtj"], "license": "MIT" }, "src/dispute/interfaces/IWETH.sol": { "keccak256": "0x3858f6c0ce3ec7978b1ea1772484c25aec7c8c480ceaf18239f726fdd06fdd1f", "urls": ["bzz-raw://b72cf3bc31324409480e9ae6eb3e2654da8dff3cbf9f2136b19fe714293b3766", "dweb:/ipfs/QmTW3JiFUo8pYhDbthPH8ZSp5f1nmdga4CSzo4YdEzppnM"], "license": "MIT" }, "src/dispute/lib/LibGameId.sol": { "keccak256": "0x9a9f30500da6eb7eeaa7193515dc5e45dc479f09ae7d522a07283c0fb5f4bfa6", "urls": ["bzz-raw://be113d8198d5822385de3d6ff3d7b3e8241993484aa95604ffaf38c2d33f40e0", "dweb:/ipfs/QmY9mHC52fqc4gAFYCGobNyuP4TqugQgs8o1kTF33t17Hc"], "license": "MIT" }, "src/dispute/lib/LibHashing.sol": { "keccak256": "0x5a072cd028094eee55acb84ed8d08d7422b1fb46658b7e043e916781530a383b", "urls": ["bzz-raw://b67e54f1318f1fd67b28b16c6861a56e27217c26a12aaea5c446e2ec53143920", "dweb:/ipfs/QmVLSTP3PwXzRkR3A4qV9fjZhca9v8J1EnEYuVGUsSirAq"], "license": "MIT" }, "src/dispute/lib/LibPosition.sol": { "keccak256": "0xf7ceb26f0ac7067ff8a43f263451050eef6fba2029eafb83d3cbe35224d894a6", "urls": ["bzz-raw://3bb403b0d707a8e2e3780a19185b918bfe907ca2d1b939ea74ae095a5cdf3b48", "dweb:/ipfs/QmYFzkmF8TRomp1cBEbTsKxiEnqLnX6SvSh4y3rVa84pBR"], "license": "MIT" }, "src/dispute/lib/LibUDT.sol": { "keccak256": "0x9b61b15f5edfac1e6528aec79c1be6ac712d5f6a62140db87ed749e41a46563f", "urls": ["bzz-raw://24ef4ecee91638e278886888192b7d2b1811ab99f4e90a06817a4b2651720046", "dweb:/ipfs/QmdisoBv1mE9jDv6jvpcbvKhdmJZMMjQmATrEYfBQQrXtZ"], "license": "MIT" }, "src/libraries/DisputeErrors.sol": { "keccak256": "0x869bec0d79d97f2d0a00b1e70bf1e6955a2be585521e0084602e54455c0a6937", "urls": ["bzz-raw://a235c6349437cd2ade72909287404e2993c1c4bd356707299239c71fa3bf780e", "dweb:/ipfs/QmcFSh6PWJ5sNg1CeoRyF9EnV8APWDz1kYP98v6ooGxc71"], "license": "MIT" }, "src/libraries/DisputeTypes.sol": { "keccak256": "0xae3d053cf40b3e47669b89438524fec4eb571a78be296cc7e7ba23025b3bdf0c", "urls": ["bzz-raw://4a2b90604718ad29d19a8f21d45a5f8c6188320781fdb7102b3fccadae549961", "dweb:/ipfs/QmUBTXgRFG7PvoCBJsXmgi2sZPZFPQQZTptQ91LL7tC2xQ"], "license": "MIT" }, "src/libraries/Types.sol": { "keccak256": "0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4", "urls": ["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e", "dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"], "license": "MIT" }, "src/universal/ISemver.sol": { "keccak256": "0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44", "urls": ["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a", "dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"], "license": "MIT" } }, "version": 1 }, "storageLayout": { "storage": [{ "astId": 97769, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "createdAt", "offset": 0, "slot": "0", "type": "t_userDefinedValueType(Timestamp)103261" }, { "astId": 97773, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "resolvedAt", "offset": 8, "slot": "0", "type": "t_userDefinedValueType(Timestamp)103261" }, { "astId": 97777, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "status", "offset": 16, "slot": "0", "type": "t_enum(GameStatus)103277" }, { "astId": 97780, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "initialized", "offset": 17, "slot": "0", "type": "t_bool" }, { "astId": 97785, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "claimData", "offset": 0, "slot": "1", "type": "t_array(t_struct(ClaimData)100523_storage)dyn_storage" }, { "astId": 97790, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "credit", "offset": 0, "slot": "2", "type": "t_mapping(t_address,t_uint256)" }, { "astId": 97796, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "claims", "offset": 0, "slot": "3", "type": "t_mapping(t_userDefinedValueType(ClaimHash)103257,t_bool)" }, { "astId": 97802, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "subgames", "offset": 0, "slot": "4", "type": "t_mapping(t_uint256,t_array(t_uint256)dyn_storage)" }, { "astId": 97807, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "resolvedSubgames", "offset": 0, "slot": "5", "type": "t_mapping(t_uint256,t_bool)" }, { "astId": 97811, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "startingOutputRoot", "offset": 0, "slot": "6", "type": "t_struct(OutputRoot)103283_storage" }], "types": { "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, "t_array(t_struct(ClaimData)100523_storage)dyn_storage": { "encoding": "dynamic_array", "label": "struct IFaultDisputeGame.ClaimData[]", "numberOfBytes": "32", "base": "t_struct(ClaimData)100523_storage" }, "t_array(t_uint256)dyn_storage": { "encoding": "dynamic_array", "label": "uint256[]", "numberOfBytes": "32", "base": "t_uint256" }, "t_bool": { "encoding": "inplace", "label": "bool", "numberOfBytes": "1" }, "t_enum(GameStatus)103277": { "encoding": "inplace", "label": "enum GameStatus", "numberOfBytes": "1" }, "t_mapping(t_address,t_uint256)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => uint256)", "numberOfBytes": "32", "value": "t_uint256" }, "t_mapping(t_uint256,t_array(t_uint256)dyn_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => uint256[])", "numberOfBytes": "32", "value": "t_array(t_uint256)dyn_storage" }, "t_mapping(t_uint256,t_bool)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => bool)", "numberOfBytes": "32", "value": "t_bool" }, "t_mapping(t_userDefinedValueType(ClaimHash)103257,t_bool)": { "encoding": "mapping", "key": "t_userDefinedValueType(ClaimHash)103257", "label": "mapping(ClaimHash => bool)", "numberOfBytes": "32", "value": "t_bool" }, "t_struct(ClaimData)100523_storage": { "encoding": "inplace", "label": "struct IFaultDisputeGame.ClaimData", "numberOfBytes": "160", "members": [{ "astId": 100507, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "parentIndex", "offset": 0, "slot": "0", "type": "t_uint32" }, { "astId": 100509, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "counteredBy", "offset": 4, "slot": "0", "type": "t_address" }, { "astId": 100511, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "claimant", "offset": 0, "slot": "1", "type": "t_address" }, { "astId": 100513, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "bond", "offset": 0, "slot": "2", "type": "t_uint128" }, { "astId": 100516, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "claim", "offset": 0, "slot": "3", "type": "t_userDefinedValueType(Claim)103255" }, { "astId": 100519, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "position", "offset": 0, "slot": "4", "type": "t_userDefinedValueType(Position)103269" }, { "astId": 100522, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "clock", "offset": 16, "slot": "4", "type": "t_userDefinedValueType(Clock)103267" }] }, "t_struct(OutputRoot)103283_storage": { "encoding": "inplace", "label": "struct OutputRoot", "numberOfBytes": "64", "members": [{ "astId": 103280, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "root", "offset": 0, "slot": "0", "type": "t_userDefinedValueType(Hash)103253" }, { "astId": 103282, "contract": "src/dispute/FaultDisputeGame.sol:FaultDisputeGame", "label": "l2BlockNumber", "offset": 0, "slot": "1", "type": "t_uint256" }] }, "t_uint128": { "encoding": "inplace", "label": "uint128", "numberOfBytes": "16" }, "t_uint256": { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32" }, "t_uint32": { "encoding": "inplace", "label": "uint32", "numberOfBytes": "4" }, "t_userDefinedValueType(Claim)103255": { "encoding": "inplace", "label": "Claim", "numberOfBytes": "32" }, "t_userDefinedValueType(ClaimHash)103257": { "encoding": "inplace", "label": "ClaimHash", "numberOfBytes": "32" }, "t_userDefinedValueType(Clock)103267": { "encoding": "inplace", "label": "Clock", "numberOfBytes": "16" }, "t_userDefinedValueType(Hash)103253": { "encoding": "inplace", "label": "Hash", "numberOfBytes": "32" }, "t_userDefinedValueType(Position)103269": { "encoding": "inplace", "label": "Position", "numberOfBytes": "16" }, "t_userDefinedValueType(Timestamp)103261": { "encoding": "inplace", "label": "Timestamp", "numberOfBytes": "8" } } }, "userdoc": { "version": 1, "kind": "user", "methods": { "absolutePrestate()": { "notice": "Returns the absolute prestate of the instruction trace." }, "addLocalData(uint256,uint256,uint256)": { "notice": "Posts the requested local data to the VM's `PreimageOralce`." }, "anchorStateRegistry()": { "notice": "Returns the anchor state registry contract." }, "attack(uint256,bytes32)": { "notice": "Attack a disagreed upon `Claim`." }, "claimCredit(address)": { "notice": "Claim the credit belonging to the recipient address." }, "claimData(uint256)": { "notice": "An append-only array of all claims made during the dispute game." }, "claimDataLen()": { "notice": "Returns the length of the `claimData` array." }, "claims(bytes32)": { "notice": "A mapping to allow for constant-time lookups of existing claims." }, "clockExtension()": { "notice": "Returns the clock extension constant." }, "createdAt()": { "notice": "The starting timestamp of the game" }, "credit(address)": { "notice": "Credited balances for winning participants." }, "defend(uint256,bytes32)": { "notice": "Defend an agreed upon `Claim`." }, "extraData()": { "notice": "Getter for the extra data." }, "gameCreator()": { "notice": "Getter for the creator of the dispute game." }, "gameData()": { "notice": "A compliant implementation of this interface should return the components of the         game UUID's preimage provided in the cwia payload. The preimage of the UUID is         constructed as `keccak256(gameType . rootClaim . extraData)` where `.` denotes         concatenation." }, "gameType()": { "notice": "Getter for the game type." }, "getChallengerDuration(uint256)": { "notice": "Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes         out at `MAX_CLOCK_DURATION`." }, "getRequiredBond(uint128)": { "notice": "Returns the required bond for a given move kind." }, "initialize()": { "notice": "Initializes the contract." }, "l1Head()": { "notice": "Getter for the parent hash of the L1 block when the dispute game was created." }, "l2BlockNumber()": { "notice": "The l2BlockNumber of the disputed output root in the `L2OutputOracle`." }, "l2ChainId()": { "notice": "Returns the chain ID of the L2 network this contract argues about." }, "maxClockDuration()": { "notice": "Returns the max clock duration." }, "maxGameDepth()": { "notice": "Returns the max game depth." }, "move(uint256,bytes32,bool)": { "notice": "Generic move function, used for both `attack` and `defend` moves." }, "resolve()": { "notice": "If all necessary information has been gathered, this function should mark the game         status as either `CHALLENGER_WINS` or `DEFENDER_WINS` and return the status of         the resolved game. It is at this stage that the bonds should be awarded to the         necessary parties." }, "resolveClaim(uint256)": { "notice": "Resolves the subgame rooted at the given claim index." }, "resolvedAt()": { "notice": "The timestamp of the game's global resolution." }, "resolvedSubgames(uint256)": { "notice": "An interneal mapping of resolved subgames rooted at a claim index." }, "rootClaim()": { "notice": "Getter for the root claim." }, "splitDepth()": { "notice": "Returns the split depth." }, "startingBlockNumber()": { "notice": "Only the starting block number of the game." }, "startingOutputRoot()": { "notice": "The latest finalized output root, serving as the anchor for output bisection." }, "startingRootHash()": { "notice": "Only the starting output root of the game." }, "status()": { "notice": "Returns the current status of the game." }, "step(uint256,bool,bytes,bytes)": { "notice": "Perform an instruction step via an on-chain fault proof processor." }, "subgames(uint256,uint256)": { "notice": "A mapping of subgames rooted at a claim index to other claim indices in the subgame." }, "version()": { "notice": "Semantic version." }, "vm()": { "notice": "Returns the address of the VM." }, "weth()": { "notice": "Returns the WETH contract for holding ETH." } }, "events": { "Move(uint256,bytes32,address)": { "notice": "Emitted when a new claim is added to the DAG by `claimant`" }, "Resolved(uint8)": { "notice": "Emitted when the game is resolved." } }, "errors": { "AlreadyInitialized()": [{ "notice": "Thrown when a dispute game has already been initialized." }], "AnchorRootNotFound()": [{ "notice": "Thrown when an anchor root is not found for a given game type." }], "BondTransferFailed()": [{ "notice": "Thrown when the transfer of credit to a recipient account reverts." }], "CannotDefendRootClaim()": [{ "notice": "Thrown when a defense against the root claim is attempted." }], "ClaimAboveSplit()": [{ "notice": "Thrown when a parent output root is attempted to be found on a claim that is in         the output root portion of the tree." }], "ClaimAlreadyExists()": [{ "notice": "Thrown when a claim is attempting to be made that already exists." }], "ClaimAlreadyResolved()": [{ "notice": "Thrown when resolving a claim that has already been resolved." }], "ClockNotExpired()": [{ "notice": "Thrown when the game is attempted to be resolved too early." }], "ClockTimeExceeded()": [{ "notice": "Thrown when a move is attempted to be made after the clock has timed out." }], "DuplicateStep()": [{ "notice": "Thrown when trying to step against a claim for a second time, after it has already been countered with         an instruction step." }], "GameDepthExceeded()": [{ "notice": "Thrown when a move is attempted to be made at or greater than the max depth of the game." }], "GameNotInProgress()": [{ "notice": "Thrown when an action that requires the game to be `IN_PROGRESS` is invoked when         the game is not in progress." }], "IncorrectBondAmount()": [{ "notice": "Thrown when a supplied bond is not equal to the required bond amount to cover the cost of the interaction." }], "InvalidClockExtension()": [{ "notice": "Thrown on deployment if the max clock duration is less than or equal to the clock extension." }], "InvalidLocalIdent()": [{ "notice": "Thrown when an invalid local identifier is passed to the `addLocalData` function." }], "InvalidParent()": [{ "notice": "Thrown when a step is attempted above the maximum game depth." }], "InvalidPrestate()": [{ "notice": "Thrown when an invalid prestate is supplied to `step`." }], "InvalidSplitDepth()": [{ "notice": "Thrown on deployment if the split depth is greater than or equal to the max         depth of the game." }], "MaxDepthTooLarge()": [{ "notice": "Thrown on deployment if the max depth is greater than `LibPosition.`" }], "NoCreditToClaim()": [{ "notice": "Thrown when a credit claim is attempted for a value of 0." }], "OutOfOrderResolution()": [{ "notice": "Thrown when resolving claims out of order." }], "UnexpectedRootClaim(bytes32)": [{ "notice": "Thrown when the root claim has an unexpected VM status.         Some games can only start with a root-claim with a specific status." }], "ValidStep()": [{ "notice": "Thrown when a step is made that computes the expected post state correctly." }] }, "notice": "An implementation of the `IFaultDisputeGame` interface." }, "devdoc": { "version": 1, "kind": "dev", "methods": { "addLocalData(uint256,uint256,uint256)": { "params": { "_execLeafIdx": "The index of the leaf claim in an execution subgame that requires the local data for a step.", "_ident": "The local identifier of the data to post.", "_partOffset": "The offset of the data to post." } }, "attack(uint256,bytes32)": { "params": { "_claim": "The `Claim` at the relative attack position.", "_parentIndex": "Index of the `Claim` to attack in the `claimData` array." } }, "claimCredit(address)": { "params": { "_recipient": "The owner and recipient of the credit." } }, "constructor": { "params": { "_absolutePrestate": "The absolute prestate of the instruction trace.", "_anchorStateRegistry": "The contract that stores the anchor state for each game type.", "_clockExtension": "The clock extension to perform when the remaining duration is less than the extension.", "_gameType": "The type ID of the game.", "_l2ChainId": "Chain ID of the L2 network this contract argues about.", "_maxClockDuration": "The maximum amount of time that may accumulate on a team's chess clock.", "_maxGameDepth": "The maximum depth of bisection.", "_splitDepth": "The final depth of the output bisection portion of the game.", "_vm": "An onchain VM that performs single instruction steps on an FPP trace.", "_weth": "WETH contract for holding ETH." } }, "defend(uint256,bytes32)": { "params": { "_claim": "The `Claim` at the relative defense position.", "_parentIndex": "Index of the claim to defend in the `claimData` array." } }, "extraData()": { "details": "`clones-with-immutable-args` argument #4", "returns": { "extraData_": "Any extra data supplied to the dispute game contract by the creator." } }, "gameCreator()": { "details": "`clones-with-immutable-args` argument #1", "returns": { "creator_": "The creator of the dispute game." } }, "gameData()": { "returns": { "extraData_": "Any extra data supplied to the dispute game contract by the creator.", "gameType_": "The type of proof system being used.", "rootClaim_": "The root claim of the DisputeGame." } }, "gameType()": { "details": "The reference impl should be entirely different depending on the type (fault, validity)      i.e. The game type should indicate the security model.", "returns": { "gameType_": "The type of proof system being used." } }, "getChallengerDuration(uint256)": { "params": { "_claimIndex": "The index of the subgame root claim." }, "returns": { "duration_": "The time elapsed on the potential challenger to `_claimIndex`'s chess clock." } }, "getRequiredBond(uint128)": { "params": { "_position": "The position of the bonded interaction." }, "returns": { "requiredBond_": "The required ETH bond for the given move, in wei." } }, "initialize()": { "details": "This function may only be called once." }, "l1Head()": { "details": "`clones-with-immutable-args` argument #3", "returns": { "l1Head_": "The parent hash of the L1 block when the dispute game was created." } }, "move(uint256,bytes32,bool)": { "params": { "_challengeIndex": "The index of the claim being moved against.", "_claim": "The claim at the next logical position in the game.", "_isAttack": "Whether or not the move is an attack or defense." } }, "resolve()": { "details": "May only be called if the `status` is `IN_PROGRESS`.", "returns": { "status_": "The status of the game after resolution." } }, "resolveClaim(uint256)": { "details": "This function must be called bottom-up in the DAG      A subgame is a tree of claims that has a maximum depth of 1.      A subgame root claims is valid if, and only if, all of its child claims are invalid.      At the deepest level in the DAG, a claim is invalid if there's a successful step against it.", "params": { "_claimIndex": "The index of the subgame root claim to resolve." } }, "rootClaim()": { "details": "`clones-with-immutable-args` argument #2", "returns": { "rootClaim_": "The root claim of the DisputeGame." } }, "step(uint256,bool,bytes,bytes)": { "details": "This function should point to a fault proof processor in order to execute      a step in the fault proof program on-chain. The interface of the fault proof      processor contract should adhere to the `IBigStepper` interface.", "params": { "_claimIndex": "The index of the challenged claim within `claimData`.", "_isAttack": "Whether or not the step is an attack or a defense.", "_proof": "Proof to access memory nodes in the VM's merkle state tree.", "_stateData": "The stateData of the step is the preimage of the claim at the given        prestate, which is at `_stateIndex` if the move is an attack and `_claimIndex` if        the move is a defense. If the step is an attack on the first instruction, it is        the absolute prestate of the fault proof VM." } } }, "errors": { "UnexpectedRootClaim(bytes32)": [{ "params": { "rootClaim": "is the claim that was unexpected." } }] }, "title": "FaultDisputeGame" }, "ast": { "absolutePath": "src/dispute/FaultDisputeGame.sol", "id": 99928, "exportedSymbols": { "AlreadyInitialized": [103120], "AnchorRootNotFound": [103192], "BadAuth": [103195], "BadExtraData": [103132], "BondAmount": [103259], "BondTransferFailed": [103129], "CannotDefendRootClaim": [103135], "Claim": [103255], "ClaimAboveSplit": [103177], "ClaimAlreadyExists": [103138], "ClaimAlreadyResolved": [103174], "ClaimHash": [103257], "Clock": [103267], "ClockNotExpired": [103150], "ClockTimeExceeded": [103147], "Clone": [60963], "DuplicateStep": [103189], "Duration": [103263], "FaultDisputeGame": [99927], "FixedPointMathLib": [62288], "GameAlreadyExists": [103111], "GameDepthExceeded": [103153], "GameId": [103265], "GameNotInProgress": [103144], "GameStatus": [103277], "GameType": [103271], "GameTypes": [103317], "Hash": [103253], "IAnchorStateRegistry": [100146], "IBigStepper": [100171], "IDelayedWETH": [100239], "IDisputeGame": [100327], "IFaultDisputeGame": [100608], "IInitializable": [100616], "IPreimageOracle": [96782], "ISemver": [109417], "IncorrectBondAmount": [103123], "InvalidClaim": [103141], "InvalidClockExtension": [103183], "InvalidLocalIdent": [103168], "InvalidParent": [103156], "InvalidPrestate": [103159], "InvalidSplitDepth": [103180], "L1HeadTooOld": [103165], "LibClaim": [101086], "LibClock": [101073], "LibDuration": [101099], "LibGameId": [100778], "LibGameType": [101151], "LibHash": [101112], "LibHashing": [100800], "LibPosition": [101018], "LibTimestamp": [101125], "LibVMStatus": [101138], "LocalPreimageKey": [103373], "MaxDepthTooLarge": [103186], "NoCreditToClaim": [103126], "NoImplementation": [103105], "OutOfOrderResolution": [103171], "OutputRoot": [103283], "Position": [103269], "Timestamp": [103261], "Types": [104349], "UnexpectedRootClaim": [103117], "VMStatus": [103273], "VMStatuses": [103351], "ValidStep": [103162] }, "nodeType": "SourceUnit", "src": "32:44792:164", "nodes": [{ "id": 97684, "nodeType": "PragmaDirective", "src": "32:23:164", "nodes": [], "literals": ["solidity", "0.8", ".15"] }, { "id": 97686, "nodeType": "ImportDirective", "src": "57:72:164", "nodes": [], "absolutePath": "lib/solady/src/utils/FixedPointMathLib.sol", "file": "@solady/utils/FixedPointMathLib.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 62289, "symbolAliases": [{ "foreign": { "id": 97685, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "66:17:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97688, "nodeType": "ImportDirective", "src": "131:71:164", "nodes": [], "absolutePath": "src/dispute/interfaces/IDelayedWETH.sol", "file": "src/dispute/interfaces/IDelayedWETH.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 100240, "symbolAliases": [{ "foreign": { "id": 97687, "name": "IDelayedWETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100239, "src": "140:12:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97690, "nodeType": "ImportDirective", "src": "203:71:164", "nodes": [], "absolutePath": "src/dispute/interfaces/IDisputeGame.sol", "file": "src/dispute/interfaces/IDisputeGame.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 100328, "symbolAliases": [{ "foreign": { "id": 97689, "name": "IDisputeGame", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100327, "src": "212:12:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97692, "nodeType": "ImportDirective", "src": "275:81:164", "nodes": [], "absolutePath": "src/dispute/interfaces/IFaultDisputeGame.sol", "file": "src/dispute/interfaces/IFaultDisputeGame.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 100609, "symbolAliases": [{ "foreign": { "id": 97691, "name": "IFaultDisputeGame", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100608, "src": "284:17:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97694, "nodeType": "ImportDirective", "src": "357:75:164", "nodes": [], "absolutePath": "src/dispute/interfaces/IInitializable.sol", "file": "src/dispute/interfaces/IInitializable.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 100617, "symbolAliases": [{ "foreign": { "id": 97693, "name": "IInitializable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100616, "src": "366:14:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97697, "nodeType": "ImportDirective", "src": "433:86:164", "nodes": [], "absolutePath": "src/dispute/interfaces/IBigStepper.sol", "file": "src/dispute/interfaces/IBigStepper.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 100172, "symbolAliases": [{ "foreign": { "id": 97695, "name": "IBigStepper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100171, "src": "442:11:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 97696, "name": "IPreimageOracle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 96782, "src": "455:15:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97699, "nodeType": "ImportDirective", "src": "520:87:164", "nodes": [], "absolutePath": "src/dispute/interfaces/IAnchorStateRegistry.sol", "file": "src/dispute/interfaces/IAnchorStateRegistry.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 100147, "symbolAliases": [{ "foreign": { "id": 97698, "name": "IAnchorStateRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100146, "src": "529:20:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97701, "nodeType": "ImportDirective", "src": "609:48:164", "nodes": [], "absolutePath": "lib/solady/src/utils/Clone.sol", "file": "@solady/utils/Clone.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 60964, "symbolAliases": [{ "foreign": { "id": 97700, "name": "Clone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60963, "src": "618:5:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97703, "nodeType": "ImportDirective", "src": "658:48:164", "nodes": [], "absolutePath": "src/libraries/Types.sol", "file": "src/libraries/Types.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 104350, "symbolAliases": [{ "foreign": { "id": 97702, "name": "Types", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104349, "src": "667:5:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97705, "nodeType": "ImportDirective", "src": "707:52:164", "nodes": [], "absolutePath": "src/universal/ISemver.sol", "file": "src/universal/ISemver.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 109418, "symbolAliases": [{ "foreign": { "id": 97704, "name": "ISemver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 109417, "src": "716:7:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97707, "nodeType": "ImportDirective", "src": "760:54:164", "nodes": [], "absolutePath": "src/dispute/lib/LibUDT.sol", "file": "src/dispute/lib/LibUDT.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 101152, "symbolAliases": [{ "foreign": { "id": 97706, "name": "LibClock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101073, "src": "769:8:164", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 97708, "nodeType": "ImportDirective", "src": "816:40:164", "nodes": [], "absolutePath": "src/libraries/DisputeTypes.sol", "file": "src/libraries/DisputeTypes.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 103374, "symbolAliases": [], "unitAlias": "" }, { "id": 97709, "nodeType": "ImportDirective", "src": "857:41:164", "nodes": [], "absolutePath": "src/libraries/DisputeErrors.sol", "file": "src/libraries/DisputeErrors.sol", "nameLocation": "-1:-1:-1", "scope": 99928, "sourceUnit": 103196, "symbolAliases": [], "unitAlias": "" }, { "id": 99927, "nodeType": "ContractDefinition", "src": "996:43827:164", "nodes": [{ "id": 97720, "nodeType": "VariableDeclaration", "src": "1444:42:164", "nodes": [], "constant": false, "documentation": { "id": 97717, "nodeType": "StructuredDocumentation", "src": "1273:166:164", "text": "@notice The absolute prestate of the instruction trace. This is a constant that is defined\n         by the program that is being used to execute the trace." }, "mutability": "immutable", "name": "ABSOLUTE_PRESTATE", "nameLocation": "1469:17:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 97719, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97718, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "1444:5:164" }, "referencedDeclaration": 103255, "src": "1444:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "id": 97723, "nodeType": "VariableDeclaration", "src": "1536:41:164", "nodes": [], "constant": false, "documentation": { "id": 97721, "nodeType": "StructuredDocumentation", "src": "1493:38:164", "text": "@notice The max depth of the game." }, "mutability": "immutable", "name": "MAX_GAME_DEPTH", "nameLocation": "1563:14:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 97722, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1536:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 97726, "nodeType": "VariableDeclaration", "src": "1750:38:164", "nodes": [], "constant": false, "documentation": { "id": 97724, "nodeType": "StructuredDocumentation", "src": "1584:161:164", "text": "@notice The max depth of the output bisection portion of the position tree. Immediately beneath\n         this depth, execution trace bisection begins." }, "mutability": "immutable", "name": "SPLIT_DEPTH", "nameLocation": "1777:11:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 97725, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1750:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 97730, "nodeType": "VariableDeclaration", "src": "1911:46:164", "nodes": [], "constant": false, "documentation": { "id": 97727, "nodeType": "StructuredDocumentation", "src": "1795:111:164", "text": "@notice The maximum duration that may accumulate on a team's chess clock before they may no longer respond." }, "mutability": "immutable", "name": "MAX_CLOCK_DURATION", "nameLocation": "1939:18:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 97729, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97728, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "1911:8:164" }, "referencedDeclaration": 103263, "src": "1911:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }, { "id": 97734, "nodeType": "VariableDeclaration", "src": "2065:33:164", "nodes": [], "constant": false, "documentation": { "id": 97731, "nodeType": "StructuredDocumentation", "src": "1964:96:164", "text": "@notice An onchain VM that performs single instruction steps on a fault proof program trace." }, "mutability": "immutable", "name": "VM", "nameLocation": "2096:2:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" }, "typeName": { "id": 97733, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97732, "name": "IBigStepper", "nodeType": "IdentifierPath", "referencedDeclaration": 100171, "src": "2065:11:164" }, "referencedDeclaration": 100171, "src": "2065:11:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "visibility": "internal" }, { "id": 97738, "nodeType": "VariableDeclaration", "src": "2139:37:164", "nodes": [], "constant": false, "documentation": { "id": 97735, "nodeType": "StructuredDocumentation", "src": "2105:29:164", "text": "@notice The game type ID." }, "mutability": "immutable", "name": "GAME_TYPE", "nameLocation": "2167:9:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" }, "typeName": { "id": 97737, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97736, "name": "GameType", "nodeType": "IdentifierPath", "referencedDeclaration": 103271, "src": "2139:8:164" }, "referencedDeclaration": 103271, "src": "2139:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "visibility": "internal" }, { "id": 97742, "nodeType": "VariableDeclaration", "src": "2230:36:164", "nodes": [], "constant": false, "documentation": { "id": 97739, "nodeType": "StructuredDocumentation", "src": "2183:42:164", "text": "@notice WETH contract for holding ETH." }, "mutability": "immutable", "name": "WETH", "nameLocation": "2262:4:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" }, "typeName": { "id": 97741, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97740, "name": "IDelayedWETH", "nodeType": "IdentifierPath", "referencedDeclaration": 100239, "src": "2230:12:164" }, "referencedDeclaration": 100239, "src": "2230:12:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "visibility": "internal" }, { "id": 97746, "nodeType": "VariableDeclaration", "src": "2316:61:164", "nodes": [], "constant": false, "documentation": { "id": 97743, "nodeType": "StructuredDocumentation", "src": "2273:38:164", "text": "@notice The anchor state registry." }, "mutability": "immutable", "name": "ANCHOR_STATE_REGISTRY", "nameLocation": "2356:21:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" }, "typeName": { "id": 97745, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97744, "name": "IAnchorStateRegistry", "nodeType": "IdentifierPath", "referencedDeclaration": 100146, "src": "2316:20:164" }, "referencedDeclaration": 100146, "src": "2316:20:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "visibility": "internal" }, { "id": 97749, "nodeType": "VariableDeclaration", "src": "2459:38:164", "nodes": [], "constant": false, "documentation": { "id": 97747, "nodeType": "StructuredDocumentation", "src": "2384:70:164", "text": "@notice The chain ID of the L2 network this contract argues about." }, "mutability": "immutable", "name": "L2_CHAIN_ID", "nameLocation": "2486:11:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 97748, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2459:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 97753, "nodeType": "VariableDeclaration", "src": "2666:43:164", "nodes": [], "constant": false, "documentation": { "id": 97750, "nodeType": "StructuredDocumentation", "src": "2504:157:164", "text": "@notice The duration of the clock extension. Will be doubled if the grandchild is the root claim of an execution\n         trace bisection subgame." }, "mutability": "immutable", "name": "CLOCK_EXTENSION", "nameLocation": "2694:15:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 97752, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97751, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "2666:8:164" }, "referencedDeclaration": 103263, "src": "2666:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }, { "id": 97761, "nodeType": "VariableDeclaration", "src": "2788:59:164", "nodes": [], "constant": true, "documentation": { "id": 97754, "nodeType": "StructuredDocumentation", "src": "2716:67:164", "text": "@notice The global root claim's position is always at gindex 1." }, "mutability": "constant", "name": "ROOT_POSITION", "nameLocation": "2815:13:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 97756, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97755, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "2788:8:164" }, "referencedDeclaration": 103269, "src": "2788:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "value": { "arguments": [{ "hexValue": "31", "id": 97759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2845:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }], "expression": { "id": 97757, "name": "Position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103269, "src": "2831:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Position_$103269_$", "typeString": "type(Position)" } }, "id": 97758, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "2831:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint128) pure returns (Position)" } }, "id": 97760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2831:16:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "id": 97765, "nodeType": "VariableDeclaration", "src": "2918:41:164", "nodes": [], "baseFunctions": [109416], "constant": true, "documentation": { "id": 97762, "nodeType": "StructuredDocumentation", "src": "2854:59:164", "text": "@notice Semantic version.\n @custom:semver 0.17.0" }, "functionSelector": "54fd4d50", "mutability": "constant", "name": "version", "nameLocation": "2941:7:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 97763, "name": "string", "nodeType": "ElementaryTypeName", "src": "2918:6:164", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "hexValue": "302e31372e30", "id": 97764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2951:8:164", "typeDescriptions": { "typeIdentifier": "t_stringliteral_512d9a572f9735444291a88a6ab37093045e89287be8ab073814769d70f29bc8", "typeString": "literal_string \"0.17.0\"" }, "value": "0.17.0" }, "visibility": "public" }, { "id": 97769, "nodeType": "VariableDeclaration", "src": "3017:26:164", "nodes": [], "baseFunctions": [100260], "constant": false, "documentation": { "id": 97766, "nodeType": "StructuredDocumentation", "src": "2966:46:164", "text": "@notice The starting timestamp of the game" }, "functionSelector": "cf09e0d0", "mutability": "mutable", "name": "createdAt", "nameLocation": "3034:9:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" }, "typeName": { "id": 97768, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97767, "name": "Timestamp", "nodeType": "IdentifierPath", "referencedDeclaration": 103261, "src": "3017:9:164" }, "referencedDeclaration": 103261, "src": "3017:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "visibility": "public" }, { "id": 97773, "nodeType": "VariableDeclaration", "src": "3113:27:164", "nodes": [], "baseFunctions": [100267], "constant": false, "documentation": { "id": 97770, "nodeType": "StructuredDocumentation", "src": "3050:58:164", "text": "@notice The timestamp of the game's global resolution." }, "functionSelector": "19effeb4", "mutability": "mutable", "name": "resolvedAt", "nameLocation": "3130:10:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" }, "typeName": { "id": 97772, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97771, "name": "Timestamp", "nodeType": "IdentifierPath", "referencedDeclaration": 103261, "src": "3113:9:164" }, "referencedDeclaration": 103261, "src": "3113:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "visibility": "public" }, { "id": 97777, "nodeType": "VariableDeclaration", "src": "3180:24:164", "nodes": [], "baseFunctions": [100274], "constant": false, "documentation": { "id": 97774, "nodeType": "StructuredDocumentation", "src": "3147:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "200d2ed2", "mutability": "mutable", "name": "status", "nameLocation": "3198:6:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "typeName": { "id": 97776, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97775, "name": "GameStatus", "nodeType": "IdentifierPath", "referencedDeclaration": 103277, "src": "3180:10:164" }, "referencedDeclaration": 103277, "src": "3180:10:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "visibility": "public" }, { "id": 97780, "nodeType": "VariableDeclaration", "src": "3292:25:164", "nodes": [], "constant": false, "documentation": { "id": 97778, "nodeType": "StructuredDocumentation", "src": "3211:76:164", "text": "@notice Flag for the `initialize` function to prevent re-initialization." }, "mutability": "mutable", "name": "initialized", "nameLocation": "3306:11:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 97779, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3292:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "id": 97785, "nodeType": "VariableDeclaration", "src": "3405:28:164", "nodes": [], "constant": false, "documentation": { "id": 97781, "nodeType": "StructuredDocumentation", "src": "3324:76:164", "text": "@notice An append-only array of all claims made during the dispute game." }, "functionSelector": "c6f0308c", "mutability": "mutable", "name": "claimData", "nameLocation": "3424:9:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData[]" }, "typeName": { "baseType": { "id": 97783, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97782, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "3405:9:164" }, "referencedDeclaration": 100523, "src": "3405:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "id": 97784, "nodeType": "ArrayTypeName", "src": "3405:11:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData[]" } }, "visibility": "public" }, { "id": 97790, "nodeType": "VariableDeclaration", "src": "3500:41:164", "nodes": [], "constant": false, "documentation": { "id": 97786, "nodeType": "StructuredDocumentation", "src": "3440:55:164", "text": "@notice Credited balances for winning participants." }, "functionSelector": "d5d44d80", "mutability": "mutable", "name": "credit", "nameLocation": "3535:6:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 97789, "keyType": { "id": 97787, "name": "address", "nodeType": "ElementaryTypeName", "src": "3508:7:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3500:27:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 97788, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3519:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "visibility": "public" }, { "id": 97796, "nodeType": "VariableDeclaration", "src": "3629:40:164", "nodes": [], "constant": false, "documentation": { "id": 97791, "nodeType": "StructuredDocumentation", "src": "3548:76:164", "text": "@notice A mapping to allow for constant-time lookups of existing claims." }, "functionSelector": "eff0f592", "mutability": "mutable", "name": "claims", "nameLocation": "3663:6:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$", "typeString": "mapping(ClaimHash => bool)" }, "typeName": { "id": 97795, "keyType": { "id": 97793, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97792, "name": "ClaimHash", "nodeType": "IdentifierPath", "referencedDeclaration": 103257, "src": "3637:9:164" }, "referencedDeclaration": 103257, "src": "3637:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_ClaimHash_$103257", "typeString": "ClaimHash" } }, "nodeType": "Mapping", "src": "3629:26:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$", "typeString": "mapping(ClaimHash => bool)" }, "valueType": { "id": 97794, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3650:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "visibility": "public" }, { "id": 97802, "nodeType": "VariableDeclaration", "src": "3777:45:164", "nodes": [], "constant": false, "documentation": { "id": 97797, "nodeType": "StructuredDocumentation", "src": "3676:96:164", "text": "@notice A mapping of subgames rooted at a claim index to other claim indices in the subgame." }, "functionSelector": "2ad69aeb", "mutability": "mutable", "name": "subgames", "nameLocation": "3814:8:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(uint256 => uint256[])" }, "typeName": { "id": 97801, "keyType": { "id": 97798, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3785:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "3777:29:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(uint256 => uint256[])" }, "valueType": { "baseType": { "id": 97799, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3796:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 97800, "nodeType": "ArrayTypeName", "src": "3796:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, "visibility": "public" }, { "id": 97807, "nodeType": "VariableDeclaration", "src": "3912:48:164", "nodes": [], "constant": false, "documentation": { "id": 97803, "nodeType": "StructuredDocumentation", "src": "3829:78:164", "text": "@notice An interneal mapping of resolved subgames rooted at a claim index." }, "functionSelector": "fe2bbeb2", "mutability": "mutable", "name": "resolvedSubgames", "nameLocation": "3944:16:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" }, "typeName": { "id": 97806, "keyType": { "id": 97804, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3920:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "3912:24:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" }, "valueType": { "id": 97805, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3931:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "visibility": "public" }, { "id": 97811, "nodeType": "VariableDeclaration", "src": "4061:36:164", "nodes": [], "baseFunctions": [100594], "constant": false, "documentation": { "id": 97808, "nodeType": "StructuredDocumentation", "src": "3967:89:164", "text": "@notice The latest finalized output root, serving as the anchor for output bisection." }, "functionSelector": "57da950e", "mutability": "mutable", "name": "startingOutputRoot", "nameLocation": "4079:18:164", "scope": 99927, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage", "typeString": "struct OutputRoot" }, "typeName": { "id": 97810, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97809, "name": "OutputRoot", "nodeType": "IdentifierPath", "referencedDeclaration": 103283, "src": "4061:10:164" }, "referencedDeclaration": 103283, "src": "4061:10:164", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage_ptr", "typeString": "struct OutputRoot" } }, "visibility": "public" }, { "id": 97911, "nodeType": "FunctionDefinition", "src": "4927:1230:164", "nodes": [], "body": { "id": 97910, "nodeType": "Block", "src": "5268:889:164", "nodes": [], "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 97847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 97842, "name": "_maxGameDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97820, "src": "5375:13:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 97846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 97843, "name": "LibPosition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101018, "src": "5391:11:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LibPosition_$101018_$", "typeString": "type(library LibPosition)" } }, "id": 97844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX_POSITION_BITLEN", "nodeType": "MemberAccess", "referencedDeclaration": 100809, "src": "5391:31:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 97845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5425:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5391:35:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "5375:51:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 97851, "nodeType": "IfStatement", "src": "5371:82:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 97848, "name": "MaxDepthTooLarge", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103186, "src": "5435:16:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 97849, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5435:18:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 97850, "nodeType": "RevertStatement", "src": "5428:25:164" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 97854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 97852, "name": "_splitDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97822, "src": "5549:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "id": 97853, "name": "_maxGameDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97820, "src": "5564:13:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5549:28:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 97858, "nodeType": "IfStatement", "src": "5545:60:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 97855, "name": "InvalidSplitDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103180, "src": "5586:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 97856, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5586:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 97857, "nodeType": "RevertStatement", "src": "5579:26:164" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 97865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 97859, "name": "_clockExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97825, "src": "5698:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 97860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "5698:19:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 97861, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5698:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 97862, "name": "_maxClockDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97828, "src": "5722:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 97863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "5722:21:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 97864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5722:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "5698:47:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 97869, "nodeType": "IfStatement", "src": "5694:83:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 97866, "name": "InvalidClockExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103183, "src": "5754:21:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 97867, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5754:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 97868, "nodeType": "RevertStatement", "src": "5747:30:164" } }, { "expression": { "id": 97872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97870, "name": "GAME_TYPE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97738, "src": "5788:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97871, "name": "_gameType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97815, "src": "5800:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "src": "5788:21:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "id": 97873, "nodeType": "ExpressionStatement", "src": "5788:21:164" }, { "expression": { "id": 97876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97874, "name": "ABSOLUTE_PRESTATE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97720, "src": "5819:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97875, "name": "_absolutePrestate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97818, "src": "5839:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "src": "5819:37:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 97877, "nodeType": "ExpressionStatement", "src": "5819:37:164" }, { "expression": { "id": 97880, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97878, "name": "MAX_GAME_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97723, "src": "5866:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97879, "name": "_maxGameDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97820, "src": "5883:13:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5866:30:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 97881, "nodeType": "ExpressionStatement", "src": "5866:30:164" }, { "expression": { "id": 97884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97882, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "5906:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97883, "name": "_splitDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97822, "src": "5920:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5906:25:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 97885, "nodeType": "ExpressionStatement", "src": "5906:25:164" }, { "expression": { "id": 97888, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97886, "name": "CLOCK_EXTENSION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97753, "src": "5941:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97887, "name": "_clockExtension", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97825, "src": "5959:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "src": "5941:33:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 97889, "nodeType": "ExpressionStatement", "src": "5941:33:164" }, { "expression": { "id": 97892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97890, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "5984:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97891, "name": "_maxClockDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97828, "src": "6005:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "src": "5984:38:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 97893, "nodeType": "ExpressionStatement", "src": "5984:38:164" }, { "expression": { "id": 97896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97894, "name": "VM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97734, "src": "6032:2:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97895, "name": "_vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97831, "src": "6037:3:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "src": "6032:8:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "id": 97897, "nodeType": "ExpressionStatement", "src": "6032:8:164" }, { "expression": { "id": 97900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97898, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97742, "src": "6050:4:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97899, "name": "_weth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97834, "src": "6057:5:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "src": "6050:12:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "id": 97901, "nodeType": "ExpressionStatement", "src": "6050:12:164" }, { "expression": { "id": 97904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97902, "name": "ANCHOR_STATE_REGISTRY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97746, "src": "6072:21:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97903, "name": "_anchorStateRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97837, "src": "6096:20:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "src": "6072:44:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "id": 97905, "nodeType": "ExpressionStatement", "src": "6072:44:164" }, { "expression": { "id": 97908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97906, "name": "L2_CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97749, "src": "6126:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 97907, "name": "_l2ChainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97839, "src": "6140:10:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6126:24:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 97909, "nodeType": "ExpressionStatement", "src": "6126:24:164" }] }, "documentation": { "id": 97812, "nodeType": "StructuredDocumentation", "src": "4104:818:164", "text": "@param _gameType The type ID of the game.\n @param _absolutePrestate The absolute prestate of the instruction trace.\n @param _maxGameDepth The maximum depth of bisection.\n @param _splitDepth The final depth of the output bisection portion of the game.\n @param _clockExtension The clock extension to perform when the remaining duration is less than the extension.\n @param _maxClockDuration The maximum amount of time that may accumulate on a team's chess clock.\n @param _vm An onchain VM that performs single instruction steps on an FPP trace.\n @param _weth WETH contract for holding ETH.\n @param _anchorStateRegistry The contract that stores the anchor state for each game type.\n @param _l2ChainId Chain ID of the L2 network this contract argues about." }, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "parameters": { "id": 97840, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 97815, "mutability": "mutable", "name": "_gameType", "nameLocation": "4957:9:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "4948:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" }, "typeName": { "id": 97814, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97813, "name": "GameType", "nodeType": "IdentifierPath", "referencedDeclaration": 103271, "src": "4948:8:164" }, "referencedDeclaration": 103271, "src": "4948:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "visibility": "internal" }, { "constant": false, "id": 97818, "mutability": "mutable", "name": "_absolutePrestate", "nameLocation": "4982:17:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "4976:23:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 97817, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97816, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "4976:5:164" }, "referencedDeclaration": 103255, "src": "4976:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 97820, "mutability": "mutable", "name": "_maxGameDepth", "nameLocation": "5017:13:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5009:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 97819, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5009:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 97822, "mutability": "mutable", "name": "_splitDepth", "nameLocation": "5048:11:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5040:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 97821, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5040:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 97825, "mutability": "mutable", "name": "_clockExtension", "nameLocation": "5078:15:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5069:24:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 97824, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97823, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "5069:8:164" }, "referencedDeclaration": 103263, "src": "5069:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }, { "constant": false, "id": 97828, "mutability": "mutable", "name": "_maxClockDuration", "nameLocation": "5112:17:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5103:26:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 97827, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97826, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "5103:8:164" }, "referencedDeclaration": 103263, "src": "5103:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }, { "constant": false, "id": 97831, "mutability": "mutable", "name": "_vm", "nameLocation": "5151:3:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5139:15:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" }, "typeName": { "id": 97830, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97829, "name": "IBigStepper", "nodeType": "IdentifierPath", "referencedDeclaration": 100171, "src": "5139:11:164" }, "referencedDeclaration": 100171, "src": "5139:11:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "visibility": "internal" }, { "constant": false, "id": 97834, "mutability": "mutable", "name": "_weth", "nameLocation": "5177:5:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5164:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" }, "typeName": { "id": 97833, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97832, "name": "IDelayedWETH", "nodeType": "IdentifierPath", "referencedDeclaration": 100239, "src": "5164:12:164" }, "referencedDeclaration": 100239, "src": "5164:12:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "visibility": "internal" }, { "constant": false, "id": 97837, "mutability": "mutable", "name": "_anchorStateRegistry", "nameLocation": "5213:20:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5192:41:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" }, "typeName": { "id": 97836, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97835, "name": "IAnchorStateRegistry", "nodeType": "IdentifierPath", "referencedDeclaration": 100146, "src": "5192:20:164" }, "referencedDeclaration": 100146, "src": "5192:20:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "visibility": "internal" }, { "constant": false, "id": 97839, "mutability": "mutable", "name": "_l2ChainId", "nameLocation": "5251:10:164", "nodeType": "VariableDeclaration", "scope": 97911, "src": "5243:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 97838, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5243:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "4938:329:164" }, "returnParameters": { "id": 97841, "nodeType": "ParameterList", "parameters": [], "src": "5268:0:164" }, "scope": 99927, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 98025, "nodeType": "FunctionDefinition", "src": "6198:2903:164", "nodes": [], "body": { "id": 98024, "nodeType": "Block", "src": "6243:2858:164", "nodes": [], "statements": [{ "condition": { "id": 97915, "name": "initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97780, "src": "6888:11:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 97919, "nodeType": "IfStatement", "src": "6884:44:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 97916, "name": "AlreadyInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103120, "src": "6908:18:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 97917, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6908:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 97918, "nodeType": "RevertStatement", "src": "6901:27:164" } }, { "assignments": [97922, 97924], "declarations": [{ "constant": false, "id": 97922, "mutability": "mutable", "name": "root", "nameLocation": "6985:4:164", "nodeType": "VariableDeclaration", "scope": 98024, "src": "6980:9:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }, "typeName": { "id": 97921, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 97920, "name": "Hash", "nodeType": "IdentifierPath", "referencedDeclaration": 103253, "src": "6980:4:164" }, "referencedDeclaration": 103253, "src": "6980:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "visibility": "internal" }, { "constant": false, "id": 97924, "mutability": "mutable", "name": "rootBlockNumber", "nameLocation": "6999:15:164", "nodeType": "VariableDeclaration", "scope": 98024, "src": "6991:23:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 97923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6991:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 97929, "initialValue": { "arguments": [{ "id": 97927, "name": "GAME_TYPE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97738, "src": "7048:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" }], "expression": { "id": 97925, "name": "ANCHOR_STATE_REGISTRY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97746, "src": "7018:21:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "id": 97926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "anchors", "nodeType": "MemberAccess", "referencedDeclaration": 100134, "src": "7018:29:164", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_userDefinedValueType$_GameType_$103271_$returns$_t_userDefinedValueType$_Hash_$103253_$_t_uint256_$", "typeString": "function (GameType) view external returns (Hash,uint256)" } }, "id": 97928, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7018:40:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Hash_$103253_$_t_uint256_$", "typeString": "tuple(Hash,uint256)" } }, "nodeType": "VariableDeclarationStatement", "src": "6979:79:164" }, { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 97937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 97930, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97922, "src": "7159:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 97931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "7159:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 97932, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7159:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [{ "hexValue": "30", "id": 97935, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7181:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 97934, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7173:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { "id": 97933, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7173:7:164", "typeDescriptions": {} } }, "id": 97936, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7173:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "7159:24:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 97941, "nodeType": "IfStatement", "src": "7155:57:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 97938, "name": "AnchorRootNotFound", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103192, "src": "7192:18:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 97939, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7192:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 97940, "nodeType": "RevertStatement", "src": "7185:27:164" } }, { "expression": { "id": 97947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 97942, "name": "startingOutputRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97811, "src": "7264:18:164", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage", "typeString": "struct OutputRoot storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "id": 97944, "name": "rootBlockNumber", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97924, "src": "7313:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 97945, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97922, "src": "7336:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }], "id": 97943, "name": "OutputRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103283, "src": "7285:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_OutputRoot_$103283_storage_ptr_$", "typeString": "type(struct OutputRoot storage pointer)" } }, "id": 97946, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": ["l2BlockNumber", "root"], "nodeType": "FunctionCall", "src": "7285:58:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_memory_ptr", "typeString": "struct OutputRoot memory" } }, "src": "7264:79:164", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage", "typeString": "struct OutputRoot storage ref" } }, "id": 97948, "nodeType": "ExpressionStatement", "src": "7264:79:164" }, { "AST": { "nodeType": "YulBlock", "src": "7933:219:164", "statements": [{ "body": { "nodeType": "YulBlock", "src": "7983:159:164", "statements": [{ "expression": { "arguments": [{ "kind": "number", "nodeType": "YulLiteral", "src": "8076:4:164", "type": "", "value": "0x00" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8082:10:164", "type": "", "value": "0x9824bdab" }], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "8069:6:164" }, "nodeType": "YulFunctionCall", "src": "8069:24:164" }, "nodeType": "YulExpressionStatement", "src": "8069:24:164" }, { "expression": { "arguments": [{ "kind": "number", "nodeType": "YulLiteral", "src": "8117:4:164", "type": "", "value": "0x1C" }, { "kind": "number", "nodeType": "YulLiteral", "src": "8123:4:164", "type": "", "value": "0x04" }], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "8110:6:164" }, "nodeType": "YulFunctionCall", "src": "8110:18:164" }, "nodeType": "YulExpressionStatement", "src": "8110:18:164" }] }, "condition": { "arguments": [{ "arguments": [{ "arguments": [], "functionName": { "name": "calldatasize", "nodeType": "YulIdentifier", "src": "7960:12:164" }, "nodeType": "YulFunctionCall", "src": "7960:14:164" }, { "kind": "number", "nodeType": "YulLiteral", "src": "7976:4:164", "type": "", "value": "0x7A" }], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "7957:2:164" }, "nodeType": "YulFunctionCall", "src": "7957:24:164" }], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "7950:6:164" }, "nodeType": "YulFunctionCall", "src": "7950:32:164" }, "nodeType": "YulIf", "src": "7947:195:164" }] }, "evmVersion": "london", "externalReferences": [], "id": 97949, "nodeType": "InlineAssembly", "src": "7924:228:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 97953, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 97950, "name": "l2BlockNumber", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98690, "src": "8320:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, "id": 97951, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8320:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 97952, "name": "rootBlockNumber", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97924, "src": "8339:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "8320:34:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 97959, "nodeType": "IfStatement", "src": "8316:79:164", "trueBody": { "errorCall": { "arguments": [{ "arguments": [], "expression": { "argumentTypes": [], "id": 97955, "name": "rootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99027, "src": "8383:9:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function () pure returns (Claim)" } }, "id": 97956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8383:11:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }], "id": 97954, "name": "UnexpectedRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103117, "src": "8363:19:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_userDefinedValueType$_Claim_$103255_$returns$__$", "typeString": "function (Claim) pure" } }, "id": 97957, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8363:32:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 97958, "nodeType": "RevertStatement", "src": "8356:39:164" } }, { "expression": { "arguments": [{ "arguments": [{ "expression": { "arguments": [{ "id": 97966, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8510:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 97965, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "8510:6:164", "typeDescriptions": {} } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }], "id": 97964, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "8505:4:164", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 97967, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8505:12:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint32", "typeString": "type(uint32)" } }, "id": 97968, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "max", "nodeType": "MemberAccess", "src": "8505:16:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "arguments": [{ "hexValue": "30", "id": 97971, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8560:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 97970, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8552:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 97969, "name": "address", "nodeType": "ElementaryTypeName", "src": "8552:7:164", "typeDescriptions": {} } }, "id": 97972, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8552:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [], "expression": { "argumentTypes": [], "id": 97973, "name": "gameCreator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99010, "src": "8590:11:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_address_$", "typeString": "function () pure returns (address)" } }, "id": 97974, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8590:13:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [{ "expression": { "id": 97977, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8635:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 97978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "src": "8635:9:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 97976, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8627:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { "id": 97975, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "8627:7:164", "typeDescriptions": {} } }, "id": 97979, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8627:18:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { "arguments": [], "expression": { "argumentTypes": [], "id": 97980, "name": "rootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99027, "src": "8670:9:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function () pure returns (Claim)" } }, "id": 97981, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8670:11:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 97982, "name": "ROOT_POSITION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97761, "src": "8709:13:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "arguments": [{ "arguments": [{ "hexValue": "30", "id": 97987, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8775:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "expression": { "id": 97985, "name": "Duration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103263, "src": "8761:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "type(Duration)" } }, "id": 97986, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "8761:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (uint64) pure returns (Duration)" } }, "id": 97988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8761:16:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, { "arguments": [{ "arguments": [{ "expression": { "id": 97993, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "8801:5:164", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 97994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "src": "8801:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 97992, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8794:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { "id": 97991, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "8794:6:164", "typeDescriptions": {} } }, "id": 97995, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8794:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint64", "typeString": "uint64" }], "expression": { "id": 97989, "name": "Timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103261, "src": "8779:9:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "type(Timestamp)" } }, "id": 97990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "8779:14:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "function (uint64) pure returns (Timestamp)" } }, "id": 97996, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8779:39:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" }], "expression": { "id": 97983, "name": "LibClock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101073, "src": "8747:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LibClock_$101073_$", "typeString": "type(library LibClock)" } }, "id": 97984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "referencedDeclaration": 101037, "src": "8747:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_userDefinedValueType$_Clock_$103267_$", "typeString": "function (Duration,Timestamp) pure returns (Clock)" } }, "id": 97997, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8747:72:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint128", "typeString": "uint128" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" }], "id": 97963, "name": "ClaimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100523, "src": "8464:9:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_ClaimData_$100523_storage_ptr_$", "typeString": "type(struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 97998, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": ["parentIndex", "counteredBy", "claimant", "bond", "claim", "position", "clock"], "nodeType": "FunctionCall", "src": "8464:370:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_memory_ptr", "typeString": "struct IFaultDisputeGame.ClaimData memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_struct$_ClaimData_$100523_memory_ptr", "typeString": "struct IFaultDisputeGame.ClaimData memory" }], "expression": { "id": 97960, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "8436:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 97962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "src": "8436:14:164", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$_t_struct$_ClaimData_$100523_storage_$returns$__$bound_to$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$", "typeString": "function (struct IFaultDisputeGame.ClaimData storage ref[] storage pointer,struct IFaultDisputeGame.ClaimData storage ref)" } }, "id": 97999, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8436:408:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98000, "nodeType": "ExpressionStatement", "src": "8436:408:164" }, { "expression": { "id": 98003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98001, "name": "initialized", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97780, "src": "8895:11:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 98002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8909:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "8895:18:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98004, "nodeType": "ExpressionStatement", "src": "8895:18:164" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": [], "expression": { "id": 98005, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97742, "src": "8953:4:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "id": 98007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", "referencedDeclaration": 100691, "src": "8953:12:164", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, "id": 98010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": ["value"], "nodeType": "FunctionCallOptions", "options": [{ "expression": { "id": 98008, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "8974:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 98009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "src": "8974:9:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "src": "8953:32:164", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, "id": 98011, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8953:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98012, "nodeType": "ExpressionStatement", "src": "8953:34:164" }, { "expression": { "id": 98022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98013, "name": "createdAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97769, "src": "9043:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "arguments": [{ "expression": { "id": 98018, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "9077:5:164", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 98019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "src": "9077:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98017, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9070:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { "id": 98016, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "9070:6:164", "typeDescriptions": {} } }, "id": 98020, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9070:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint64", "typeString": "uint64" }], "expression": { "id": 98014, "name": "Timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103261, "src": "9055:9:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "type(Timestamp)" } }, "id": 98015, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "9055:14:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "function (uint64) pure returns (Timestamp)" } }, "id": 98021, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9055:39:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "src": "9043:51:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "id": 98023, "nodeType": "ExpressionStatement", "src": "9043:51:164" }] }, "baseFunctions": [100615], "documentation": { "id": 97912, "nodeType": "StructuredDocumentation", "src": "6163:30:164", "text": "@inheritdoc IInitializable" }, "functionSelector": "8129fc1c", "implemented": true, "kind": "function", "modifiers": [], "name": "initialize", "nameLocation": "6207:10:164", "parameters": { "id": 97913, "nodeType": "ParameterList", "parameters": [], "src": "6217:2:164" }, "returnParameters": { "id": 97914, "nodeType": "ParameterList", "parameters": [], "src": "6243:0:164" }, "scope": 99927, "stateMutability": "payable", "virtual": true, "visibility": "public" }, { "id": 98227, "nodeType": "FunctionDefinition", "src": "9353:4442:164", "nodes": [], "body": { "id": 98226, "nodeType": "Block", "src": "9527:4268:164", "nodes": [], "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "id": 98040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98037, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97777, "src": "9626:6:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 98038, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "9636:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 98039, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "IN_PROGRESS", "nodeType": "MemberAccess", "referencedDeclaration": 103274, "src": "9636:22:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "9626:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98044, "nodeType": "IfStatement", "src": "9622:64:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98041, "name": "GameNotInProgress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103144, "src": "9667:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9667:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98043, "nodeType": "RevertStatement", "src": "9660:26:164" } }, { "assignments": [98047], "declarations": [{ "constant": false, "id": 98047, "mutability": "mutable", "name": "parent", "nameLocation": "9795:6:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "9777:24:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 98046, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98045, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "9777:9:164" }, "referencedDeclaration": 100523, "src": "9777:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 98051, "initialValue": { "baseExpression": { "id": 98048, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "9804:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 98050, "indexExpression": { "id": 98049, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98028, "src": "9814:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9804:22:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "9777:49:164" }, { "assignments": [98054], "declarations": [{ "constant": false, "id": 98054, "mutability": "mutable", "name": "parentPos", "nameLocation": "9898:9:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "9889:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 98053, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98052, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "9889:8:164" }, "referencedDeclaration": 103269, "src": "9889:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 98057, "initialValue": { "expression": { "id": 98055, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98047, "src": "9910:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98056, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "9910:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "VariableDeclarationStatement", "src": "9889:36:164" }, { "assignments": [98060], "declarations": [{ "constant": false, "id": 98060, "mutability": "mutable", "name": "stepPos", "nameLocation": "9991:7:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "9982:16:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 98059, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98058, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "9982:8:164" }, "referencedDeclaration": 103269, "src": "9982:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 98065, "initialValue": { "arguments": [{ "id": 98063, "name": "_isAttack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98030, "src": "10016:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bool", "typeString": "bool" }], "expression": { "id": 98061, "name": "parentPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98054, "src": "10001:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "move", "nodeType": "MemberAccess", "referencedDeclaration": 101006, "src": "10001:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_bool_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position,bool) pure returns (Position)" } }, "id": 98064, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10001:25:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "VariableDeclarationStatement", "src": "9982:44:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98066, "name": "stepPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98060, "src": "10142:7:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "10142:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 98068, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10142:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98069, "name": "MAX_GAME_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97723, "src": "10161:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 98070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10178:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10161:18:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10142:37:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98076, "nodeType": "IfStatement", "src": "10138:65:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98073, "name": "InvalidParent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103156, "src": "10188:13:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98074, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10188:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98075, "nodeType": "RevertStatement", "src": "10181:22:164" } }, { "assignments": [98079], "declarations": [{ "constant": false, "id": 98079, "mutability": "mutable", "name": "preStateClaim", "nameLocation": "10285:13:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "10279:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 98078, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98077, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "10279:5:164" }, "referencedDeclaration": 103255, "src": "10279:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }], "id": 98080, "nodeType": "VariableDeclarationStatement", "src": "10279:19:164" }, { "assignments": [98083], "declarations": [{ "constant": false, "id": 98083, "mutability": "mutable", "name": "postState", "nameLocation": "10326:9:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "10308:27:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 98082, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98081, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "10308:9:164" }, "referencedDeclaration": 100523, "src": "10308:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 98084, "nodeType": "VariableDeclarationStatement", "src": "10308:27:164" }, { "condition": { "id": 98085, "name": "_isAttack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98030, "src": "10349:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 98145, "nodeType": "Block", "src": "11374:314:164", "statements": [{ "expression": { "id": 98127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98124, "name": "preStateClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98079, "src": "11542:13:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 98125, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98047, "src": "11558:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claim", "nodeType": "MemberAccess", "referencedDeclaration": 100516, "src": "11558:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "src": "11542:28:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98128, "nodeType": "ExpressionStatement", "src": "11542:28:164" }, { "expression": { "id": 98143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98129, "name": "postState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98083, "src": "11584:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "arguments": [{ "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 98137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98133, "name": "parentPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98054, "src": "11629:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "11629:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 98135, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11629:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 98136, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11647:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "11629:19:164", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint128", "typeString": "uint128" }], "expression": { "id": 98131, "name": "Position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103269, "src": "11615:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Position_$103269_$", "typeString": "type(Position)" } }, "id": 98132, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "11615:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint128) pure returns (Position)" } }, "id": 98138, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11615:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "expression": { "id": 98139, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98047, "src": "11651:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98140, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentIndex", "nodeType": "MemberAccess", "referencedDeclaration": 100507, "src": "11651:18:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "hexValue": "66616c7365", "id": 98141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11671:5:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 98130, "name": "_findTraceAncestor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99638, "src": "11596:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$", "typeString": "function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 98142, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11596:81:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "src": "11584:93:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98144, "nodeType": "ExpressionStatement", "src": "11584:93:164" }] }, "id": 98146, "nodeType": "IfStatement", "src": "10345:1343:164", "trueBody": { "id": 98123, "nodeType": "Block", "src": "10360:1008:164", "statements": [{ "expression": { "id": 98117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98086, "name": "preStateClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98079, "src": "11031:13:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98100, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98097, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98087, "name": "stepPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98060, "src": "11048:7:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98088, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "indexAtDepth", "nodeType": "MemberAccess", "referencedDeclaration": 100850, "src": "11048:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 98089, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11048:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 98090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11074:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98091, "name": "MAX_GAME_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97723, "src": "11080:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 98092, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "11097:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11080:28:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 98094, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "11079:30:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11074:35:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 98096, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "11073:37:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11048:62:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 98098, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "11047:64:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 98099, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11115:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11047:69:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "expression": { "arguments": [{ "arguments": [{ "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 98109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98105, "name": "parentPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98054, "src": "11204:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "11204:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 98107, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11204:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 98108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11222:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "11204:19:164", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint128", "typeString": "uint128" }], "expression": { "id": 98103, "name": "Position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103269, "src": "11190:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Position_$103269_$", "typeString": "type(Position)" } }, "id": 98104, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "11190:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint128) pure returns (Position)" } }, "id": 98110, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11190:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "expression": { "id": 98111, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98047, "src": "11226:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98112, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentIndex", "nodeType": "MemberAccess", "referencedDeclaration": 100507, "src": "11226:18:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "hexValue": "66616c7365", "id": 98113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11246:5:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 98102, "name": "_findTraceAncestor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99638, "src": "11171:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$", "typeString": "function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 98114, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11171:81:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98115, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claim", "nodeType": "MemberAccess", "referencedDeclaration": 100516, "src": "11171:87:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "11047:211:164", "trueExpression": { "id": 98101, "name": "ABSOLUTE_PRESTATE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97720, "src": "11135:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "src": "11031:227:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98118, "nodeType": "ExpressionStatement", "src": "11031:227:164" }, { "expression": { "id": 98121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98119, "name": "postState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98083, "src": "11339:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 98120, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98047, "src": "11351:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "src": "11339:18:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98122, "nodeType": "ExpressionStatement", "src": "11339:18:164" }] } }, { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 98157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 98151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [{ "id": 98148, "name": "_stateData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98032, "src": "12041:10:164", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }], "id": 98147, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "12031:9:164", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 98149, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12031:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "38", "id": 98150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12056:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, "src": "12031:26:164", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 98156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98152, "name": "preStateClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98079, "src": "12061:13:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101085, "src": "12061:17:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (Claim) pure returns (bytes32)" } }, "id": 98154, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12061:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "38", "id": 98155, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12084:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, "src": "12061:24:164", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "12031:54:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98161, "nodeType": "IfStatement", "src": "12027:84:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98158, "name": "InvalidPrestate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103159, "src": "12094:15:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98159, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12094:17:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98160, "nodeType": "RevertStatement", "src": "12087:24:164" } }, { "assignments": [98164], "declarations": [{ "constant": false, "id": 98164, "mutability": "mutable", "name": "uuid", "nameLocation": "12187:4:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "12182:9:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }, "typeName": { "id": 98163, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98162, "name": "Hash", "nodeType": "IdentifierPath", "referencedDeclaration": 103253, "src": "12182:4:164" }, "referencedDeclaration": 103253, "src": "12182:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "visibility": "internal" }], "id": 98168, "initialValue": { "arguments": [{ "id": 98166, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98028, "src": "12212:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98165, "name": "_findLocalContext", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99875, "src": "12194:17:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (uint256) view returns (Hash)" } }, "id": 98167, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12194:30:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "nodeType": "VariableDeclarationStatement", "src": "12182:42:164" }, { "assignments": [98170], "declarations": [{ "constant": false, "id": 98170, "mutability": "mutable", "name": "validStep", "nameLocation": "13202:9:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "13197:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 98169, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13197:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }], "id": 98184, "initialValue": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 98183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [{ "id": 98173, "name": "_stateData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98032, "src": "13222:10:164", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { "id": 98174, "name": "_proof", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98034, "src": "13234:6:164", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98175, "name": "uuid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98164, "src": "13242:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "13242:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 98177, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13242:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }], "expression": { "id": 98171, "name": "VM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97734, "src": "13214:2:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "id": 98172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "step", "nodeType": "MemberAccess", "referencedDeclaration": 100163, "src": "13214:7:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_bytes32_$", "typeString": "function (bytes memory,bytes memory,bytes32) external returns (bytes32)" } }, "id": 98178, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13214:39:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 98179, "name": "postState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98083, "src": "13257:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98180, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claim", "nodeType": "MemberAccess", "referencedDeclaration": 100516, "src": "13257:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101085, "src": "13257:19:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (Claim) pure returns (bytes32)" } }, "id": 98182, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13257:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "13214:64:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "13197:81:164" }, { "assignments": [98186], "declarations": [{ "constant": false, "id": 98186, "mutability": "mutable", "name": "parentPostAgree", "nameLocation": "13293:15:164", "nodeType": "VariableDeclaration", "scope": 98226, "src": "13288:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 98185, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13288:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }], "id": 98200, "initialValue": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 98199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 98197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 98194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98187, "name": "parentPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98054, "src": "13312:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "13312:15:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 98189, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13312:17:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 98190, "name": "postState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98083, "src": "13332:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98191, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "13332:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "13332:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 98193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13332:26:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "13312:46:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }], "id": 98195, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "13311:48:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "hexValue": "32", "id": 98196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13362:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "13311:52:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 98198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13367:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13311:57:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "13288:80:164" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 98203, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98201, "name": "parentPostAgree", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98186, "src": "13382:15:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 98202, "name": "validStep", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98170, "src": "13401:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13382:28:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98207, "nodeType": "IfStatement", "src": "13378:52:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98204, "name": "ValidStep", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103162, "src": "13419:9:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98205, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13419:11:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98206, "nodeType": "RevertStatement", "src": "13412:18:164" } }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 98214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 98208, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98047, "src": "13524:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98209, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "counteredBy", "nodeType": "MemberAccess", "referencedDeclaration": 100509, "src": "13524:18:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [{ "hexValue": "30", "id": 98212, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13554:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 98211, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "13546:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98210, "name": "address", "nodeType": "ElementaryTypeName", "src": "13546:7:164", "typeDescriptions": {} } }, "id": 98213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13546:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13524:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98218, "nodeType": "IfStatement", "src": "13520:60:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98215, "name": "DuplicateStep", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103189, "src": "13565:13:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98216, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13565:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98217, "nodeType": "RevertStatement", "src": "13558:22:164" } }, { "expression": { "id": 98224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 98219, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98047, "src": "13757:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98221, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "counteredBy", "nodeType": "MemberAccess", "referencedDeclaration": 100509, "src": "13757:18:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 98222, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "13778:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 98223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "13778:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13757:31:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 98225, "nodeType": "ExpressionStatement", "src": "13757:31:164" }] }, "baseFunctions": [100563], "documentation": { "id": 98026, "nodeType": "StructuredDocumentation", "src": "9315:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "d8cc1a3c", "implemented": true, "kind": "function", "modifiers": [], "name": "step", "nameLocation": "9362:4:164", "parameters": { "id": 98035, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98028, "mutability": "mutable", "name": "_claimIndex", "nameLocation": "9384:11:164", "nodeType": "VariableDeclaration", "scope": 98227, "src": "9376:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98027, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9376:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 98030, "mutability": "mutable", "name": "_isAttack", "nameLocation": "9410:9:164", "nodeType": "VariableDeclaration", "scope": 98227, "src": "9405:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 98029, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9405:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 98032, "mutability": "mutable", "name": "_stateData", "nameLocation": "9444:10:164", "nodeType": "VariableDeclaration", "scope": 98227, "src": "9429:25:164", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 98031, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "9429:5:164", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 98034, "mutability": "mutable", "name": "_proof", "nameLocation": "9479:6:164", "nodeType": "VariableDeclaration", "scope": 98227, "src": "9464:21:164", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 98033, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "9464:5:164", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "9366:125:164" }, "returnParameters": { "id": 98036, "nodeType": "ParameterList", "parameters": [], "src": "9527:0:164" }, "scope": 99927, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 98470, "nodeType": "FunctionDefinition", "src": "14106:5200:164", "nodes": [], "body": { "id": 98469, "nodeType": "Block", "src": "14198:5108:164", "nodes": [], "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "id": 98241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98238, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97777, "src": "14297:6:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 98239, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "14307:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 98240, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "IN_PROGRESS", "nodeType": "MemberAccess", "referencedDeclaration": 103274, "src": "14307:22:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "14297:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98245, "nodeType": "IfStatement", "src": "14293:64:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98242, "name": "GameNotInProgress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103144, "src": "14338:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98243, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14338:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98244, "nodeType": "RevertStatement", "src": "14331:26:164" } }, { "assignments": [98248], "declarations": [{ "constant": false, "id": 98248, "mutability": "mutable", "name": "parent", "nameLocation": "14465:6:164", "nodeType": "VariableDeclaration", "scope": 98469, "src": "14448:23:164", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_memory_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 98247, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98246, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "14448:9:164" }, "referencedDeclaration": 100523, "src": "14448:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 98252, "initialValue": { "baseExpression": { "id": 98249, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "14474:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 98251, "indexExpression": { "id": 98250, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "14484:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14474:26:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "14448:52:164" }, { "assignments": [98255], "declarations": [{ "constant": false, "id": 98255, "mutability": "mutable", "name": "parentPos", "nameLocation": "14768:9:164", "nodeType": "VariableDeclaration", "scope": 98469, "src": "14759:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 98254, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98253, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "14759:8:164" }, "referencedDeclaration": 103269, "src": "14759:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 98258, "initialValue": { "expression": { "id": 98256, "name": "parent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98248, "src": "14780:6:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_memory_ptr", "typeString": "struct IFaultDisputeGame.ClaimData memory" } }, "id": 98257, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "14780:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "VariableDeclarationStatement", "src": "14759:36:164" }, { "assignments": [98261], "declarations": [{ "constant": false, "id": 98261, "mutability": "mutable", "name": "nextPosition", "nameLocation": "14814:12:164", "nodeType": "VariableDeclaration", "scope": 98469, "src": "14805:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 98260, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98259, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "14805:8:164" }, "referencedDeclaration": 103269, "src": "14805:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 98266, "initialValue": { "arguments": [{ "id": 98264, "name": "_isAttack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98235, "src": "14844:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bool", "typeString": "bool" }], "expression": { "id": 98262, "name": "parentPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98255, "src": "14829:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "move", "nodeType": "MemberAccess", "referencedDeclaration": 101006, "src": "14829:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_bool_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position,bool) pure returns (Position)" } }, "id": 98265, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14829:25:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "VariableDeclarationStatement", "src": "14805:49:164" }, { "assignments": [98268], "declarations": [{ "constant": false, "id": 98268, "mutability": "mutable", "name": "nextPositionDepth", "nameLocation": "14872:17:164", "nodeType": "VariableDeclaration", "scope": 98469, "src": "14864:25:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98267, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14864:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 98272, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98269, "name": "nextPosition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98261, "src": "14892:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98270, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "14892:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 98271, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14892:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", "src": "14864:48:164" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 98285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [{ "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 98281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98273, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "15259:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 98274, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15278:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "15259:20:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98276, "name": "nextPositionDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98268, "src": "15283:17:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98277, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "15304:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "32", "id": 98278, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15318:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "15304:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15283:36:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "15259:60:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }], "id": 98282, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "15258:62:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "id": 98284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "15324:10:164", "subExpression": { "id": 98283, "name": "_isAttack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98235, "src": "15325:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "15258:76:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98290, "nodeType": "IfStatement", "src": "15254:137:164", "trueBody": { "id": 98289, "nodeType": "Block", "src": "15336:55:164", "statements": [{ "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98286, "name": "CannotDefendRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103135, "src": "15357:21:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98287, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15357:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98288, "nodeType": "RevertStatement", "src": "15350:30:164" }] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98291, "name": "nextPositionDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98268, "src": "15732:17:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 98292, "name": "MAX_GAME_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97723, "src": "15752:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15732:34:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98297, "nodeType": "IfStatement", "src": "15728:66:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98294, "name": "GameDepthExceeded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103153, "src": "15775:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15775:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98296, "nodeType": "RevertStatement", "src": "15768:26:164" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98298, "name": "nextPositionDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98268, "src": "16001:17:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98299, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "16022:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 98300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16036:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "16022:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16001:36:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98311, "nodeType": "IfStatement", "src": "15997:138:164", "trueBody": { "id": 98310, "nodeType": "Block", "src": "16039:96:164", "statements": [{ "expression": { "arguments": [{ "id": 98304, "name": "_claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98233, "src": "16078:6:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 98305, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "16086:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 98306, "name": "parentPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98255, "src": "16103:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 98307, "name": "_isAttack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98235, "src": "16114:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 98303, "name": "_verifyExecBisectionRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99587, "src": "16053:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_Claim_$103255_$_t_uint256_$_t_userDefinedValueType$_Position_$103269_$_t_bool_$returns$__$", "typeString": "function (Claim,uint256,Position,bool) view" } }, "id": 98308, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16053:71:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98309, "nodeType": "ExpressionStatement", "src": "16053:71:164" }] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [{ "id": 98313, "name": "nextPosition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98261, "src": "16241:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }], "id": 98312, "name": "getRequiredBond", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99215, "src": "16225:15:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint256_$", "typeString": "function (Position) view returns (uint256)" } }, "id": 98314, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16225:29:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 98315, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "16258:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 98316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "src": "16258:9:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16225:42:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98321, "nodeType": "IfStatement", "src": "16221:76:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98318, "name": "IncorrectBondAmount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103123, "src": "16276:19:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98319, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16276:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98320, "nodeType": "RevertStatement", "src": "16269:28:164" } }, { "assignments": [98324], "declarations": [{ "constant": false, "id": 98324, "mutability": "mutable", "name": "nextDuration", "nameLocation": "16539:12:164", "nodeType": "VariableDeclaration", "scope": 98469, "src": "16530:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 98323, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98322, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "16530:8:164" }, "referencedDeclaration": 103263, "src": "16530:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }], "id": 98328, "initialValue": { "arguments": [{ "id": 98326, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "16576:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98325, "name": "getChallengerDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99348, "src": "16554:21:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (uint256) view returns (Duration)" } }, "id": 98327, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16554:38:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "VariableDeclarationStatement", "src": "16530:62:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 98335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98329, "name": "nextDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98324, "src": "16742:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "16742:16:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98331, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16742:18:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98332, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "16764:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "16764:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98334, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16764:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "16742:46:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98339, "nodeType": "IfStatement", "src": "16738:78:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98336, "name": "ClockTimeExceeded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103147, "src": "16797:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98337, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16797:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98338, "nodeType": "RevertStatement", "src": "16790:26:164" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 98350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98340, "name": "nextDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98324, "src": "17477:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98341, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "17477:16:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98342, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17477:18:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 98349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98343, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "17498:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "17498:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98345, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17498:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98346, "name": "CLOCK_EXTENSION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97753, "src": "17525:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "17525:19:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98348, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17525:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "17498:48:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "17477:69:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98380, "nodeType": "IfStatement", "src": "17473:424:164", "trueBody": { "id": 98379, "nodeType": "Block", "src": "17548:349:164", "statements": [{ "assignments": [98352], "declarations": [{ "constant": false, "id": 98352, "mutability": "mutable", "name": "extensionPeriod", "nameLocation": "17678:15:164", "nodeType": "VariableDeclaration", "scope": 98379, "src": "17671:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 98351, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "17671:6:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }], "id": 98367, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98353, "name": "nextPositionDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98268, "src": "17712:17:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98354, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "17733:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 98355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17747:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "17733:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17712:36:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98363, "name": "CLOCK_EXTENSION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97753, "src": "17779:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "17779:19:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98365, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17779:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 98366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "17712:88:164", "trueExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 98362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98358, "name": "CLOCK_EXTENSION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97753, "src": "17751:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "17751:19:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17751:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "32", "id": 98361, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17775:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "17751:25:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "VariableDeclarationStatement", "src": "17671:129:164" }, { "expression": { "id": 98377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98368, "name": "nextDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98324, "src": "17814:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 98375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98371, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "17843:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98372, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "17843:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98373, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17843:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 98374, "name": "extensionPeriod", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98352, "src": "17870:15:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "17843:42:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint64", "typeString": "uint64" }], "expression": { "id": 98369, "name": "Duration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103263, "src": "17829:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "type(Duration)" } }, "id": 98370, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "17829:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (uint64) pure returns (Duration)" } }, "id": 98376, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17829:57:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "src": "17814:72:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98378, "nodeType": "ExpressionStatement", "src": "17814:72:164" }] } }, { "assignments": [98383], "declarations": [{ "constant": false, "id": 98383, "mutability": "mutable", "name": "nextClock", "nameLocation": "18004:9:164", "nodeType": "VariableDeclaration", "scope": 98469, "src": "17998:15:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" }, "typeName": { "id": 98382, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98381, "name": "Clock", "nodeType": "IdentifierPath", "referencedDeclaration": 103267, "src": "17998:5:164" }, "referencedDeclaration": 103267, "src": "17998:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "visibility": "internal" }], "id": 98396, "initialValue": { "arguments": [{ "id": 98386, "name": "nextDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98324, "src": "18030:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, { "arguments": [{ "arguments": [{ "expression": { "id": 98391, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "18066:5:164", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 98392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "src": "18066:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98390, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "18059:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { "id": 98389, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "18059:6:164", "typeDescriptions": {} } }, "id": 98393, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18059:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint64", "typeString": "uint64" }], "expression": { "id": 98387, "name": "Timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103261, "src": "18044:9:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "type(Timestamp)" } }, "id": 98388, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "18044:14:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "function (uint64) pure returns (Timestamp)" } }, "id": 98394, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18044:39:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" }], "expression": { "id": 98384, "name": "LibClock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 101073, "src": "18016:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LibClock_$101073_$", "typeString": "type(library LibClock)" } }, "id": 98385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "referencedDeclaration": 101037, "src": "18016:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_userDefinedValueType$_Clock_$103267_$", "typeString": "function (Duration,Timestamp) pure returns (Clock)" } }, "id": 98395, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18016:68:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "nodeType": "VariableDeclarationStatement", "src": "17998:86:164" }, { "assignments": [98399], "declarations": [{ "constant": false, "id": 98399, "mutability": "mutable", "name": "claimHash", "nameLocation": "18378:9:164", "nodeType": "VariableDeclaration", "scope": 98469, "src": "18368:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_ClaimHash_$103257", "typeString": "ClaimHash" }, "typeName": { "id": 98398, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98397, "name": "ClaimHash", "nodeType": "IdentifierPath", "referencedDeclaration": 103257, "src": "18368:9:164" }, "referencedDeclaration": 103257, "src": "18368:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_ClaimHash_$103257", "typeString": "ClaimHash" } }, "visibility": "internal" }], "id": 98405, "initialValue": { "arguments": [{ "id": 98402, "name": "nextPosition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98261, "src": "18410:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 98403, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "18424:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 98400, "name": "_claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98233, "src": "18390:6:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "hashClaimPos", "nodeType": "MemberAccess", "referencedDeclaration": 100799, "src": "18390:19:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$returns$_t_userDefinedValueType$_ClaimHash_$103257_$bound_to$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (Claim,Position,uint256) pure returns (ClaimHash)" } }, "id": 98404, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18390:50:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_ClaimHash_$103257", "typeString": "ClaimHash" } }, "nodeType": "VariableDeclarationStatement", "src": "18368:72:164" }, { "condition": { "baseExpression": { "id": 98406, "name": "claims", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97796, "src": "18454:6:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$", "typeString": "mapping(ClaimHash => bool)" } }, "id": 98408, "indexExpression": { "id": 98407, "name": "claimHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98399, "src": "18461:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_ClaimHash_$103257", "typeString": "ClaimHash" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18454:17:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98412, "nodeType": "IfStatement", "src": "18450:50:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98409, "name": "ClaimAlreadyExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103138, "src": "18480:18:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98410, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18480:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98411, "nodeType": "RevertStatement", "src": "18473:27:164" } }, { "expression": { "id": 98417, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 98413, "name": "claims", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97796, "src": "18510:6:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_userDefinedValueType$_ClaimHash_$103257_$_t_bool_$", "typeString": "mapping(ClaimHash => bool)" } }, "id": 98415, "indexExpression": { "id": 98414, "name": "claimHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98399, "src": "18517:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_ClaimHash_$103257", "typeString": "ClaimHash" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "18510:17:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 98416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "18530:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "18510:24:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98418, "nodeType": "ExpressionStatement", "src": "18510:24:164" }, { "expression": { "arguments": [{ "arguments": [{ "arguments": [{ "id": 98425, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "18654:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98424, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "18647:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 98423, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "18647:6:164", "typeDescriptions": {} } }, "id": 98426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18647:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "arguments": [{ "hexValue": "30", "id": 98429, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18770:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 98428, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "18762:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98427, "name": "address", "nodeType": "ElementaryTypeName", "src": "18762:7:164", "typeDescriptions": {} } }, "id": 98430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18762:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "expression": { "id": 98431, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "18800:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 98432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "18800:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [{ "expression": { "id": 98435, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "18842:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 98436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "src": "18842:9:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98434, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "18834:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { "id": 98433, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "18834:7:164", "typeDescriptions": {} } }, "id": 98437, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18834:18:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, { "id": 98438, "name": "_claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98233, "src": "18877:6:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 98439, "name": "nextPosition", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98261, "src": "18911:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 98440, "name": "nextClock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98383, "src": "18948:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint128", "typeString": "uint128" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" }], "id": 98422, "name": "ClaimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100523, "src": "18606:9:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_ClaimData_$100523_storage_ptr_$", "typeString": "type(struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 98441, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": ["parentIndex", "counteredBy", "claimant", "bond", "claim", "position", "clock"], "nodeType": "FunctionCall", "src": "18606:366:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_memory_ptr", "typeString": "struct IFaultDisputeGame.ClaimData memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_struct$_ClaimData_$100523_memory_ptr", "typeString": "struct IFaultDisputeGame.ClaimData memory" }], "expression": { "id": 98419, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "18578:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 98421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "src": "18578:14:164", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$_t_struct$_ClaimData_$100523_storage_$returns$__$bound_to$_t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage_ptr_$", "typeString": "function (struct IFaultDisputeGame.ClaimData storage ref[] storage pointer,struct IFaultDisputeGame.ClaimData storage ref)" } }, "id": 98442, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18578:404:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98443, "nodeType": "ExpressionStatement", "src": "18578:404:164" }, { "expression": { "arguments": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 98448, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "19082:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 98449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "19082:16:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 98450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "19101:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "19082:20:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "baseExpression": { "id": 98444, "name": "subgames", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97802, "src": "19051:8:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(uint256 => uint256[] storage ref)" } }, "id": 98446, "indexExpression": { "id": 98445, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "19060:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19051:25:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, "id": 98447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "src": "19051:30:164", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)" } }, "id": 98452, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19051:52:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98453, "nodeType": "ExpressionStatement", "src": "19051:52:164" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": [], "expression": { "id": 98454, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97742, "src": "19143:4:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "id": 98456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", "referencedDeclaration": 100691, "src": "19143:12:164", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, "id": 98459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": ["value"], "nodeType": "FunctionCallOptions", "options": [{ "expression": { "id": 98457, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "19164:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 98458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", "src": "19164:9:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "src": "19143:32:164", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, "id": 98460, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19143:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98461, "nodeType": "ExpressionStatement", "src": "19143:34:164" }, { "eventCall": { "arguments": [{ "id": 98463, "name": "_challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98230, "src": "19263:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 98464, "name": "_claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98233, "src": "19280:6:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "expression": { "id": 98465, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "19288:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 98466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "19288:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_address", "typeString": "address" }], "id": 98462, "name": "Move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100533, "src": "19258:4:164", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_userDefinedValueType$_Claim_$103255_$_t_address_$returns$__$", "typeString": "function (uint256,Claim,address)" } }, "id": 98467, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19258:41:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98468, "nodeType": "EmitStatement", "src": "19253:46:164" }] }, "documentation": { "id": 98228, "nodeType": "StructuredDocumentation", "src": "13801:300:164", "text": "@notice Generic move function, used for both `attack` and `defend` moves.\n @param _challengeIndex The index of the claim being moved against.\n @param _claim The claim at the next logical position in the game.\n @param _isAttack Whether or not the move is an attack or defense." }, "functionSelector": "632247ea", "implemented": true, "kind": "function", "modifiers": [], "name": "move", "nameLocation": "14115:4:164", "parameters": { "id": 98236, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98230, "mutability": "mutable", "name": "_challengeIndex", "nameLocation": "14128:15:164", "nodeType": "VariableDeclaration", "scope": 98470, "src": "14120:23:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98229, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14120:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 98233, "mutability": "mutable", "name": "_claim", "nameLocation": "14151:6:164", "nodeType": "VariableDeclaration", "scope": 98470, "src": "14145:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 98232, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98231, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "14145:5:164" }, "referencedDeclaration": 103255, "src": "14145:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 98235, "mutability": "mutable", "name": "_isAttack", "nameLocation": "14164:9:164", "nodeType": "VariableDeclaration", "scope": 98470, "src": "14159:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 98234, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14159:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }], "src": "14119:55:164" }, "returnParameters": { "id": 98237, "nodeType": "ParameterList", "parameters": [], "src": "14198:0:164" }, "scope": 99927, "stateMutability": "payable", "virtual": true, "visibility": "public" }, { "id": 98486, "nodeType": "FunctionDefinition", "src": "19350:118:164", "nodes": [], "body": { "id": 98485, "nodeType": "Block", "src": "19419:49:164", "nodes": [], "statements": [{ "expression": { "arguments": [{ "id": 98480, "name": "_parentIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98473, "src": "19434:12:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 98481, "name": "_claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98476, "src": "19448:6:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "hexValue": "74727565", "id": 98482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "19456:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 98479, "name": "move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98470, "src": "19429:4:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_userDefinedValueType$_Claim_$103255_$_t_bool_$returns$__$", "typeString": "function (uint256,Claim,bool)" } }, "id": 98483, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19429:32:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98484, "nodeType": "ExpressionStatement", "src": "19429:32:164" }] }, "baseFunctions": [100542], "documentation": { "id": 98471, "nodeType": "StructuredDocumentation", "src": "19312:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "c55cd0c7", "implemented": true, "kind": "function", "modifiers": [], "name": "attack", "nameLocation": "19359:6:164", "parameters": { "id": 98477, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98473, "mutability": "mutable", "name": "_parentIndex", "nameLocation": "19374:12:164", "nodeType": "VariableDeclaration", "scope": 98486, "src": "19366:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98472, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19366:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 98476, "mutability": "mutable", "name": "_claim", "nameLocation": "19394:6:164", "nodeType": "VariableDeclaration", "scope": 98486, "src": "19388:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 98475, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98474, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "19388:5:164" }, "referencedDeclaration": 103255, "src": "19388:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }], "src": "19365:36:164" }, "returnParameters": { "id": 98478, "nodeType": "ParameterList", "parameters": [], "src": "19419:0:164" }, "scope": 99927, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "id": 98502, "nodeType": "FunctionDefinition", "src": "19512:119:164", "nodes": [], "body": { "id": 98501, "nodeType": "Block", "src": "19581:50:164", "nodes": [], "statements": [{ "expression": { "arguments": [{ "id": 98496, "name": "_parentIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98489, "src": "19596:12:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 98497, "name": "_claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98492, "src": "19610:6:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "hexValue": "66616c7365", "id": 98498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "19618:5:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 98495, "name": "move", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98470, "src": "19591:4:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_userDefinedValueType$_Claim_$103255_$_t_bool_$returns$__$", "typeString": "function (uint256,Claim,bool)" } }, "id": 98499, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19591:33:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98500, "nodeType": "ExpressionStatement", "src": "19591:33:164" }] }, "baseFunctions": [100551], "documentation": { "id": 98487, "nodeType": "StructuredDocumentation", "src": "19474:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "35fef567", "implemented": true, "kind": "function", "modifiers": [], "name": "defend", "nameLocation": "19521:6:164", "parameters": { "id": 98493, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98489, "mutability": "mutable", "name": "_parentIndex", "nameLocation": "19536:12:164", "nodeType": "VariableDeclaration", "scope": 98502, "src": "19528:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98488, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19528:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 98492, "mutability": "mutable", "name": "_claim", "nameLocation": "19556:6:164", "nodeType": "VariableDeclaration", "scope": 98502, "src": "19550:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 98491, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98490, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "19550:5:164" }, "referencedDeclaration": 103255, "src": "19550:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }], "src": "19527:36:164" }, "returnParameters": { "id": 98494, "nodeType": "ParameterList", "parameters": [], "src": "19581:0:164" }, "scope": 99927, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "id": 98677, "nodeType": "FunctionDefinition", "src": "19675:2011:164", "nodes": [], "body": { "id": 98676, "nodeType": "Block", "src": "19765:1921:164", "nodes": [], "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "id": 98515, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98512, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97777, "src": "19868:6:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 98513, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "19878:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 98514, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "IN_PROGRESS", "nodeType": "MemberAccess", "referencedDeclaration": 103274, "src": "19878:22:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "19868:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98519, "nodeType": "IfStatement", "src": "19864:64:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98516, "name": "GameNotInProgress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103144, "src": "19909:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19909:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98518, "nodeType": "RevertStatement", "src": "19902:26:164" } }, { "assignments": [98522, 98525, 98528, 98531], "declarations": [{ "constant": false, "id": 98522, "mutability": "mutable", "name": "starting", "nameLocation": "19946:8:164", "nodeType": "VariableDeclaration", "scope": 98676, "src": "19940:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 98521, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98520, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "19940:5:164" }, "referencedDeclaration": 103255, "src": "19940:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 98525, "mutability": "mutable", "name": "startingPos", "nameLocation": "19965:11:164", "nodeType": "VariableDeclaration", "scope": 98676, "src": "19956:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 98524, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98523, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "19956:8:164" }, "referencedDeclaration": 103269, "src": "19956:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "constant": false, "id": 98528, "mutability": "mutable", "name": "disputed", "nameLocation": "19984:8:164", "nodeType": "VariableDeclaration", "scope": 98676, "src": "19978:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 98527, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98526, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "19978:5:164" }, "referencedDeclaration": 103255, "src": "19978:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 98531, "mutability": "mutable", "name": "disputedPos", "nameLocation": "20003:11:164", "nodeType": "VariableDeclaration", "scope": 98676, "src": "19994:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 98530, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98529, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "19994:8:164" }, "referencedDeclaration": 103269, "src": "19994:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 98535, "initialValue": { "arguments": [{ "id": 98533, "name": "_execLeafIdx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98507, "src": "20062:12:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98532, "name": "_findStartingAndDisputedOutputs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99840, "src": "20030:31:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint256) view returns (Claim,Position,Claim,Position)" } }, "id": 98534, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20030:45:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position,Claim,Position)" } }, "nodeType": "VariableDeclarationStatement", "src": "19939:136:164" }, { "assignments": [98538], "declarations": [{ "constant": false, "id": 98538, "mutability": "mutable", "name": "uuid", "nameLocation": "20090:4:164", "nodeType": "VariableDeclaration", "scope": 98676, "src": "20085:9:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }, "typeName": { "id": 98537, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98536, "name": "Hash", "nodeType": "IdentifierPath", "referencedDeclaration": 103253, "src": "20085:4:164" }, "referencedDeclaration": 103253, "src": "20085:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "visibility": "internal" }], "id": 98545, "initialValue": { "arguments": [{ "id": 98540, "name": "starting", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98522, "src": "20118:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 98541, "name": "startingPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98525, "src": "20128:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 98542, "name": "disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98528, "src": "20141:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 98543, "name": "disputedPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98531, "src": "20151:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }], "id": 98539, "name": "_computeLocalContext", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99926, "src": "20097:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Claim,Position,Claim,Position) pure returns (Hash)" } }, "id": 98544, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20097:66:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "nodeType": "VariableDeclarationStatement", "src": "20085:78:164" }, { "assignments": [98548], "declarations": [{ "constant": false, "id": 98548, "mutability": "mutable", "name": "oracle", "nameLocation": "20190:6:164", "nodeType": "VariableDeclaration", "scope": 98676, "src": "20174:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" }, "typeName": { "id": 98547, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98546, "name": "IPreimageOracle", "nodeType": "IdentifierPath", "referencedDeclaration": 96782, "src": "20174:15:164" }, "referencedDeclaration": 96782, "src": "20174:15:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" } }, "visibility": "internal" }], "id": 98552, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98549, "name": "VM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97734, "src": "20199:2:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "id": 98550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "oracle", "nodeType": "MemberAccess", "referencedDeclaration": 100170, "src": "20199:9:164", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IPreimageOracle_$96782_$", "typeString": "function () view external returns (contract IPreimageOracle)" } }, "id": 98551, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20199:11:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" } }, "nodeType": "VariableDeclarationStatement", "src": "20174:36:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98553, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "20224:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 98554, "name": "LocalPreimageKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103373, "src": "20234:16:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LocalPreimageKey_$103373_$", "typeString": "type(library LocalPreimageKey)" } }, "id": 98555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_HEAD_HASH", "nodeType": "MemberAccess", "referencedDeclaration": 103356, "src": "20234:29:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20224:39:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98573, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "20410:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 98574, "name": "LocalPreimageKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103373, "src": "20420:16:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LocalPreimageKey_$103373_$", "typeString": "type(library LocalPreimageKey)" } }, "id": 98575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "STARTING_OUTPUT_ROOT", "nodeType": "MemberAccess", "referencedDeclaration": 103360, "src": "20420:37:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20410:47:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98592, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "20624:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 98593, "name": "LocalPreimageKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103373, "src": "20634:16:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LocalPreimageKey_$103373_$", "typeString": "type(library LocalPreimageKey)" } }, "id": 98594, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "DISPUTED_OUTPUT_ROOT", "nodeType": "MemberAccess", "referencedDeclaration": 103364, "src": "20634:37:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20624:47:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98611, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "20837:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 98612, "name": "LocalPreimageKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103373, "src": "20847:16:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LocalPreimageKey_$103373_$", "typeString": "type(library LocalPreimageKey)" } }, "id": 98613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "DISPUTED_L2_BLOCK_NUMBER", "nodeType": "MemberAccess", "referencedDeclaration": 103368, "src": "20847:41:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20837:51:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98645, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "21380:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 98646, "name": "LocalPreimageKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103373, "src": "21390:16:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_LocalPreimageKey_$103373_$", "typeString": "type(library LocalPreimageKey)" } }, "id": 98647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "CHAIN_ID", "nodeType": "MemberAccess", "referencedDeclaration": 103372, "src": "21390:25:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21380:35:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 98670, "nodeType": "Block", "src": "21629:51:164", "statements": [{ "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98667, "name": "InvalidLocalIdent", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103168, "src": "21650:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98668, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21650:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98669, "nodeType": "RevertStatement", "src": "21643:26:164" }] }, "id": 98671, "nodeType": "IfStatement", "src": "21376:304:164", "trueBody": { "id": 98666, "nodeType": "Block", "src": "21417:206:164", "statements": [{ "expression": { "arguments": [{ "id": 98652, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "21547:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98653, "name": "uuid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98538, "src": "21555:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98654, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "21555:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 98655, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21555:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "arguments": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98658, "name": "L2_CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97749, "src": "21575:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "30784330", "id": 98659, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21590:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_192_by_1", "typeString": "int_const 192" }, "value": "0xC0" }, "src": "21575:19:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98657, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "21567:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { "id": 98656, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "21567:7:164", "typeDescriptions": {} } }, "id": 98661, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21567:28:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "hexValue": "38", "id": 98662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21597:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, { "id": 98663, "name": "_partOffset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98509, "src": "21600:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 98649, "name": "oracle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98548, "src": "21526:6:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" } }, "id": 98651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "loadLocalData", "nodeType": "MemberAccess", "referencedDeclaration": 96741, "src": "21526:20:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)" } }, "id": 98664, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21526:86:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 98665, "nodeType": "ExpressionStatement", "src": "21526:86:164" }] } }, "id": 98672, "nodeType": "IfStatement", "src": "20833:847:164", "trueBody": { "id": 98644, "nodeType": "Block", "src": "20890:480:164", "statements": [{ "assignments": [98616], "declarations": [{ "constant": false, "id": 98616, "mutability": "mutable", "name": "l2Number", "nameLocation": "21176:8:164", "nodeType": "VariableDeclaration", "scope": 98644, "src": "21168:16:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98615, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21168:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 98626, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 98617, "name": "startingOutputRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97811, "src": "21187:18:164", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage", "typeString": "struct OutputRoot storage ref" } }, "id": 98618, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "l2BlockNumber", "nodeType": "MemberAccess", "referencedDeclaration": 103282, "src": "21187:32:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "arguments": [{ "id": 98621, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "21245:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 98619, "name": "disputedPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98531, "src": "21222:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "traceIndex", "nodeType": "MemberAccess", "referencedDeclaration": 100925, "src": "21222:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$returns$_t_uint256_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position,uint256) pure returns (uint256)" } }, "id": 98622, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21222:35:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21187:70:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 98624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21260:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "21187:74:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "21168:93:164" }, { "expression": { "arguments": [{ "id": 98630, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "21297:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98631, "name": "uuid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98538, "src": "21305:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "21305:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 98633, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21305:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "arguments": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98636, "name": "l2Number", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98616, "src": "21325:8:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "30784330", "id": 98637, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21337:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_192_by_1", "typeString": "int_const 192" }, "value": "0xC0" }, "src": "21325:16:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98635, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "21317:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { "id": 98634, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "21317:7:164", "typeDescriptions": {} } }, "id": 98639, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21317:25:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "hexValue": "38", "id": 98640, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21344:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, { "id": 98641, "name": "_partOffset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98509, "src": "21347:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 98627, "name": "oracle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98548, "src": "21276:6:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" } }, "id": 98629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "loadLocalData", "nodeType": "MemberAccess", "referencedDeclaration": 96741, "src": "21276:20:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)" } }, "id": 98642, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21276:83:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 98643, "nodeType": "ExpressionStatement", "src": "21276:83:164" }] } }, "id": 98673, "nodeType": "IfStatement", "src": "20620:1060:164", "trueBody": { "id": 98610, "nodeType": "Block", "src": "20673:154:164", "statements": [{ "expression": { "arguments": [{ "id": 98599, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "20764:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98600, "name": "uuid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98538, "src": "20772:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "20772:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 98602, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20772:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98603, "name": "disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98528, "src": "20784:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101085, "src": "20784:12:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (Claim) pure returns (bytes32)" } }, "id": 98605, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20784:14:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "hexValue": "3332", "id": 98606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20800:2:164", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, { "id": 98607, "name": "_partOffset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98509, "src": "20804:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 98596, "name": "oracle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98548, "src": "20743:6:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" } }, "id": 98598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "loadLocalData", "nodeType": "MemberAccess", "referencedDeclaration": 96741, "src": "20743:20:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)" } }, "id": 98608, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20743:73:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 98609, "nodeType": "ExpressionStatement", "src": "20743:73:164" }] } }, "id": 98674, "nodeType": "IfStatement", "src": "20406:1274:164", "trueBody": { "id": 98591, "nodeType": "Block", "src": "20459:155:164", "statements": [{ "expression": { "arguments": [{ "id": 98580, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "20551:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98581, "name": "uuid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98538, "src": "20559:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "20559:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 98583, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20559:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98584, "name": "starting", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98522, "src": "20571:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 98585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101085, "src": "20571:12:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (Claim) pure returns (bytes32)" } }, "id": 98586, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20571:14:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "hexValue": "3332", "id": 98587, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20587:2:164", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, { "id": 98588, "name": "_partOffset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98509, "src": "20591:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 98577, "name": "oracle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98548, "src": "20530:6:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" } }, "id": 98579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "loadLocalData", "nodeType": "MemberAccess", "referencedDeclaration": 96741, "src": "20530:20:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)" } }, "id": 98589, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20530:73:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 98590, "nodeType": "ExpressionStatement", "src": "20530:73:164" }] } }, "id": 98675, "nodeType": "IfStatement", "src": "20220:1460:164", "trueBody": { "id": 98572, "nodeType": "Block", "src": "20265:135:164", "statements": [{ "expression": { "arguments": [{ "id": 98560, "name": "_ident", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98505, "src": "20337:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98561, "name": "uuid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98538, "src": "20345:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "20345:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 98563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20345:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 98564, "name": "l1Head", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99044, "src": "20357:6:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function () pure returns (Hash)" } }, "id": 98565, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20357:8:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98566, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "20357:12:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 98567, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20357:14:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "hexValue": "3332", "id": 98568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20373:2:164", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, { "id": 98569, "name": "_partOffset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98509, "src": "20377:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 98557, "name": "oracle", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98548, "src": "20316:6:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IPreimageOracle_$96782", "typeString": "contract IPreimageOracle" } }, "id": 98559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "loadLocalData", "nodeType": "MemberAccess", "referencedDeclaration": 96741, "src": "20316:20:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256,bytes32,bytes32,uint256,uint256) external returns (bytes32)" } }, "id": 98570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20316:73:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 98571, "nodeType": "ExpressionStatement", "src": "20316:73:164" }] } }] }, "baseFunctions": [100573], "documentation": { "id": 98503, "nodeType": "StructuredDocumentation", "src": "19637:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "f8f43ff6", "implemented": true, "kind": "function", "modifiers": [], "name": "addLocalData", "nameLocation": "19684:12:164", "parameters": { "id": 98510, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98505, "mutability": "mutable", "name": "_ident", "nameLocation": "19705:6:164", "nodeType": "VariableDeclaration", "scope": 98677, "src": "19697:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98504, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19697:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 98507, "mutability": "mutable", "name": "_execLeafIdx", "nameLocation": "19721:12:164", "nodeType": "VariableDeclaration", "scope": 98677, "src": "19713:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98506, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19713:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 98509, "mutability": "mutable", "name": "_partOffset", "nameLocation": "19743:11:164", "nodeType": "VariableDeclaration", "scope": 98677, "src": "19735:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98508, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19735:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "19696:59:164" }, "returnParameters": { "id": 98511, "nodeType": "ParameterList", "parameters": [], "src": "19765:0:164" }, "scope": 99927, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 98690, "nodeType": "FunctionDefinition", "src": "21730:124:164", "nodes": [], "body": { "id": 98689, "nodeType": "Block", "src": "21800:54:164", "nodes": [], "statements": [{ "expression": { "id": 98687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98683, "name": "l2BlockNumber_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98681, "src": "21810:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "hexValue": "30783534", "id": 98685, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21842:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_84_by_1", "typeString": "int_const 84" }, "value": "0x54" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_84_by_1", "typeString": "int_const 84" }], "id": 98684, "name": "_getArgUint256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60489, "src": "21827:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, "id": 98686, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21827:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21810:37:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 98688, "nodeType": "ExpressionStatement", "src": "21810:37:164" }] }, "baseFunctions": [100585], "documentation": { "id": 98678, "nodeType": "StructuredDocumentation", "src": "21692:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "8b85902b", "implemented": true, "kind": "function", "modifiers": [], "name": "l2BlockNumber", "nameLocation": "21739:13:164", "parameters": { "id": 98679, "nodeType": "ParameterList", "parameters": [], "src": "21752:2:164" }, "returnParameters": { "id": 98682, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98681, "mutability": "mutable", "name": "l2BlockNumber_", "nameLocation": "21784:14:164", "nodeType": "VariableDeclaration", "scope": 98690, "src": "21776:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98680, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21776:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "21775:24:164" }, "scope": 99927, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { "id": 98702, "nodeType": "FunctionDefinition", "src": "21898:156:164", "nodes": [], "body": { "id": 98701, "nodeType": "Block", "src": "21982:72:164", "nodes": [], "statements": [{ "expression": { "id": 98699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98696, "name": "startingBlockNumber_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98694, "src": "21992:20:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 98697, "name": "startingOutputRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97811, "src": "22015:18:164", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage", "typeString": "struct OutputRoot storage ref" } }, "id": 98698, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "l2BlockNumber", "nodeType": "MemberAccess", "referencedDeclaration": 103282, "src": "22015:32:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21992:55:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 98700, "nodeType": "ExpressionStatement", "src": "21992:55:164" }] }, "baseFunctions": [100600], "documentation": { "id": 98691, "nodeType": "StructuredDocumentation", "src": "21860:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "70872aa5", "implemented": true, "kind": "function", "modifiers": [], "name": "startingBlockNumber", "nameLocation": "21907:19:164", "parameters": { "id": 98692, "nodeType": "ParameterList", "parameters": [], "src": "21926:2:164" }, "returnParameters": { "id": 98695, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98694, "mutability": "mutable", "name": "startingBlockNumber_", "nameLocation": "21960:20:164", "nodeType": "VariableDeclaration", "scope": 98702, "src": "21952:28:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98693, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21952:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "21951:30:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 98715, "nodeType": "FunctionDefinition", "src": "22098:135:164", "nodes": [], "body": { "id": 98714, "nodeType": "Block", "src": "22173:60:164", "nodes": [], "statements": [{ "expression": { "id": 98712, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98709, "name": "startingRootHash_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98707, "src": "22183:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 98710, "name": "startingOutputRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97811, "src": "22203:18:164", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage", "typeString": "struct OutputRoot storage ref" } }, "id": 98711, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "root", "nodeType": "MemberAccess", "referencedDeclaration": 103280, "src": "22203:23:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "src": "22183:43:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 98713, "nodeType": "ExpressionStatement", "src": "22183:43:164" }] }, "baseFunctions": [100607], "documentation": { "id": 98703, "nodeType": "StructuredDocumentation", "src": "22060:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "25fc2ace", "implemented": true, "kind": "function", "modifiers": [], "name": "startingRootHash", "nameLocation": "22107:16:164", "parameters": { "id": 98704, "nodeType": "ParameterList", "parameters": [], "src": "22123:2:164" }, "returnParameters": { "id": 98708, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98707, "mutability": "mutable", "name": "startingRootHash_", "nameLocation": "22154:17:164", "nodeType": "VariableDeclaration", "scope": 98715, "src": "22149:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }, "typeName": { "id": 98706, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98705, "name": "Hash", "nodeType": "IdentifierPath", "referencedDeclaration": 103253, "src": "22149:4:164" }, "referencedDeclaration": 103253, "src": "22149:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "visibility": "internal" }], "src": "22148:24:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 98778, "nodeType": "FunctionDefinition", "src": "22480:905:164", "nodes": [], "body": { "id": 98777, "nodeType": "Block", "src": "22537:848:164", "nodes": [], "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "id": 98725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98722, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97777, "src": "22639:6:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 98723, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "22649:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 98724, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "IN_PROGRESS", "nodeType": "MemberAccess", "referencedDeclaration": 103274, "src": "22649:22:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "22639:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98729, "nodeType": "IfStatement", "src": "22635:64:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98726, "name": "GameNotInProgress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103144, "src": "22680:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98727, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "22680:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98728, "nodeType": "RevertStatement", "src": "22673:26:164" } }, { "condition": { "id": 98733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "22812:20:164", "subExpression": { "baseExpression": { "id": 98730, "name": "resolvedSubgames", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97807, "src": "22813:16:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" } }, "id": 98732, "indexExpression": { "hexValue": "30", "id": 98731, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "22830:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22813:19:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98737, "nodeType": "IfStatement", "src": "22808:55:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98734, "name": "OutOfOrderResolution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103171, "src": "22841:20:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98735, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "22841:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98736, "nodeType": "RevertStatement", "src": "22834:29:164" } }, { "expression": { "id": 98753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98738, "name": "status_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98720, "src": "22943:7:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 98747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 98739, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "22953:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 98741, "indexExpression": { "hexValue": "30", "id": 98740, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "22963:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22953:12:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "id": 98742, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "counteredBy", "nodeType": "MemberAccess", "referencedDeclaration": 100509, "src": "22953:24:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [{ "hexValue": "30", "id": 98745, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "22989:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 98744, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "22981:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98743, "name": "address", "nodeType": "ElementaryTypeName", "src": "22981:7:164", "typeDescriptions": {} } }, "id": 98746, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "22981:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "22953:38:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "expression": { "id": 98750, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "23021:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 98751, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CHALLENGER_WINS", "nodeType": "MemberAccess", "referencedDeclaration": 103275, "src": "23021:26:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "id": 98752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "22953:94:164", "trueExpression": { "expression": { "id": 98748, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "22994:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 98749, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "DEFENDER_WINS", "nodeType": "MemberAccess", "referencedDeclaration": 103276, "src": "22994:24:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "22943:104:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "id": 98754, "nodeType": "ExpressionStatement", "src": "22943:104:164" }, { "expression": { "id": 98764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98755, "name": "resolvedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97773, "src": "23057:10:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "arguments": [{ "expression": { "id": 98760, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "23092:5:164", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 98761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "src": "23092:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98759, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "23085:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { "id": 98758, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "23085:6:164", "typeDescriptions": {} } }, "id": 98762, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "23085:23:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint64", "typeString": "uint64" }], "expression": { "id": 98756, "name": "Timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103261, "src": "23070:9:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "type(Timestamp)" } }, "id": 98757, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "23070:14:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "function (uint64) pure returns (Timestamp)" } }, "id": 98763, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "23070:39:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "src": "23057:52:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "id": 98765, "nodeType": "ExpressionStatement", "src": "23057:52:164" }, { "eventCall": { "arguments": [{ "id": 98769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98767, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97777, "src": "23239:6:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 98768, "name": "status_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98720, "src": "23248:7:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "23239:16:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }], "id": 98766, "name": "Resolved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100253, "src": "23230:8:164", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_GameStatus_$103277_$returns$__$", "typeString": "function (enum GameStatus)" } }, "id": 98770, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "23230:26:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98771, "nodeType": "EmitStatement", "src": "23225:31:164" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98772, "name": "ANCHOR_STATE_REGISTRY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97746, "src": "23334:21:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "id": 98774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "tryUpdateAnchorState", "nodeType": "MemberAccess", "referencedDeclaration": 100145, "src": "23334:42:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, "id": 98775, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "23334:44:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98776, "nodeType": "ExpressionStatement", "src": "23334:44:164" }] }, "baseFunctions": [100314], "documentation": { "id": 98716, "nodeType": "StructuredDocumentation", "src": "22447:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "2810e1d6", "implemented": true, "kind": "function", "modifiers": [], "name": "resolve", "nameLocation": "22489:7:164", "parameters": { "id": 98717, "nodeType": "ParameterList", "parameters": [], "src": "22496:2:164" }, "returnParameters": { "id": 98721, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98720, "mutability": "mutable", "name": "status_", "nameLocation": "22528:7:164", "nodeType": "VariableDeclaration", "scope": 98778, "src": "22517:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "typeName": { "id": 98719, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98718, "name": "GameStatus", "nodeType": "IdentifierPath", "referencedDeclaration": 103277, "src": "22517:10:164" }, "referencedDeclaration": 103277, "src": "22517:10:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "visibility": "internal" }], "src": "22516:20:164" }, "scope": 99927, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 98984, "nodeType": "FunctionDefinition", "src": "23429:3867:164", "nodes": [], "body": { "id": 98983, "nodeType": "Block", "src": "23481:3815:164", "nodes": [], "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "id": 98787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98784, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97777, "src": "23583:6:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 98785, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "23593:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 98786, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "IN_PROGRESS", "nodeType": "MemberAccess", "referencedDeclaration": 103274, "src": "23593:22:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "23583:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98791, "nodeType": "IfStatement", "src": "23579:64:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98788, "name": "GameNotInProgress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103144, "src": "23624:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "23624:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98790, "nodeType": "RevertStatement", "src": "23617:26:164" } }, { "assignments": [98794], "declarations": [{ "constant": false, "id": 98794, "mutability": "mutable", "name": "subgameRootClaim", "nameLocation": "23672:16:164", "nodeType": "VariableDeclaration", "scope": 98983, "src": "23654:34:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 98793, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98792, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "23654:9:164" }, "referencedDeclaration": 100523, "src": "23654:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 98798, "initialValue": { "baseExpression": { "id": 98795, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "23691:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 98797, "indexExpression": { "id": 98796, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98781, "src": "23701:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23691:22:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "23654:59:164" }, { "assignments": [98801], "declarations": [{ "constant": false, "id": 98801, "mutability": "mutable", "name": "challengeClockDuration", "nameLocation": "23732:22:164", "nodeType": "VariableDeclaration", "scope": 98983, "src": "23723:31:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 98800, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98799, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "23723:8:164" }, "referencedDeclaration": 103263, "src": "23723:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }], "id": 98805, "initialValue": { "arguments": [{ "id": 98803, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98781, "src": "23779:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 98802, "name": "getChallengerDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99348, "src": "23757:21:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (uint256) view returns (Duration)" } }, "id": 98804, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "23757:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "VariableDeclarationStatement", "src": "23723:68:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 98812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98806, "name": "challengeClockDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98801, "src": "24071:22:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "24071:26:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98808, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "24071:28:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98809, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "24102:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 98810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "24102:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 98811, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "24102:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "24071:55:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98816, "nodeType": "IfStatement", "src": "24067:85:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98813, "name": "ClockNotExpired", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103150, "src": "24135:15:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "24135:17:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98815, "nodeType": "RevertStatement", "src": "24128:24:164" } }, { "condition": { "baseExpression": { "id": 98817, "name": "resolvedSubgames", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97807, "src": "24221:16:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" } }, "id": 98819, "indexExpression": { "id": 98818, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98781, "src": "24238:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "24221:29:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98823, "nodeType": "IfStatement", "src": "24217:64:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98820, "name": "ClaimAlreadyResolved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103174, "src": "24259:20:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98821, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "24259:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98822, "nodeType": "RevertStatement", "src": "24252:29:164" } }, { "assignments": [98828], "declarations": [{ "constant": false, "id": 98828, "mutability": "mutable", "name": "challengeIndices", "nameLocation": "24310:16:164", "nodeType": "VariableDeclaration", "scope": 98983, "src": "24292:34:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 98826, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24292:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 98827, "nodeType": "ArrayTypeName", "src": "24292:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" }], "id": 98832, "initialValue": { "baseExpression": { "id": 98829, "name": "subgames", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97802, "src": "24329:8:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(uint256 => uint256[] storage ref)" } }, "id": 98831, "indexExpression": { "id": 98830, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98781, "src": "24338:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "24329:21:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "24292:58:164" }, { "assignments": [98834], "declarations": [{ "constant": false, "id": 98834, "mutability": "mutable", "name": "challengeIndicesLen", "nameLocation": "24368:19:164", "nodeType": "VariableDeclaration", "scope": 98983, "src": "24360:27:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98833, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24360:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 98837, "initialValue": { "expression": { "id": 98835, "name": "challengeIndices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98828, "src": "24390:16:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[] storage pointer" } }, "id": 98836, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "24390:23:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "24360:53:164" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 98844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98838, "name": "challengeIndicesLen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98834, "src": "24576:19:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 98839, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "24599:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "24576:24:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98841, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98781, "src": "24604:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 98842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "24619:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "24604:16:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "24576:44:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98876, "nodeType": "IfStatement", "src": "24572:805:164", "trueBody": { "id": 98875, "nodeType": "Block", "src": "24622:755:164", "statements": [{ "assignments": [98846], "declarations": [{ "constant": false, "id": 98846, "mutability": "mutable", "name": "counteredBy", "nameLocation": "25095:11:164", "nodeType": "VariableDeclaration", "scope": 98875, "src": "25087:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 98845, "name": "address", "nodeType": "ElementaryTypeName", "src": "25087:7:164", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }], "id": 98849, "initialValue": { "expression": { "id": 98847, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98794, "src": "25109:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98848, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "counteredBy", "nodeType": "MemberAccess", "referencedDeclaration": 100509, "src": "25109:28:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "25087:50:164" }, { "assignments": [98851], "declarations": [{ "constant": false, "id": 98851, "mutability": "mutable", "name": "recipient", "nameLocation": "25159:9:164", "nodeType": "VariableDeclaration", "scope": 98875, "src": "25151:17:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 98850, "name": "address", "nodeType": "ElementaryTypeName", "src": "25151:7:164", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }], "id": 98862, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 98857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98852, "name": "counteredBy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98846, "src": "25171:11:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [{ "hexValue": "30", "id": 98855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25194:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 98854, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25186:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98853, "name": "address", "nodeType": "ElementaryTypeName", "src": "25186:7:164", "typeDescriptions": {} } }, "id": 98856, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25186:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "25171:25:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "id": 98860, "name": "counteredBy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98846, "src": "25227:11:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 98861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "25171:67:164", "trueExpression": { "expression": { "id": 98858, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98794, "src": "25199:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98859, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claimant", "nodeType": "MemberAccess", "referencedDeclaration": 100511, "src": "25199:25:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "25151:87:164" }, { "expression": { "arguments": [{ "id": 98864, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98851, "src": "25268:9:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 98865, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98794, "src": "25279:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" }], "id": 98863, "name": "_distributeBond", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99493, "src": "25252:15:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_struct$_ClaimData_$100523_storage_ptr_$returns$__$", "typeString": "function (address,struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 98866, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25252:44:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98867, "nodeType": "ExpressionStatement", "src": "25252:44:164" }, { "expression": { "id": 98872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 98868, "name": "resolvedSubgames", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97807, "src": "25310:16:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" } }, "id": 98870, "indexExpression": { "id": 98869, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98781, "src": "25327:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "25310:29:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 98871, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "25342:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "25310:36:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98873, "nodeType": "ExpressionStatement", "src": "25310:36:164" }, { "functionReturnParameters": 98783, "id": 98874, "nodeType": "Return", "src": "25360:7:164" }] } }, { "assignments": [98878], "declarations": [{ "constant": false, "id": 98878, "mutability": "mutable", "name": "countered", "nameLocation": "25453:9:164", "nodeType": "VariableDeclaration", "scope": 98983, "src": "25445:17:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 98877, "name": "address", "nodeType": "ElementaryTypeName", "src": "25445:7:164", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }], "id": 98883, "initialValue": { "arguments": [{ "hexValue": "30", "id": 98881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25473:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 98880, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25465:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98879, "name": "address", "nodeType": "ElementaryTypeName", "src": "25465:7:164", "typeDescriptions": {} } }, "id": 98882, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25465:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "25445:30:164" }, { "assignments": [98886], "declarations": [{ "constant": false, "id": 98886, "mutability": "mutable", "name": "leftmostCounter", "nameLocation": "25494:15:164", "nodeType": "VariableDeclaration", "scope": 98983, "src": "25485:24:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 98885, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98884, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "25485:8:164" }, "referencedDeclaration": 103269, "src": "25485:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 98895, "initialValue": { "arguments": [{ "expression": { "arguments": [{ "id": 98891, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25531:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }, "typeName": { "id": 98890, "name": "uint128", "nodeType": "ElementaryTypeName", "src": "25531:7:164", "typeDescriptions": {} } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_type$_t_uint128_$", "typeString": "type(uint128)" }], "id": 98889, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "25526:4:164", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98892, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25526:13:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint128", "typeString": "type(uint128)" } }, "id": 98893, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "max", "nodeType": "MemberAccess", "src": "25526:17:164", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint128", "typeString": "uint128" }], "expression": { "id": 98887, "name": "Position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103269, "src": "25512:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Position_$103269_$", "typeString": "type(Position)" } }, "id": 98888, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "25512:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint128) pure returns (Position)" } }, "id": 98894, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25512:32:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "VariableDeclarationStatement", "src": "25485:59:164" }, { "body": { "id": 98955, "nodeType": "Block", "src": "25604:1079:164", "statements": [{ "assignments": [98907], "declarations": [{ "constant": false, "id": 98907, "mutability": "mutable", "name": "challengeIndex", "nameLocation": "25626:14:164", "nodeType": "VariableDeclaration", "scope": 98955, "src": "25618:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98906, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25618:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 98911, "initialValue": { "baseExpression": { "id": 98908, "name": "challengeIndices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98828, "src": "25643:16:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[] storage pointer" } }, "id": 98910, "indexExpression": { "id": 98909, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98897, "src": "25660:1:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25643:19:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "25618:44:164" }, { "condition": { "id": 98915, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "25763:33:164", "subExpression": { "baseExpression": { "id": 98912, "name": "resolvedSubgames", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97807, "src": "25764:16:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" } }, "id": 98914, "indexExpression": { "id": 98913, "name": "challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98907, "src": "25781:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25764:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98919, "nodeType": "IfStatement", "src": "25759:68:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 98916, "name": "OutOfOrderResolution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103171, "src": "25805:20:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98917, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25805:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98918, "nodeType": "RevertStatement", "src": "25798:29:164" } }, { "assignments": [98922], "declarations": [{ "constant": false, "id": 98922, "mutability": "mutable", "name": "claim", "nameLocation": "25860:5:164", "nodeType": "VariableDeclaration", "scope": 98955, "src": "25842:23:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 98921, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98920, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "25842:9:164" }, "referencedDeclaration": 100523, "src": "25842:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 98926, "initialValue": { "baseExpression": { "id": 98923, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "25868:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 98925, "indexExpression": { "id": 98924, "name": "challengeIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98907, "src": "25878:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25868:25:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "25842:51:164" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 98942, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 98933, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 98927, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98922, "src": "26483:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98928, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "counteredBy", "nodeType": "MemberAccess", "referencedDeclaration": 100509, "src": "26483:17:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [{ "hexValue": "30", "id": 98931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "26512:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 98930, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "26504:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98929, "name": "address", "nodeType": "ElementaryTypeName", "src": "26504:7:164", "typeDescriptions": {} } }, "id": 98932, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26504:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "26483:31:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 98941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 98934, "name": "leftmostCounter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98886, "src": "26518:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "26518:19:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 98936, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26518:21:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 98937, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98922, "src": "26542:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98938, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "26542:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98939, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "26542:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 98940, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26542:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "src": "26518:44:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "26483:79:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98954, "nodeType": "IfStatement", "src": "26479:194:164", "trueBody": { "id": 98953, "nodeType": "Block", "src": "26564:109:164", "statements": [{ "expression": { "id": 98946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98943, "name": "countered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98878, "src": "26582:9:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 98944, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98922, "src": "26594:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98945, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claimant", "nodeType": "MemberAccess", "referencedDeclaration": 100511, "src": "26594:14:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "26582:26:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 98947, "nodeType": "ExpressionStatement", "src": "26582:26:164" }, { "expression": { "id": 98951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98948, "name": "leftmostCounter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98886, "src": "26626:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 98949, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98922, "src": "26644:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98950, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "26644:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "src": "26626:32:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 98952, "nodeType": "ExpressionStatement", "src": "26626:32:164" }] } }] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 98902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98900, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98897, "src": "25574:1:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 98901, "name": "challengeIndicesLen", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98834, "src": "25578:19:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "25574:23:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98956, "initializationExpression": { "assignments": [98897], "declarations": [{ "constant": false, "id": 98897, "mutability": "mutable", "name": "i", "nameLocation": "25567:1:164", "nodeType": "VariableDeclaration", "scope": 98956, "src": "25559:9:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98896, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25559:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 98899, "initialValue": { "hexValue": "30", "id": 98898, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25571:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "25559:13:164" }, "loopExpression": { "expression": { "id": 98904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "25599:3:164", "subExpression": { "id": 98903, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98897, "src": "25601:1:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 98905, "nodeType": "ExpressionStatement", "src": "25599:3:164" }, "nodeType": "ForStatement", "src": "25554:1129:164" }, { "expression": { "arguments": [{ "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 98963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 98958, "name": "countered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98878, "src": "26907:9:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [{ "hexValue": "30", "id": 98961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "26928:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 98960, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "26920:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 98959, "name": "address", "nodeType": "ElementaryTypeName", "src": "26920:7:164", "typeDescriptions": {} } }, "id": 98962, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26920:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "26907:23:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "id": 98966, "name": "countered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98878, "src": "26961:9:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 98967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "26907:63:164", "trueExpression": { "expression": { "id": 98964, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98794, "src": "26933:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98965, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claimant", "nodeType": "MemberAccess", "referencedDeclaration": 100511, "src": "26933:25:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 98968, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98794, "src": "26972:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" }], "id": 98957, "name": "_distributeBond", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99493, "src": "26891:15:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_struct$_ClaimData_$100523_storage_ptr_$returns$__$", "typeString": "function (address,struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 98969, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26891:98:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 98970, "nodeType": "ExpressionStatement", "src": "26891:98:164" }, { "expression": { "id": 98975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 98971, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98794, "src": "27161:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 98973, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "counteredBy", "nodeType": "MemberAccess", "referencedDeclaration": 100509, "src": "27161:28:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 98974, "name": "countered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98878, "src": "27192:9:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "27161:40:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 98976, "nodeType": "ExpressionStatement", "src": "27161:40:164" }, { "expression": { "id": 98981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 98977, "name": "resolvedSubgames", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97807, "src": "27253:16:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" } }, "id": 98979, "indexExpression": { "id": 98978, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98781, "src": "27270:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "27253:29:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 98980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "27285:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "27253:36:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 98982, "nodeType": "ExpressionStatement", "src": "27253:36:164" }] }, "baseFunctions": [100579], "documentation": { "id": 98779, "nodeType": "StructuredDocumentation", "src": "23391:33:164", "text": "@inheritdoc IFaultDisputeGame" }, "functionSelector": "fdffbb28", "implemented": true, "kind": "function", "modifiers": [], "name": "resolveClaim", "nameLocation": "23438:12:164", "parameters": { "id": 98782, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98781, "mutability": "mutable", "name": "_claimIndex", "nameLocation": "23459:11:164", "nodeType": "VariableDeclaration", "scope": 98984, "src": "23451:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 98780, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23451:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "23450:21:164" }, "returnParameters": { "id": 98783, "nodeType": "ParameterList", "parameters": [], "src": "23481:0:164" }, "scope": 99927, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 98997, "nodeType": "FunctionDefinition", "src": "27335:108:164", "nodes": [], "body": { "id": 98996, "nodeType": "Block", "src": "27405:38:164", "nodes": [], "statements": [{ "expression": { "id": 98994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 98992, "name": "gameType_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98990, "src": "27415:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 98993, "name": "GAME_TYPE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97738, "src": "27427:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "src": "27415:21:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "id": 98995, "nodeType": "ExpressionStatement", "src": "27415:21:164" }] }, "baseFunctions": [100281], "documentation": { "id": 98985, "nodeType": "StructuredDocumentation", "src": "27302:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "bbdc02db", "implemented": true, "kind": "function", "modifiers": [], "name": "gameType", "nameLocation": "27344:8:164", "overrides": { "id": 98987, "nodeType": "OverrideSpecifier", "overrides": [], "src": "27367:8:164" }, "parameters": { "id": 98986, "nodeType": "ParameterList", "parameters": [], "src": "27352:2:164" }, "returnParameters": { "id": 98991, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 98990, "mutability": "mutable", "name": "gameType_", "nameLocation": "27394:9:164", "nodeType": "VariableDeclaration", "scope": 98997, "src": "27385:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" }, "typeName": { "id": 98989, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 98988, "name": "GameType", "nodeType": "IdentifierPath", "referencedDeclaration": 103271, "src": "27385:8:164" }, "referencedDeclaration": 103271, "src": "27385:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "visibility": "internal" }], "src": "27384:20:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 99010, "nodeType": "FunctionDefinition", "src": "27482:110:164", "nodes": [], "body": { "id": 99009, "nodeType": "Block", "src": "27544:48:164", "nodes": [], "statements": [{ "expression": { "id": 99007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99003, "name": "creator_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99001, "src": "27554:8:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "hexValue": "30783030", "id": 99005, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "27580:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0x00" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }], "id": 99004, "name": "_getArgAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60423, "src": "27565:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) pure returns (address)" } }, "id": 99006, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27565:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "27554:31:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 99008, "nodeType": "ExpressionStatement", "src": "27554:31:164" }] }, "baseFunctions": [100287], "documentation": { "id": 98998, "nodeType": "StructuredDocumentation", "src": "27449:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "37b1b229", "implemented": true, "kind": "function", "modifiers": [], "name": "gameCreator", "nameLocation": "27491:11:164", "parameters": { "id": 98999, "nodeType": "ParameterList", "parameters": [], "src": "27502:2:164" }, "returnParameters": { "id": 99002, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99001, "mutability": "mutable", "name": "creator_", "nameLocation": "27534:8:164", "nodeType": "VariableDeclaration", "scope": 99010, "src": "27526:16:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 99000, "name": "address", "nodeType": "ElementaryTypeName", "src": "27526:7:164", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }], "src": "27525:18:164" }, "scope": 99927, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { "id": 99027, "nodeType": "FunctionDefinition", "src": "27631:122:164", "nodes": [], "body": { "id": 99026, "nodeType": "Block", "src": "27691:62:164", "nodes": [], "statements": [{ "expression": { "id": 99024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99017, "name": "rootClaim_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99015, "src": "27701:10:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "arguments": [{ "hexValue": "30783134", "id": 99021, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "27740:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20" }, "value": "0x14" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20" }], "id": 99020, "name": "_getArgBytes32", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60474, "src": "27725:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) pure returns (bytes32)" } }, "id": 99022, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27725:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }], "expression": { "id": 99018, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103255, "src": "27714:5:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "type(Claim)" } }, "id": 99019, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "27714:10:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (bytes32) pure returns (Claim)" } }, "id": 99023, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27714:32:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "src": "27701:45:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 99025, "nodeType": "ExpressionStatement", "src": "27701:45:164" }] }, "baseFunctions": [100294], "documentation": { "id": 99011, "nodeType": "StructuredDocumentation", "src": "27598:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "bcef3b55", "implemented": true, "kind": "function", "modifiers": [], "name": "rootClaim", "nameLocation": "27640:9:164", "parameters": { "id": 99012, "nodeType": "ParameterList", "parameters": [], "src": "27649:2:164" }, "returnParameters": { "id": 99016, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99015, "mutability": "mutable", "name": "rootClaim_", "nameLocation": "27679:10:164", "nodeType": "VariableDeclaration", "scope": 99027, "src": "27673:16:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99014, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99013, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "27673:5:164" }, "referencedDeclaration": 103255, "src": "27673:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }], "src": "27672:18:164" }, "scope": 99927, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { "id": 99044, "nodeType": "FunctionDefinition", "src": "27792:111:164", "nodes": [], "body": { "id": 99043, "nodeType": "Block", "src": "27845:58:164", "nodes": [], "statements": [{ "expression": { "id": 99041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99034, "name": "l1Head_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99032, "src": "27855:7:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "arguments": [{ "hexValue": "30783334", "id": 99038, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "27890:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "0x34" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }], "id": 99037, "name": "_getArgBytes32", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60474, "src": "27875:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) pure returns (bytes32)" } }, "id": 99039, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27875:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }], "expression": { "id": 99035, "name": "Hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103253, "src": "27865:4:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "type(Hash)" } }, "id": 99036, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "27865:9:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (bytes32) pure returns (Hash)" } }, "id": 99040, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27865:31:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "src": "27855:41:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 99042, "nodeType": "ExpressionStatement", "src": "27855:41:164" }] }, "baseFunctions": [100301], "documentation": { "id": 99028, "nodeType": "StructuredDocumentation", "src": "27759:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "6361506d", "implemented": true, "kind": "function", "modifiers": [], "name": "l1Head", "nameLocation": "27801:6:164", "parameters": { "id": 99029, "nodeType": "ParameterList", "parameters": [], "src": "27807:2:164" }, "returnParameters": { "id": 99033, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99032, "mutability": "mutable", "name": "l1Head_", "nameLocation": "27836:7:164", "nodeType": "VariableDeclaration", "scope": 99044, "src": "27831:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }, "typeName": { "id": 99031, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99030, "name": "Hash", "nodeType": "IdentifierPath", "referencedDeclaration": 103253, "src": "27831:4:164" }, "referencedDeclaration": 103253, "src": "27831:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "visibility": "internal" }], "src": "27830:14:164" }, "scope": 99927, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { "id": 99058, "nodeType": "FunctionDefinition", "src": "27942:231:164", "nodes": [], "body": { "id": 99057, "nodeType": "Block", "src": "28009:164:164", "nodes": [], "statements": [{ "expression": { "id": 99055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99050, "name": "extraData_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99048, "src": "28129:10:164", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "hexValue": "30783534", "id": 99052, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28155:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_84_by_1", "typeString": "int_const 84" }, "value": "0x54" }, { "hexValue": "30783230", "id": 99053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28161:4:164", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "0x20" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_rational_84_by_1", "typeString": "int_const 84" }, { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }], "id": 99051, "name": "_getArgBytes", "nodeType": "Identifier", "overloadedDeclarations": [60391, 60408], "referencedDeclaration": 60408, "src": "28142:12:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256,uint256) pure returns (bytes memory)" } }, "id": 99054, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28142:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "28129:37:164", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 99056, "nodeType": "ExpressionStatement", "src": "28129:37:164" }] }, "baseFunctions": [100307], "documentation": { "id": 99045, "nodeType": "StructuredDocumentation", "src": "27909:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "609d3334", "implemented": true, "kind": "function", "modifiers": [], "name": "extraData", "nameLocation": "27951:9:164", "parameters": { "id": 99046, "nodeType": "ParameterList", "parameters": [], "src": "27960:2:164" }, "returnParameters": { "id": 99049, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99048, "mutability": "mutable", "name": "extraData_", "nameLocation": "27997:10:164", "nodeType": "VariableDeclaration", "scope": 99058, "src": "27984:23:164", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 99047, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "27984:5:164", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "27983:25:164" }, "scope": 99927, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { "id": 99086, "nodeType": "FunctionDefinition", "src": "28212:213:164", "nodes": [], "body": { "id": 99085, "nodeType": "Block", "src": "28318:107:164", "nodes": [], "statements": [{ "expression": { "id": 99073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99070, "name": "gameType_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99063, "src": "28328:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [], "expression": { "argumentTypes": [], "id": 99071, "name": "gameType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98997, "src": "28340:8:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_userDefinedValueType$_GameType_$103271_$", "typeString": "function () view returns (GameType)" } }, "id": 99072, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28340:10:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "src": "28328:22:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "id": 99074, "nodeType": "ExpressionStatement", "src": "28328:22:164" }, { "expression": { "id": 99078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99075, "name": "rootClaim_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99066, "src": "28360:10:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [], "expression": { "argumentTypes": [], "id": 99076, "name": "rootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99027, "src": "28373:9:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function () pure returns (Claim)" } }, "id": 99077, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28373:11:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "src": "28360:24:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 99079, "nodeType": "ExpressionStatement", "src": "28360:24:164" }, { "expression": { "id": 99083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99080, "name": "extraData_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99068, "src": "28394:10:164", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [], "expression": { "argumentTypes": [], "id": 99081, "name": "extraData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99058, "src": "28407:9:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 99082, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28407:11:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "28394:24:164", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 99084, "nodeType": "ExpressionStatement", "src": "28394:24:164" }] }, "baseFunctions": [100326], "documentation": { "id": 99059, "nodeType": "StructuredDocumentation", "src": "28179:28:164", "text": "@inheritdoc IDisputeGame" }, "functionSelector": "fa24f743", "implemented": true, "kind": "function", "modifiers": [], "name": "gameData", "nameLocation": "28221:8:164", "parameters": { "id": 99060, "nodeType": "ParameterList", "parameters": [], "src": "28229:2:164" }, "returnParameters": { "id": 99069, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99063, "mutability": "mutable", "name": "gameType_", "nameLocation": "28264:9:164", "nodeType": "VariableDeclaration", "scope": 99086, "src": "28255:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" }, "typeName": { "id": 99062, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99061, "name": "GameType", "nodeType": "IdentifierPath", "referencedDeclaration": 103271, "src": "28255:8:164" }, "referencedDeclaration": 103271, "src": "28255:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_GameType_$103271", "typeString": "GameType" } }, "visibility": "internal" }, { "constant": false, "id": 99066, "mutability": "mutable", "name": "rootClaim_", "nameLocation": "28281:10:164", "nodeType": "VariableDeclaration", "scope": 99086, "src": "28275:16:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99065, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99064, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "28275:5:164" }, "referencedDeclaration": 103255, "src": "28275:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99068, "mutability": "mutable", "name": "extraData_", "nameLocation": "28306:10:164", "nodeType": "VariableDeclaration", "scope": 99086, "src": "28293:23:164", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 99067, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "28293:5:164", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "28254:63:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99215, "nodeType": "FunctionDefinition", "src": "28849:2171:164", "nodes": [], "body": { "id": 99214, "nodeType": "Block", "src": "28938:2082:164", "nodes": [], "statements": [{ "assignments": [99096], "declarations": [{ "constant": false, "id": 99096, "mutability": "mutable", "name": "depth", "nameLocation": "28956:5:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "28948:13:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99095, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28948:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99103, "initialValue": { "arguments": [{ "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99099, "name": "_position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99090, "src": "28972:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99100, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "28972:15:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 99101, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28972:17:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint8", "typeString": "uint8" }], "id": 99098, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28964:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 99097, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28964:7:164", "typeDescriptions": {} } }, "id": 99102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28964:26:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "28948:42:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99104, "name": "depth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99096, "src": "29004:5:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 99105, "name": "MAX_GAME_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97723, "src": "29012:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "29004:22:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99110, "nodeType": "IfStatement", "src": "29000:54:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 99107, "name": "GameDepthExceeded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103153, "src": "29035:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 99108, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "29035:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99109, "nodeType": "RevertStatement", "src": "29028:26:164" } }, { "assignments": [99112], "declarations": [{ "constant": false, "id": 99112, "mutability": "mutable", "name": "assumedBaseFee", "nameLocation": "29128:14:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "29120:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99111, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29120:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99114, "initialValue": { "hexValue": "323030", "id": 99113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "29145:8:164", "subdenomination": "gwei", "typeDescriptions": { "typeIdentifier": "t_rational_200000000000_by_1", "typeString": "int_const 200000000000" }, "value": "200" }, "nodeType": "VariableDeclarationStatement", "src": "29120:33:164" }, { "assignments": [99116], "declarations": [{ "constant": false, "id": 99116, "mutability": "mutable", "name": "baseGasCharged", "nameLocation": "29171:14:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "29163:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99115, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29163:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99118, "initialValue": { "hexValue": "3430305f303030", "id": 99117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "29188:7:164", "typeDescriptions": { "typeIdentifier": "t_rational_400000_by_1", "typeString": "int_const 400000" }, "value": "400_000" }, "nodeType": "VariableDeclarationStatement", "src": "29163:32:164" }, { "assignments": [99120], "declarations": [{ "constant": false, "id": 99120, "mutability": "mutable", "name": "highGasCharged", "nameLocation": "29213:14:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "29205:22:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99119, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29205:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99122, "initialValue": { "hexValue": "3230305f3030305f303030", "id": 99121, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "29230:11:164", "typeDescriptions": { "typeIdentifier": "t_rational_200000000_by_1", "typeString": "int_const 200000000" }, "value": "200_000_000" }, "nodeType": "VariableDeclarationStatement", "src": "29205:36:164" }, { "assignments": [99124], "declarations": [{ "constant": false, "id": 99124, "mutability": "mutable", "name": "a", "nameLocation": "29993:1:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "29985:9:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99123, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29985:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99128, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99125, "name": "highGasCharged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99120, "src": "29997:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "id": 99126, "name": "baseGasCharged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99116, "src": "30014:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "29997:31:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "29985:43:164" }, { "assignments": [99130], "declarations": [{ "constant": false, "id": 99130, "mutability": "mutable", "name": "b", "nameLocation": "30046:1:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30038:9:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99129, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30038:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99133, "initialValue": { "expression": { "id": 99131, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30050:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "WAD", "nodeType": "MemberAccess", "referencedDeclaration": 61009, "src": "30050:21:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "30038:33:164" }, { "assignments": [99135], "declarations": [{ "constant": false, "id": 99135, "mutability": "mutable", "name": "c", "nameLocation": "30089:1:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30081:9:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99134, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30081:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99140, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99136, "name": "MAX_GAME_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97723, "src": "30093:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "expression": { "id": 99137, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30110:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "WAD", "nodeType": "MemberAccess", "referencedDeclaration": 61009, "src": "30110:21:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "30093:38:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "30081:50:164" }, { "assignments": [99142], "declarations": [{ "constant": false, "id": 99142, "mutability": "mutable", "name": "lnA", "nameLocation": "30236:3:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30228:11:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99141, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30228:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99156, "initialValue": { "arguments": [{ "arguments": [{ "arguments": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99149, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99124, "src": "30281:1:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "expression": { "id": 99150, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30285:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "WAD", "nodeType": "MemberAccess", "referencedDeclaration": 61009, "src": "30285:21:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "30281:25:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 99148, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30274:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 99147, "name": "int256", "nodeType": "ElementaryTypeName", "src": "30274:6:164", "typeDescriptions": {} } }, "id": 99153, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30274:33:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_int256", "typeString": "int256" }], "expression": { "id": 99145, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30250:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99146, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "lnWad", "nodeType": "MemberAccess", "referencedDeclaration": 61377, "src": "30250:23:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_int256_$", "typeString": "function (int256) pure returns (int256)" } }, "id": 99154, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30250:58:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_int256", "typeString": "int256" }], "id": 99144, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30242:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 99143, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30242:7:164", "typeDescriptions": {} } }, "id": 99155, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30242:67:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "30228:81:164" }, { "assignments": [99158], "declarations": [{ "constant": false, "id": 99158, "mutability": "mutable", "name": "bOverC", "nameLocation": "30394:6:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30386:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30386:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99164, "initialValue": { "arguments": [{ "id": 99161, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99130, "src": "30428:1:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 99162, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99135, "src": "30431:1:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 99159, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30403:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "divWad", "nodeType": "MemberAccess", "referencedDeclaration": 61093, "src": "30403:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 99163, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30403:30:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "30386:47:164" }, { "assignments": [99166], "declarations": [{ "constant": false, "id": 99166, "mutability": "mutable", "name": "numerator", "nameLocation": "30575:9:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30567:17:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99165, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30567:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99172, "initialValue": { "arguments": [{ "id": 99169, "name": "lnA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99142, "src": "30612:3:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 99170, "name": "bOverC", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99158, "src": "30617:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 99167, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30587:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mulWad", "nodeType": "MemberAccess", "referencedDeclaration": 61021, "src": "30587:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 99171, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30587:37:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "30567:57:164" }, { "assignments": [99174], "declarations": [{ "constant": false, "id": 99174, "mutability": "mutable", "name": "base", "nameLocation": "30641:4:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30634:11:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 99173, "name": "int256", "nodeType": "ElementaryTypeName", "src": "30634:6:164", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }], "id": 99182, "initialValue": { "arguments": [{ "arguments": [{ "id": 99179, "name": "numerator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99166, "src": "30680:9:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 99178, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30673:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 99177, "name": "int256", "nodeType": "ElementaryTypeName", "src": "30673:6:164", "typeDescriptions": {} } }, "id": 99180, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30673:17:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_int256", "typeString": "int256" }], "expression": { "id": 99175, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30648:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "expWad", "nodeType": "MemberAccess", "referencedDeclaration": 61367, "src": "30648:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_int256_$", "typeString": "function (int256) pure returns (int256)" } }, "id": 99181, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30648:43:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "30634:57:164" }, { "assignments": [99184], "declarations": [{ "constant": false, "id": 99184, "mutability": "mutable", "name": "rawGas", "nameLocation": "30753:6:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30746:13:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 99183, "name": "int256", "nodeType": "ElementaryTypeName", "src": "30746:6:164", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }], "id": 99196, "initialValue": { "arguments": [{ "id": 99187, "name": "base", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99174, "src": "30787:4:164", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "arguments": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99190, "name": "depth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99096, "src": "30800:5:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "expression": { "id": 99191, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30808:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "WAD", "nodeType": "MemberAccess", "referencedDeclaration": 61009, "src": "30808:21:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "30800:29:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 99189, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30793:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 99188, "name": "int256", "nodeType": "ElementaryTypeName", "src": "30793:6:164", "typeDescriptions": {} } }, "id": 99194, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30793:37:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }], "expression": { "id": 99185, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30762:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "powWad", "nodeType": "MemberAccess", "referencedDeclaration": 61178, "src": "30762:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$", "typeString": "function (int256,int256) pure returns (int256)" } }, "id": 99195, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30762:69:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "30746:85:164" }, { "assignments": [99198], "declarations": [{ "constant": false, "id": 99198, "mutability": "mutable", "name": "requiredGas", "nameLocation": "30849:11:164", "nodeType": "VariableDeclaration", "scope": 99214, "src": "30841:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99197, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30841:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99207, "initialValue": { "arguments": [{ "id": 99201, "name": "baseGasCharged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99116, "src": "30888:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "arguments": [{ "id": 99204, "name": "rawGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99184, "src": "30912:6:164", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_int256", "typeString": "int256" }], "id": 99203, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30904:7:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 99202, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30904:7:164", "typeDescriptions": {} } }, "id": 99205, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30904:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 99199, "name": "FixedPointMathLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62288, "src": "30863:17:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_FixedPointMathLib_$62288_$", "typeString": "type(library FixedPointMathLib)" } }, "id": 99200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mulWad", "nodeType": "MemberAccess", "referencedDeclaration": 61021, "src": "30863:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 99206, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30863:57:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "30841:79:164" }, { "expression": { "id": 99212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99208, "name": "requiredBond_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99093, "src": "30969:13:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99211, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99209, "name": "assumedBaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99112, "src": "30985:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 99210, "name": "requiredGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99198, "src": "31002:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "30985:28:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "30969:44:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99213, "nodeType": "ExpressionStatement", "src": "30969:44:164" }] }, "documentation": { "id": 99087, "nodeType": "StructuredDocumentation", "src": "28639:205:164", "text": "@notice Returns the required bond for a given move kind.\n @param _position The position of the bonded interaction.\n @return requiredBond_ The required ETH bond for the given move, in wei." }, "functionSelector": "c395e1ca", "implemented": true, "kind": "function", "modifiers": [], "name": "getRequiredBond", "nameLocation": "28858:15:164", "parameters": { "id": 99091, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99090, "mutability": "mutable", "name": "_position", "nameLocation": "28883:9:164", "nodeType": "VariableDeclaration", "scope": 99215, "src": "28874:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99089, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99088, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "28874:8:164" }, "referencedDeclaration": 103269, "src": "28874:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "src": "28873:20:164" }, "returnParameters": { "id": 99094, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99093, "mutability": "mutable", "name": "requiredBond_", "nameLocation": "28923:13:164", "nodeType": "VariableDeclaration", "scope": 99215, "src": "28915:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99092, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28915:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "28914:23:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 99264, "nodeType": "FunctionDefinition", "src": "31160:671:164", "nodes": [], "body": { "id": 99263, "nodeType": "Block", "src": "31210:621:164", "nodes": [], "statements": [{ "assignments": [99222], "declarations": [{ "constant": false, "id": 99222, "mutability": "mutable", "name": "recipientCredit", "nameLocation": "31315:15:164", "nodeType": "VariableDeclaration", "scope": 99263, "src": "31307:23:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99221, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31307:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99226, "initialValue": { "baseExpression": { "id": 99223, "name": "credit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97790, "src": "31333:6:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 99225, "indexExpression": { "id": 99224, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99218, "src": "31340:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "31333:18:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "31307:44:164" }, { "expression": { "id": 99231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 99227, "name": "credit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97790, "src": "31361:6:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 99229, "indexExpression": { "id": 99228, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99218, "src": "31368:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "31361:18:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "30", "id": 99230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31382:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "31361:22:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99232, "nodeType": "ExpressionStatement", "src": "31361:22:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99233, "name": "recipientCredit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99222, "src": "31457:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 99234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31476:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "31457:20:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99240, "nodeType": "IfStatement", "src": "31453:75:164", "trueBody": { "id": 99239, "nodeType": "Block", "src": "31479:49:164", "statements": [{ "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 99236, "name": "NoCreditToClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103126, "src": "31500:15:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 99237, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31500:17:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99238, "nodeType": "RevertStatement", "src": "31493:24:164" }] } }, { "expression": { "arguments": [{ "id": 99244, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99218, "src": "31619:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 99245, "name": "recipientCredit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99222, "src": "31631:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 99241, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97742, "src": "31605:4:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "id": 99243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "withdraw", "nodeType": "MemberAccess", "referencedDeclaration": 100224, "src": "31605:13:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, "id": 99246, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31605:42:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99247, "nodeType": "ExpressionStatement", "src": "31605:42:164" }, { "assignments": [99249, null], "declarations": [{ "constant": false, "id": 99249, "mutability": "mutable", "name": "success", "nameLocation": "31713:7:164", "nodeType": "VariableDeclaration", "scope": 99263, "src": "31708:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 99248, "name": "bool", "nodeType": "ElementaryTypeName", "src": "31708:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, null], "id": 99256, "initialValue": { "arguments": [{ "hexValue": "", "id": 99254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "hexString", "lValueRequested": false, "nodeType": "Literal", "src": "31767:5:164", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }], "expression": { "id": 99250, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99218, "src": "31725:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 99251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", "src": "31725:15:164", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 99253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "names": ["value"], "nodeType": "FunctionCallOptions", "options": [{ "id": 99252, "name": "recipientCredit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99222, "src": "31749:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "src": "31725:41:164", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 99255, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31725:48:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "31707:66:164" }, { "condition": { "id": 99258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "31787:8:164", "subExpression": { "id": 99257, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99249, "src": "31788:7:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99262, "nodeType": "IfStatement", "src": "31783:41:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 99259, "name": "BondTransferFailed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103129, "src": "31804:18:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 99260, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31804:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99261, "nodeType": "RevertStatement", "src": "31797:27:164" } }] }, "documentation": { "id": 99216, "nodeType": "StructuredDocumentation", "src": "31026:129:164", "text": "@notice Claim the credit belonging to the recipient address.\n @param _recipient The owner and recipient of the credit." }, "functionSelector": "60e27464", "implemented": true, "kind": "function", "modifiers": [], "name": "claimCredit", "nameLocation": "31169:11:164", "parameters": { "id": 99219, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99218, "mutability": "mutable", "name": "_recipient", "nameLocation": "31189:10:164", "nodeType": "VariableDeclaration", "scope": 99264, "src": "31181:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 99217, "name": "address", "nodeType": "ElementaryTypeName", "src": "31181:7:164", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }], "src": "31180:20:164" }, "returnParameters": { "id": 99220, "nodeType": "ParameterList", "parameters": [], "src": "31210:0:164" }, "scope": 99927, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 99348, "nodeType": "FunctionDefinition", "src": "32166:1011:164", "nodes": [], "body": { "id": 99347, "nodeType": "Block", "src": "32259:918:164", "nodes": [], "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" }, "id": 99276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99273, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97777, "src": "32381:6:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 99274, "name": "GameStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103277, "src": "32391:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_GameStatus_$103277_$", "typeString": "type(enum GameStatus)" } }, "id": 99275, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "IN_PROGRESS", "nodeType": "MemberAccess", "referencedDeclaration": 103274, "src": "32391:22:164", "typeDescriptions": { "typeIdentifier": "t_enum$_GameStatus_$103277", "typeString": "enum GameStatus" } }, "src": "32381:32:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99281, "nodeType": "IfStatement", "src": "32377:89:164", "trueBody": { "id": 99280, "nodeType": "Block", "src": "32415:51:164", "statements": [{ "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 99277, "name": "GameNotInProgress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103144, "src": "32436:17:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 99278, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "32436:19:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99279, "nodeType": "RevertStatement", "src": "32429:26:164" }] } }, { "assignments": [99284], "declarations": [{ "constant": false, "id": 99284, "mutability": "mutable", "name": "subgameRootClaim", "nameLocation": "32535:16:164", "nodeType": "VariableDeclaration", "scope": 99347, "src": "32517:34:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99283, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99282, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "32517:9:164" }, "referencedDeclaration": 100523, "src": "32517:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 99288, "initialValue": { "baseExpression": { "id": 99285, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "32554:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 99287, "indexExpression": { "id": 99286, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99267, "src": "32564:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "32554:22:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "32517:59:164" }, { "assignments": [99291], "declarations": [{ "constant": false, "id": 99291, "mutability": "mutable", "name": "parentClock", "nameLocation": "32664:11:164", "nodeType": "VariableDeclaration", "scope": 99347, "src": "32658:17:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" }, "typeName": { "id": 99290, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99289, "name": "Clock", "nodeType": "IdentifierPath", "referencedDeclaration": 103267, "src": "32658:5:164" }, "referencedDeclaration": 103267, "src": "32658:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "visibility": "internal" }], "id": 99292, "nodeType": "VariableDeclarationStatement", "src": "32658:17:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 99300, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 99293, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99284, "src": "32689:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99294, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentIndex", "nodeType": "MemberAccess", "referencedDeclaration": 100507, "src": "32689:28:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "arguments": [{ "id": 99297, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "32726:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 99296, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "32726:6:164", "typeDescriptions": {} } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }], "id": 99295, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "32721:4:164", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 99298, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "32721:12:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_uint32", "typeString": "type(uint32)" } }, "id": 99299, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "max", "nodeType": "MemberAccess", "src": "32721:16:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "32689:48:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99310, "nodeType": "IfStatement", "src": "32685:138:164", "trueBody": { "id": 99309, "nodeType": "Block", "src": "32739:84:164", "statements": [{ "expression": { "id": 99307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99301, "name": "parentClock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99291, "src": "32753:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "baseExpression": { "id": 99302, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "32767:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 99305, "indexExpression": { "expression": { "id": 99303, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99284, "src": "32777:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99304, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentIndex", "nodeType": "MemberAccess", "referencedDeclaration": 100507, "src": "32777:28:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "32767:39:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "id": 99306, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "clock", "nodeType": "MemberAccess", "referencedDeclaration": 100522, "src": "32767:45:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "src": "32753:59:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "id": 99308, "nodeType": "ExpressionStatement", "src": "32753:59:164" }] } }, { "assignments": [99312], "declarations": [{ "constant": false, "id": 99312, "mutability": "mutable", "name": "challengeDuration", "nameLocation": "32917:17:164", "nodeType": "VariableDeclaration", "scope": 99347, "src": "32910:24:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 99311, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "32910:6:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }], "id": 99332, "initialValue": { "arguments": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99315, "name": "parentClock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99291, "src": "32956:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "id": 99316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "duration", "nodeType": "MemberAccess", "referencedDeclaration": 101049, "src": "32956:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Clock_$103267_$returns$_t_userDefinedValueType$_Duration_$103263_$bound_to$_t_userDefinedValueType$_Clock_$103267_$", "typeString": "function (Clock) pure returns (Duration)" } }, "id": 99317, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "32956:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 99318, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "32956:26:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 99319, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "32956:28:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 99320, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "32988:5:164", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 99321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "src": "32988:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99322, "name": "subgameRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99284, "src": "33006:16:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99323, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "clock", "nodeType": "MemberAccess", "referencedDeclaration": 100522, "src": "33006:22:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Clock_$103267", "typeString": "Clock" } }, "id": 99324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 101061, "src": "33006:32:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Clock_$103267_$returns$_t_userDefinedValueType$_Timestamp_$103261_$bound_to$_t_userDefinedValueType$_Clock_$103267_$", "typeString": "function (Clock) pure returns (Timestamp)" } }, "id": 99325, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33006:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$103261", "typeString": "Timestamp" } }, "id": 99326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101124, "src": "33006:38:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$103261_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Timestamp_$103261_$", "typeString": "function (Timestamp) pure returns (uint64)" } }, "id": 99327, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33006:40:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "32988:58:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 99329, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "32987:60:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "32956:91:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 99314, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "32949:6:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint64_$", "typeString": "type(uint64)" }, "typeName": { "id": 99313, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "32949:6:164", "typeDescriptions": {} } }, "id": 99331, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "32949:99:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "VariableDeclarationStatement", "src": "32910:138:164" }, { "expression": { "id": 99345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99333, "name": "duration_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99271, "src": "33058:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 99338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99334, "name": "challengeDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99312, "src": "33070:17:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99335, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "33090:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 99336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101098, "src": "33090:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Duration_$103263_$returns$_t_uint64_$bound_to$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (Duration) pure returns (uint64)" } }, "id": 99337, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33090:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "33070:44:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "arguments": [{ "id": 99342, "name": "challengeDuration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99312, "src": "33152:17:164", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint64", "typeString": "uint64" }], "expression": { "id": 99340, "name": "Duration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103263, "src": "33138:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "type(Duration)" } }, "id": 99341, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "33138:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint64_$returns$_t_userDefinedValueType$_Duration_$103263_$", "typeString": "function (uint64) pure returns (Duration)" } }, "id": 99343, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33138:32:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 99344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "33070:100:164", "trueExpression": { "id": 99339, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "33117:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "src": "33058:112:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 99346, "nodeType": "ExpressionStatement", "src": "33058:112:164" }] }, "documentation": { "id": 99265, "nodeType": "StructuredDocumentation", "src": "31837:324:164", "text": "@notice Returns the amount of time elapsed on the potential challenger to `_claimIndex`'s chess clock. Maxes\n         out at `MAX_CLOCK_DURATION`.\n @param _claimIndex The index of the subgame root claim.\n @return duration_ The time elapsed on the potential challenger to `_claimIndex`'s chess clock." }, "functionSelector": "bd8da956", "implemented": true, "kind": "function", "modifiers": [], "name": "getChallengerDuration", "nameLocation": "32175:21:164", "parameters": { "id": 99268, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99267, "mutability": "mutable", "name": "_claimIndex", "nameLocation": "32205:11:164", "nodeType": "VariableDeclaration", "scope": 99348, "src": "32197:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99266, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32197:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "32196:21:164" }, "returnParameters": { "id": 99272, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99271, "mutability": "mutable", "name": "duration_", "nameLocation": "32248:9:164", "nodeType": "VariableDeclaration", "scope": 99348, "src": "32239:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 99270, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99269, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "32239:8:164" }, "referencedDeclaration": 103263, "src": "32239:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }], "src": "32238:20:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 99360, "nodeType": "FunctionDefinition", "src": "33244:101:164", "nodes": [], "body": { "id": 99359, "nodeType": "Block", "src": "33305:40:164", "nodes": [], "statements": [{ "expression": { "id": 99357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99354, "name": "len_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99352, "src": "33315:4:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 99355, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "33322:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 99356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "33322:16:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "33315:23:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99358, "nodeType": "ExpressionStatement", "src": "33315:23:164" }] }, "documentation": { "id": 99349, "nodeType": "StructuredDocumentation", "src": "33183:56:164", "text": "@notice Returns the length of the `claimData` array." }, "functionSelector": "8980e0cc", "implemented": true, "kind": "function", "modifiers": [], "name": "claimDataLen", "nameLocation": "33253:12:164", "parameters": { "id": 99350, "nodeType": "ParameterList", "parameters": [], "src": "33265:2:164" }, "returnParameters": { "id": 99353, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99352, "mutability": "mutable", "name": "len_", "nameLocation": "33299:4:164", "nodeType": "VariableDeclaration", "scope": 99360, "src": "33291:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99351, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "33291:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "33290:14:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99372, "nodeType": "FunctionDefinition", "src": "33631:130:164", "nodes": [], "body": { "id": 99371, "nodeType": "Block", "src": "33707:54:164", "nodes": [], "statements": [{ "expression": { "id": 99369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99367, "name": "absolutePrestate_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99365, "src": "33717:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99368, "name": "ABSOLUTE_PRESTATE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97720, "src": "33737:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "src": "33717:37:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 99370, "nodeType": "ExpressionStatement", "src": "33717:37:164" }] }, "documentation": { "id": 99361, "nodeType": "StructuredDocumentation", "src": "33559:67:164", "text": "@notice Returns the absolute prestate of the instruction trace." }, "functionSelector": "8d450a95", "implemented": true, "kind": "function", "modifiers": [], "name": "absolutePrestate", "nameLocation": "33640:16:164", "parameters": { "id": 99362, "nodeType": "ParameterList", "parameters": [], "src": "33656:2:164" }, "returnParameters": { "id": 99366, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99365, "mutability": "mutable", "name": "absolutePrestate_", "nameLocation": "33688:17:164", "nodeType": "VariableDeclaration", "scope": 99372, "src": "33682:23:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99364, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99363, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "33682:5:164" }, "referencedDeclaration": 103255, "src": "33682:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }], "src": "33681:25:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99383, "nodeType": "FunctionDefinition", "src": "33811:117:164", "nodes": [], "body": { "id": 99382, "nodeType": "Block", "src": "33881:47:164", "nodes": [], "statements": [{ "expression": { "id": 99380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99378, "name": "maxGameDepth_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99376, "src": "33891:13:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99379, "name": "MAX_GAME_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97723, "src": "33907:14:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "33891:30:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99381, "nodeType": "ExpressionStatement", "src": "33891:30:164" }] }, "documentation": { "id": 99373, "nodeType": "StructuredDocumentation", "src": "33767:39:164", "text": "@notice Returns the max game depth." }, "functionSelector": "fa315aa9", "implemented": true, "kind": "function", "modifiers": [], "name": "maxGameDepth", "nameLocation": "33820:12:164", "parameters": { "id": 99374, "nodeType": "ParameterList", "parameters": [], "src": "33832:2:164" }, "returnParameters": { "id": 99377, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99376, "mutability": "mutable", "name": "maxGameDepth_", "nameLocation": "33866:13:164", "nodeType": "VariableDeclaration", "scope": 99383, "src": "33858:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99375, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "33858:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "33857:23:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99394, "nodeType": "FunctionDefinition", "src": "33975:108:164", "nodes": [], "body": { "id": 99393, "nodeType": "Block", "src": "34041:42:164", "nodes": [], "statements": [{ "expression": { "id": 99391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99389, "name": "splitDepth_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99387, "src": "34051:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99390, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "34065:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34051:25:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99392, "nodeType": "ExpressionStatement", "src": "34051:25:164" }] }, "documentation": { "id": 99384, "nodeType": "StructuredDocumentation", "src": "33934:36:164", "text": "@notice Returns the split depth." }, "functionSelector": "ec5e6308", "implemented": true, "kind": "function", "modifiers": [], "name": "splitDepth", "nameLocation": "33984:10:164", "parameters": { "id": 99385, "nodeType": "ParameterList", "parameters": [], "src": "33994:2:164" }, "returnParameters": { "id": 99388, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99387, "mutability": "mutable", "name": "splitDepth_", "nameLocation": "34028:11:164", "nodeType": "VariableDeclaration", "scope": 99394, "src": "34020:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99386, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "34020:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "34019:21:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99406, "nodeType": "FunctionDefinition", "src": "34137:134:164", "nodes": [], "body": { "id": 99405, "nodeType": "Block", "src": "34216:55:164", "nodes": [], "statements": [{ "expression": { "id": 99403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99401, "name": "maxClockDuration_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99399, "src": "34226:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99402, "name": "MAX_CLOCK_DURATION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97730, "src": "34246:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "src": "34226:38:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 99404, "nodeType": "ExpressionStatement", "src": "34226:38:164" }] }, "documentation": { "id": 99395, "nodeType": "StructuredDocumentation", "src": "34089:43:164", "text": "@notice Returns the max clock duration." }, "functionSelector": "dabd396d", "implemented": true, "kind": "function", "modifiers": [], "name": "maxClockDuration", "nameLocation": "34146:16:164", "parameters": { "id": 99396, "nodeType": "ParameterList", "parameters": [], "src": "34162:2:164" }, "returnParameters": { "id": 99400, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99399, "mutability": "mutable", "name": "maxClockDuration_", "nameLocation": "34197:17:164", "nodeType": "VariableDeclaration", "scope": 99406, "src": "34188:26:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 99398, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99397, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "34188:8:164" }, "referencedDeclaration": 103263, "src": "34188:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }], "src": "34187:28:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99418, "nodeType": "FunctionDefinition", "src": "34331:125:164", "nodes": [], "body": { "id": 99417, "nodeType": "Block", "src": "34406:50:164", "nodes": [], "statements": [{ "expression": { "id": 99415, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99413, "name": "clockExtension_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99411, "src": "34416:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99414, "name": "CLOCK_EXTENSION", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97753, "src": "34434:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "src": "34416:33:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "id": 99416, "nodeType": "ExpressionStatement", "src": "34416:33:164" }] }, "documentation": { "id": 99407, "nodeType": "StructuredDocumentation", "src": "34277:49:164", "text": "@notice Returns the clock extension constant." }, "functionSelector": "6b6716c0", "implemented": true, "kind": "function", "modifiers": [], "name": "clockExtension", "nameLocation": "34340:14:164", "parameters": { "id": 99408, "nodeType": "ParameterList", "parameters": [], "src": "34354:2:164" }, "returnParameters": { "id": 99412, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99411, "mutability": "mutable", "name": "clockExtension_", "nameLocation": "34389:15:164", "nodeType": "VariableDeclaration", "scope": 99418, "src": "34380:24:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" }, "typeName": { "id": 99410, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99409, "name": "Duration", "nodeType": "IdentifierPath", "referencedDeclaration": 103263, "src": "34380:8:164" }, "referencedDeclaration": 103263, "src": "34380:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Duration_$103263", "typeString": "Duration" } }, "visibility": "internal" }], "src": "34379:26:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99430, "nodeType": "FunctionDefinition", "src": "34509:79:164", "nodes": [], "body": { "id": 99429, "nodeType": "Block", "src": "34563:25:164", "nodes": [], "statements": [{ "expression": { "id": 99427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99425, "name": "vm_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99423, "src": "34573:3:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99426, "name": "VM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97734, "src": "34579:2:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "src": "34573:8:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "id": 99428, "nodeType": "ExpressionStatement", "src": "34573:8:164" }] }, "documentation": { "id": 99419, "nodeType": "StructuredDocumentation", "src": "34462:42:164", "text": "@notice Returns the address of the VM." }, "functionSelector": "3a768463", "implemented": true, "kind": "function", "modifiers": [], "name": "vm", "nameLocation": "34518:2:164", "parameters": { "id": 99420, "nodeType": "ParameterList", "parameters": [], "src": "34520:2:164" }, "returnParameters": { "id": 99424, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99423, "mutability": "mutable", "name": "vm_", "nameLocation": "34558:3:164", "nodeType": "VariableDeclaration", "scope": 99430, "src": "34546:15:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" }, "typeName": { "id": 99422, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99421, "name": "IBigStepper", "nodeType": "IdentifierPath", "referencedDeclaration": 100171, "src": "34546:11:164" }, "referencedDeclaration": 100171, "src": "34546:11:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IBigStepper_$100171", "typeString": "contract IBigStepper" } }, "visibility": "internal" }], "src": "34545:17:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99442, "nodeType": "FunctionDefinition", "src": "34653:88:164", "nodes": [], "body": { "id": 99441, "nodeType": "Block", "src": "34712:29:164", "nodes": [], "statements": [{ "expression": { "id": 99439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99437, "name": "weth_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99435, "src": "34722:5:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99438, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97742, "src": "34730:4:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "src": "34722:12:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "id": 99440, "nodeType": "ExpressionStatement", "src": "34722:12:164" }] }, "documentation": { "id": 99431, "nodeType": "StructuredDocumentation", "src": "34594:54:164", "text": "@notice Returns the WETH contract for holding ETH." }, "functionSelector": "3fc8cef3", "implemented": true, "kind": "function", "modifiers": [], "name": "weth", "nameLocation": "34662:4:164", "parameters": { "id": 99432, "nodeType": "ParameterList", "parameters": [], "src": "34666:2:164" }, "returnParameters": { "id": 99436, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99435, "mutability": "mutable", "name": "weth_", "nameLocation": "34705:5:164", "nodeType": "VariableDeclaration", "scope": 99442, "src": "34692:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" }, "typeName": { "id": 99434, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99433, "name": "IDelayedWETH", "nodeType": "IdentifierPath", "referencedDeclaration": 100239, "src": "34692:12:164" }, "referencedDeclaration": 100239, "src": "34692:12:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "visibility": "internal" }], "src": "34691:20:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99454, "nodeType": "FunctionDefinition", "src": "34807:136:164", "nodes": [], "body": { "id": 99453, "nodeType": "Block", "src": "34893:50:164", "nodes": [], "statements": [{ "expression": { "id": 99451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99449, "name": "registry_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99447, "src": "34903:9:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99450, "name": "ANCHOR_STATE_REGISTRY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97746, "src": "34915:21:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "src": "34903:33:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "id": 99452, "nodeType": "ExpressionStatement", "src": "34903:33:164" }] }, "documentation": { "id": 99443, "nodeType": "StructuredDocumentation", "src": "34747:55:164", "text": "@notice Returns the anchor state registry contract." }, "functionSelector": "5c0cba33", "implemented": true, "kind": "function", "modifiers": [], "name": "anchorStateRegistry", "nameLocation": "34816:19:164", "parameters": { "id": 99444, "nodeType": "ParameterList", "parameters": [], "src": "34835:2:164" }, "returnParameters": { "id": 99448, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99447, "mutability": "mutable", "name": "registry_", "nameLocation": "34882:9:164", "nodeType": "VariableDeclaration", "scope": 99454, "src": "34861:30:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" }, "typeName": { "id": 99446, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99445, "name": "IAnchorStateRegistry", "nodeType": "IdentifierPath", "referencedDeclaration": 100146, "src": "34861:20:164" }, "referencedDeclaration": 100146, "src": "34861:20:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IAnchorStateRegistry_$100146", "typeString": "contract IAnchorStateRegistry" } }, "visibility": "internal" }], "src": "34860:32:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99465, "nodeType": "FunctionDefinition", "src": "35032:105:164", "nodes": [], "body": { "id": 99464, "nodeType": "Block", "src": "35096:41:164", "nodes": [], "statements": [{ "expression": { "id": 99462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99460, "name": "l2ChainId_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99458, "src": "35106:10:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99461, "name": "L2_CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97749, "src": "35119:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35106:24:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99463, "nodeType": "ExpressionStatement", "src": "35106:24:164" }] }, "documentation": { "id": 99455, "nodeType": "StructuredDocumentation", "src": "34949:78:164", "text": "@notice Returns the chain ID of the L2 network this contract argues about." }, "functionSelector": "d6ae3cd5", "implemented": true, "kind": "function", "modifiers": [], "name": "l2ChainId", "nameLocation": "35041:9:164", "parameters": { "id": 99456, "nodeType": "ParameterList", "parameters": [], "src": "35050:2:164" }, "returnParameters": { "id": 99459, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99458, "mutability": "mutable", "name": "l2ChainId_", "nameLocation": "35084:10:164", "nodeType": "VariableDeclaration", "scope": 99465, "src": "35076:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99457, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35076:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "35075:20:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 99493, "nodeType": "FunctionDefinition", "src": "35528:361:164", "nodes": [], "body": { "id": 99492, "nodeType": "Block", "src": "35609:280:164", "nodes": [], "statements": [{ "assignments": [99475], "declarations": [{ "constant": false, "id": 99475, "mutability": "mutable", "name": "bond", "nameLocation": "35714:4:164", "nodeType": "VariableDeclaration", "scope": 99492, "src": "35706:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99474, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35706:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99478, "initialValue": { "expression": { "id": 99476, "name": "_bonded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99471, "src": "35721:7:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99477, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bond", "nodeType": "MemberAccess", "referencedDeclaration": 100513, "src": "35721:12:164", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "VariableDeclarationStatement", "src": "35706:27:164" }, { "expression": { "id": 99483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 99479, "name": "credit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97790, "src": "35788:6:164", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 99481, "indexExpression": { "id": 99480, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99468, "src": "35795:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "35788:18:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "id": 99482, "name": "bond", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99475, "src": "35810:4:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35788:26:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99484, "nodeType": "ExpressionStatement", "src": "35788:26:164" }, { "expression": { "arguments": [{ "id": 99488, "name": "_recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99468, "src": "35865:10:164", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 99489, "name": "bond", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99475, "src": "35877:4:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 99485, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97742, "src": "35853:4:164", "typeDescriptions": { "typeIdentifier": "t_contract$_IDelayedWETH_$100239", "typeString": "contract IDelayedWETH" } }, "id": 99487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "unlock", "nodeType": "MemberAccess", "referencedDeclaration": 100216, "src": "35853:11:164", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, "id": 99490, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "35853:29:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99491, "nodeType": "ExpressionStatement", "src": "35853:29:164" }] }, "documentation": { "id": 99466, "nodeType": "StructuredDocumentation", "src": "35351:172:164", "text": "@notice Pays out the bond of a claim to a given recipient.\n @param _recipient The recipient of the bond.\n @param _bonded The claim to pay out the bond of." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_distributeBond", "nameLocation": "35537:15:164", "parameters": { "id": 99472, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99468, "mutability": "mutable", "name": "_recipient", "nameLocation": "35561:10:164", "nodeType": "VariableDeclaration", "scope": 99493, "src": "35553:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 99467, "name": "address", "nodeType": "ElementaryTypeName", "src": "35553:7:164", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 99471, "mutability": "mutable", "name": "_bonded", "nameLocation": "35591:7:164", "nodeType": "VariableDeclaration", "scope": 99493, "src": "35573:25:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99470, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99469, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "35573:9:164" }, "referencedDeclaration": 100523, "src": "35573:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "src": "35552:47:164" }, "returnParameters": { "id": 99473, "nodeType": "ParameterList", "parameters": [], "src": "35609:0:164" }, "scope": 99927, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 99587, "nodeType": "FunctionDefinition", "src": "36108:1977:164", "nodes": [], "body": { "id": 99586, "nodeType": "Block", "src": "36289:1796:164", "nodes": [], "statements": [{ "assignments": [99509], "declarations": [{ "constant": false, "id": 99509, "mutability": "mutable", "name": "disputedLeafPos", "nameLocation": "36869:15:164", "nodeType": "VariableDeclaration", "scope": 99586, "src": "36860:24:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99508, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99507, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "36860:8:164" }, "referencedDeclaration": 103269, "src": "36860:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 99518, "initialValue": { "arguments": [{ "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 99516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99512, "name": "_parentPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99502, "src": "36901:10:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "36901:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99514, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "36901:16:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 99515, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "36920:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "36901:20:164", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint128", "typeString": "uint128" }], "expression": { "id": 99510, "name": "Position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103269, "src": "36887:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Position_$103269_$", "typeString": "type(Position)" } }, "id": 99511, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "36887:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint128) pure returns (Position)" } }, "id": 99517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "36887:35:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "VariableDeclarationStatement", "src": "36860:62:164" }, { "assignments": [99521], "declarations": [{ "constant": false, "id": 99521, "mutability": "mutable", "name": "disputed", "nameLocation": "36950:8:164", "nodeType": "VariableDeclaration", "scope": 99586, "src": "36932:26:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99520, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99519, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "36932:9:164" }, "referencedDeclaration": 100523, "src": "36932:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 99527, "initialValue": { "arguments": [{ "id": 99523, "name": "disputedLeafPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99509, "src": "36988:15:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 99524, "name": "_parentIdx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99499, "src": "37013:10:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "74727565", "id": 99525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "37034:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 99522, "name": "_findTraceAncestor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99638, "src": "36961:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$", "typeString": "function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 99526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": ["_pos", "_start", "_global"], "nodeType": "FunctionCall", "src": "36961:80:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "VariableDeclarationStatement", "src": "36932:109:164" }, { "assignments": [99529], "declarations": [{ "constant": false, "id": 99529, "mutability": "mutable", "name": "vmStatus", "nameLocation": "37057:8:164", "nodeType": "VariableDeclaration", "scope": 99586, "src": "37051:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "typeName": { "id": 99528, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "37051:5:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "visibility": "internal" }], "id": 99538, "initialValue": { "arguments": [{ "baseExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99532, "name": "_rootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99497, "src": "37074:10:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 99533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101085, "src": "37074:14:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (Claim) pure returns (bytes32)" } }, "id": 99534, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "37074:16:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 99536, "indexExpression": { "hexValue": "30", "id": 99535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37091:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "37074:19:164", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes1", "typeString": "bytes1" }], "id": 99531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "37068:5:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { "id": 99530, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "37068:5:164", "typeDescriptions": {} } }, "id": 99537, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "37068:26:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", "src": "37051:43:164" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 99550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99539, "name": "_isAttack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99504, "src": "37109:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 99545, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99540, "name": "disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99521, "src": "37122:8:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99541, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "37122:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "37122:23:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 99543, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "37122:25:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "hexValue": "32", "id": 99544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37150:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "37122:29:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99546, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "37155:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "hexValue": "32", "id": 99547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37169:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "37155:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "37122:48:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "37109:61:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 99578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99573, "name": "vmStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99529, "src": "37816:8:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99574, "name": "VMStatuses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103351, "src": "37828:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_VMStatuses_$103351_$", "typeString": "type(library VMStatuses)" } }, "id": 99575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "VALID", "nodeType": "MemberAccess", "referencedDeclaration": 103326, "src": "37828:16:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VMStatus_$103273", "typeString": "VMStatus" } }, "id": 99576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101137, "src": "37828:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_VMStatus_$103273_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_VMStatus_$103273_$", "typeString": "function (VMStatus) pure returns (uint8)" } }, "id": 99577, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "37828:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "37816:34:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99584, "nodeType": "IfStatement", "src": "37812:267:164", "trueBody": { "id": 99583, "nodeType": "Block", "src": "37852:227:164", "statements": [{ "errorCall": { "arguments": [{ "id": 99580, "name": "_rootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99497, "src": "38057:10:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }], "id": 99579, "name": "UnexpectedRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103117, "src": "38037:19:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_userDefinedValueType$_Claim_$103255_$returns$__$", "typeString": "function (Claim) pure" } }, "id": 99581, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "38037:31:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99582, "nodeType": "RevertStatement", "src": "38030:38:164" }] } }, "id": 99585, "nodeType": "IfStatement", "src": "37105:974:164", "trueBody": { "id": 99572, "nodeType": "Block", "src": "37172:634:164", "statements": [{ "condition": { "id": 99565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "37646:77:164", "subExpression": { "components": [{ "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 99563, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 99556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99551, "name": "vmStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99529, "src": "37648:8:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99552, "name": "VMStatuses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103351, "src": "37660:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_VMStatuses_$103351_$", "typeString": "type(library VMStatuses)" } }, "id": 99553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "INVALID", "nodeType": "MemberAccess", "referencedDeclaration": 103334, "src": "37660:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VMStatus_$103273", "typeString": "VMStatus" } }, "id": 99554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101137, "src": "37660:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_VMStatus_$103273_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_VMStatus_$103273_$", "typeString": "function (VMStatus) pure returns (uint8)" } }, "id": 99555, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "37660:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "37648:36:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 99562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99557, "name": "vmStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99529, "src": "37688:8:164", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99558, "name": "VMStatuses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103351, "src": "37700:10:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_VMStatuses_$103351_$", "typeString": "type(library VMStatuses)" } }, "id": 99559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PANIC", "nodeType": "MemberAccess", "referencedDeclaration": 103342, "src": "37700:16:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VMStatus_$103273", "typeString": "VMStatus" } }, "id": 99560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101137, "src": "37700:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_VMStatus_$103273_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_VMStatus_$103273_$", "typeString": "function (VMStatus) pure returns (uint8)" } }, "id": 99561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "37700:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "37688:34:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "37648:74:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }], "id": 99564, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "37647:76:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99571, "nodeType": "IfStatement", "src": "37642:154:164", "trueBody": { "id": 99570, "nodeType": "Block", "src": "37725:71:164", "statements": [{ "errorCall": { "arguments": [{ "id": 99567, "name": "_rootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99497, "src": "37770:10:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }], "id": 99566, "name": "UnexpectedRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103117, "src": "37750:19:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_userDefinedValueType$_Claim_$103255_$returns$__$", "typeString": "function (Claim) pure" } }, "id": 99568, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "37750:31:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99569, "nodeType": "RevertStatement", "src": "37743:38:164" }] } }] } }] }, "documentation": { "id": 99494, "nodeType": "StructuredDocumentation", "src": "35895:208:164", "text": "@notice Verifies the integrity of an execution bisection subgame's root claim. Reverts if the claim\n         is invalid.\n @param _rootClaim The root claim of the execution bisection subgame." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_verifyExecBisectionRoot", "nameLocation": "36117:24:164", "parameters": { "id": 99505, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99497, "mutability": "mutable", "name": "_rootClaim", "nameLocation": "36157:10:164", "nodeType": "VariableDeclaration", "scope": 99587, "src": "36151:16:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99496, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99495, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "36151:5:164" }, "referencedDeclaration": 103255, "src": "36151:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99499, "mutability": "mutable", "name": "_parentIdx", "nameLocation": "36185:10:164", "nodeType": "VariableDeclaration", "scope": 99587, "src": "36177:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99498, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36177:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 99502, "mutability": "mutable", "name": "_parentPos", "nameLocation": "36214:10:164", "nodeType": "VariableDeclaration", "scope": 99587, "src": "36205:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99501, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99500, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "36205:8:164" }, "referencedDeclaration": 103269, "src": "36205:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "constant": false, "id": 99504, "mutability": "mutable", "name": "_isAttack", "nameLocation": "36239:9:164", "nodeType": "VariableDeclaration", "scope": 99587, "src": "36234:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 99503, "name": "bool", "nodeType": "ElementaryTypeName", "src": "36234:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }], "src": "36141:113:164" }, "returnParameters": { "id": 99506, "nodeType": "ParameterList", "parameters": [], "src": "36289:0:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 99638, "nodeType": "FunctionDefinition", "src": "38605:677:164", "nodes": [], "body": { "id": 99637, "nodeType": "Block", "src": "38788:494:164", "nodes": [], "statements": [{ "assignments": [99603], "declarations": [{ "constant": false, "id": 99603, "mutability": "mutable", "name": "traceAncestorPos", "nameLocation": "38863:16:164", "nodeType": "VariableDeclaration", "scope": 99637, "src": "38854:25:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99602, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99601, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "38854:8:164" }, "referencedDeclaration": 103269, "src": "38854:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 99613, "initialValue": { "condition": { "id": 99604, "name": "_global", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99595, "src": "38882:7:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "arguments": [{ "id": 99610, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "38941:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "expression": { "id": 99608, "name": "_pos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99591, "src": "38915:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "traceAncestorBounded", "nodeType": "MemberAccess", "referencedDeclaration": 100992, "src": "38915:25:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position,uint256) pure returns (Position)" } }, "id": 99611, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "38915:38:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "38882:71:164", "trueExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99605, "name": "_pos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99591, "src": "38892:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "traceAncestor", "nodeType": "MemberAccess", "referencedDeclaration": 100948, "src": "38892:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (Position)" } }, "id": 99607, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "38892:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "nodeType": "VariableDeclarationStatement", "src": "38854:99:164" }, { "expression": { "id": 99618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99614, "name": "ancestor_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99599, "src": "39109:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 99615, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "39121:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 99617, "indexExpression": { "id": 99616, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99593, "src": "39131:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "39121:17:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "src": "39109:29:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99619, "nodeType": "ExpressionStatement", "src": "39109:29:164" }, { "body": { "id": 99635, "nodeType": "Block", "src": "39207:69:164", "statements": [{ "expression": { "id": 99633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99628, "name": "ancestor_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99599, "src": "39221:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 99629, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "39233:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 99632, "indexExpression": { "expression": { "id": 99630, "name": "ancestor_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99599, "src": "39243:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99631, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentIndex", "nodeType": "MemberAccess", "referencedDeclaration": 100507, "src": "39243:21:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "39233:32:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "src": "39221:44:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99634, "nodeType": "ExpressionStatement", "src": "39221:44:164" }] }, "condition": { "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 99627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99620, "name": "ancestor_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99599, "src": "39155:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99621, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "39155:18:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "39155:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99623, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "39155:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99624, "name": "traceAncestorPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99603, "src": "39183:16:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "39183:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99626, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "39183:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "src": "39155:50:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99636, "nodeType": "WhileStatement", "src": "39148:128:164" }] }, "documentation": { "id": 99588, "nodeType": "StructuredDocumentation", "src": "38091:509:164", "text": "@notice Finds the trace ancestor of a given position within the DAG.\n @param _pos The position to find the trace ancestor claim of.\n @param _start The index to start searching from.\n @param _global Whether or not to search the entire dag or just within an execution trace subgame. If set to\n                `true`, and `_pos` is at or above the split depth, this function will revert.\n @return ancestor_ The ancestor claim that commits to the same trace index as `_pos`." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_findTraceAncestor", "nameLocation": "38614:18:164", "parameters": { "id": 99596, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99591, "mutability": "mutable", "name": "_pos", "nameLocation": "38651:4:164", "nodeType": "VariableDeclaration", "scope": 99638, "src": "38642:13:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99590, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99589, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "38642:8:164" }, "referencedDeclaration": 103269, "src": "38642:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "constant": false, "id": 99593, "mutability": "mutable", "name": "_start", "nameLocation": "38673:6:164", "nodeType": "VariableDeclaration", "scope": 99638, "src": "38665:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99592, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "38665:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 99595, "mutability": "mutable", "name": "_global", "nameLocation": "38694:7:164", "nodeType": "VariableDeclaration", "scope": 99638, "src": "38689:12:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 99594, "name": "bool", "nodeType": "ElementaryTypeName", "src": "38689:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }], "src": "38632:75:164" }, "returnParameters": { "id": 99600, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99599, "mutability": "mutable", "name": "ancestor_", "nameLocation": "38773:9:164", "nodeType": "VariableDeclaration", "scope": 99638, "src": "38755:27:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99598, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99597, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "38755:9:164" }, "referencedDeclaration": 100523, "src": "38755:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "src": "38754:29:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 99840, "nodeType": "FunctionDefinition", "src": "39797:3468:164", "nodes": [], "body": { "id": 99839, "nodeType": "Block", "src": "39995:3270:164", "nodes": [], "statements": [{ "assignments": [99657], "declarations": [{ "constant": false, "id": 99657, "mutability": "mutable", "name": "claimIdx", "nameLocation": "40050:8:164", "nodeType": "VariableDeclaration", "scope": 99839, "src": "40042:16:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99656, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "40042:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99659, "initialValue": { "id": 99658, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99641, "src": "40061:6:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "40042:25:164" }, { "assignments": [99662], "declarations": [{ "constant": false, "id": 99662, "mutability": "mutable", "name": "claim", "nameLocation": "40095:5:164", "nodeType": "VariableDeclaration", "scope": 99839, "src": "40077:23:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99661, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99660, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "40077:9:164" }, "referencedDeclaration": 100523, "src": "40077:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 99666, "initialValue": { "baseExpression": { "id": 99663, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "40103:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 99665, "indexExpression": { "id": 99664, "name": "claimIdx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99657, "src": "40113:8:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "40103:19:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "40077:45:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99667, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "40245:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99668, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "40245:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "40245:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 99670, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "40245:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 99671, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "40271:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "40245:37:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99676, "nodeType": "IfStatement", "src": "40241:67:164", "trueBody": { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 99673, "name": "ClaimAboveSplit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103177, "src": "40291:15:164", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 99674, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "40291:17:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99675, "nodeType": "RevertStatement", "src": "40284:24:164" } }, { "assignments": [99678], "declarations": [{ "constant": false, "id": 99678, "mutability": "mutable", "name": "currentDepth", "nameLocation": "40667:12:164", "nodeType": "VariableDeclaration", "scope": 99839, "src": "40659:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99677, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "40659:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99679, "nodeType": "VariableDeclarationStatement", "src": "40659:20:164" }, { "assignments": [99682], "declarations": [{ "constant": false, "id": 99682, "mutability": "mutable", "name": "execRootClaim", "nameLocation": "40707:13:164", "nodeType": "VariableDeclaration", "scope": 99839, "src": "40689:31:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99681, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99680, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "40689:9:164" }, "referencedDeclaration": 100523, "src": "40689:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 99684, "initialValue": { "id": 99683, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "40723:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "VariableDeclarationStatement", "src": "40689:39:164" }, { "body": { "id": 99719, "nodeType": "Block", "src": "40800:509:164", "statements": [{ "assignments": [99695], "declarations": [{ "constant": false, "id": 99695, "mutability": "mutable", "name": "parentIndex", "nameLocation": "40822:11:164", "nodeType": "VariableDeclaration", "scope": 99719, "src": "40814:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99694, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "40814:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 99698, "initialValue": { "expression": { "id": 99696, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "40836:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99697, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "parentIndex", "nodeType": "MemberAccess", "referencedDeclaration": 100507, "src": "40836:17:164", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", "src": "40814:39:164" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99699, "name": "currentDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99678, "src": "41163:12:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 99700, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "41179:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 99701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "41193:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "41179:15:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "41163:31:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99708, "nodeType": "IfStatement", "src": "41159:58:164", "trueBody": { "expression": { "id": 99706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99704, "name": "execRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99682, "src": "41196:13:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99705, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "41212:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "src": "41196:21:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99707, "nodeType": "ExpressionStatement", "src": "41196:21:164" } }, { "expression": { "id": 99713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99709, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "41232:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 99710, "name": "claimData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97785, "src": "41240:9:164", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ClaimData_$100523_storage_$dyn_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref[] storage ref" } }, "id": 99712, "indexExpression": { "id": 99711, "name": "parentIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99695, "src": "41250:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "41240:22:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage", "typeString": "struct IFaultDisputeGame.ClaimData storage ref" } }, "src": "41232:30:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99714, "nodeType": "ExpressionStatement", "src": "41232:30:164" }, { "expression": { "id": 99717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99715, "name": "claimIdx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99657, "src": "41276:8:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 99716, "name": "parentIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99695, "src": "41287:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "41276:22:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 99718, "nodeType": "ExpressionStatement", "src": "41276:22:164" }] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 99693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [{ "id": 99690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99685, "name": "currentDepth", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99678, "src": "40746:12:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99686, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "40761:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99687, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "40761:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "depth", "nodeType": "MemberAccess", "referencedDeclaration": 100833, "src": "40761:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint8_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint8)" } }, "id": 99689, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "40761:22:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "40746:37:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 99691, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "40745:39:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 99692, "name": "SPLIT_DEPTH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97726, "src": "40787:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "40745:53:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 99720, "nodeType": "WhileStatement", "src": "40738:571:164" }, { "assignments": [99723, 99726], "declarations": [{ "constant": false, "id": 99723, "mutability": "mutable", "name": "execRootPos", "nameLocation": "41586:11:164", "nodeType": "VariableDeclaration", "scope": 99839, "src": "41577:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99722, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99721, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "41577:8:164" }, "referencedDeclaration": 103269, "src": "41577:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "constant": false, "id": 99726, "mutability": "mutable", "name": "outputPos", "nameLocation": "41608:9:164", "nodeType": "VariableDeclaration", "scope": 99839, "src": "41599:18:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99725, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99724, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "41599:8:164" }, "referencedDeclaration": 103269, "src": "41599:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 99732, "initialValue": { "components": [{ "expression": { "id": 99727, "name": "execRootClaim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99682, "src": "41622:13:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99728, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "41622:22:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "expression": { "id": 99729, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "41646:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99730, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "41646:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99731, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "41621:40:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Position,Position)" } }, "nodeType": "VariableDeclarationStatement", "src": "41576:85:164" }, { "assignments": [99734], "declarations": [{ "constant": false, "id": 99734, "mutability": "mutable", "name": "wasAttack", "nameLocation": "41676:9:164", "nodeType": "VariableDeclaration", "scope": 99839, "src": "41671:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 99733, "name": "bool", "nodeType": "ElementaryTypeName", "src": "41671:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }], "id": 99744, "initialValue": { "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 99743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99735, "name": "execRootPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99723, "src": "41688:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "parent", "nodeType": "MemberAccess", "referencedDeclaration": 100886, "src": "41688:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Position_$103269_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (Position)" } }, "id": 99737, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "41688:20:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "41688:24:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99739, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "41688:26:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99740, "name": "outputPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99726, "src": "41718:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "41718:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99742, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "41718:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "src": "41688:45:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "41671:62:164" }, { "condition": { "id": 99745, "name": "wasAttack", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99734, "src": "42228:9:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 99837, "nodeType": "Block", "src": "42977:282:164", "statements": [{ "assignments": [99803], "declarations": [{ "constant": false, "id": 99803, "mutability": "mutable", "name": "disputed", "nameLocation": "43009:8:164", "nodeType": "VariableDeclaration", "scope": 99837, "src": "42991:26:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99802, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99801, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "42991:9:164" }, "referencedDeclaration": 100523, "src": "42991:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 99816, "initialValue": { "arguments": [{ "arguments": [{ "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 99811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99807, "name": "outputPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99726, "src": "43053:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99808, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "43053:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99809, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "43053:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 99810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "43071:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "43053:19:164", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint128", "typeString": "uint128" }], "expression": { "id": 99805, "name": "Position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103269, "src": "43039:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Position_$103269_$", "typeString": "type(Position)" } }, "id": 99806, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "43039:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint128) pure returns (Position)" } }, "id": 99812, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "43039:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 99813, "name": "claimIdx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99657, "src": "43075:8:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "74727565", "id": 99814, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "43085:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 99804, "name": "_findTraceAncestor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99638, "src": "43020:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$", "typeString": "function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 99815, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "43020:70:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "VariableDeclarationStatement", "src": "42991:99:164" }, { "expression": { "id": 99825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "components": [{ "id": 99817, "name": "startingClaim_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99645, "src": "43105:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99818, "name": "startingPos_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99648, "src": "43121:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99819, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", "src": "43104:30:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "components": [{ "expression": { "id": 99820, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "43138:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99821, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claim", "nodeType": "MemberAccess", "referencedDeclaration": 100516, "src": "43138:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "expression": { "id": 99822, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "43151:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99823, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "43151:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99824, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "43137:29:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "src": "43104:62:164", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99826, "nodeType": "ExpressionStatement", "src": "43104:62:164" }, { "expression": { "id": 99835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "components": [{ "id": 99827, "name": "disputedClaim_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99651, "src": "43181:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99828, "name": "disputedPos_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99654, "src": "43197:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99829, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", "src": "43180:30:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "components": [{ "expression": { "id": 99830, "name": "disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99803, "src": "43214:8:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99831, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claim", "nodeType": "MemberAccess", "referencedDeclaration": 100516, "src": "43214:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "expression": { "id": 99832, "name": "disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99803, "src": "43230:8:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99833, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "43230:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99834, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "43213:35:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "src": "43180:68:164", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99836, "nodeType": "ExpressionStatement", "src": "43180:68:164" }] }, "id": 99838, "nodeType": "IfStatement", "src": "42224:1035:164", "trueBody": { "id": 99800, "nodeType": "Block", "src": "42239:732:164", "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 99750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99746, "name": "outputPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99726, "src": "42540:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "indexAtDepth", "nodeType": "MemberAccess", "referencedDeclaration": 100850, "src": "42540:22:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99748, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "42540:24:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 99749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "42567:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "42540:28:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 99788, "nodeType": "Block", "src": "42794:91:164", "statements": [{ "expression": { "id": 99786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99778, "name": "startingClaim_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99645, "src": "42812:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "id": 99781, "name": "startingOutputRoot", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97811, "src": "42840:18:164", "typeDescriptions": { "typeIdentifier": "t_struct$_OutputRoot_$103283_storage", "typeString": "struct OutputRoot storage ref" } }, "id": 99782, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "root", "nodeType": "MemberAccess", "referencedDeclaration": 103280, "src": "42840:23:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 99783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101111, "src": "42840:27:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Hash_$103253_$returns$_t_bytes32_$bound_to$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Hash) pure returns (bytes32)" } }, "id": 99784, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "42840:29:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }], "expression": { "id": 99779, "name": "Claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103255, "src": "42829:5:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "type(Claim)" } }, "id": 99780, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "42829:10:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Claim_$103255_$", "typeString": "function (bytes32) pure returns (Claim)" } }, "id": 99785, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "42829:41:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "src": "42812:58:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "id": 99787, "nodeType": "ExpressionStatement", "src": "42812:58:164" }] }, "id": 99789, "nodeType": "IfStatement", "src": "42536:349:164", "trueBody": { "id": 99777, "nodeType": "Block", "src": "42570:218:164", "statements": [{ "assignments": [99753], "declarations": [{ "constant": false, "id": 99753, "mutability": "mutable", "name": "starting", "nameLocation": "42606:8:164", "nodeType": "VariableDeclaration", "scope": 99777, "src": "42588:26:164", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" }, "typeName": { "id": 99752, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99751, "name": "ClaimData", "nodeType": "IdentifierPath", "referencedDeclaration": 100523, "src": "42588:9:164" }, "referencedDeclaration": 100523, "src": "42588:9:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData" } }, "visibility": "internal" }], "id": 99766, "initialValue": { "arguments": [{ "arguments": [{ "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 99761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99757, "name": "outputPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99726, "src": "42650:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "42650:13:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99759, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "42650:15:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 99760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "42668:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "42650:19:164", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint128", "typeString": "uint128" }], "expression": { "id": 99755, "name": "Position", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103269, "src": "42636:8:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Position_$103269_$", "typeString": "type(Position)" } }, "id": 99756, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "42636:13:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_uint128_$returns$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint128) pure returns (Position)" } }, "id": 99762, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "42636:34:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 99763, "name": "claimIdx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99657, "src": "42672:8:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "74727565", "id": 99764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "42682:4:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" }], "id": 99754, "name": "_findTraceAncestor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99638, "src": "42617:18:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_Position_$103269_$_t_uint256_$_t_bool_$returns$_t_struct$_ClaimData_$100523_storage_ptr_$", "typeString": "function (Position,uint256,bool) view returns (struct IFaultDisputeGame.ClaimData storage pointer)" } }, "id": 99765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "42617:70:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "nodeType": "VariableDeclarationStatement", "src": "42588:99:164" }, { "expression": { "id": 99775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "components": [{ "id": 99767, "name": "startingClaim_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99645, "src": "42706:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99768, "name": "startingPos_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99648, "src": "42722:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99769, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", "src": "42705:30:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "components": [{ "expression": { "id": 99770, "name": "starting", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99753, "src": "42739:8:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99771, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claim", "nodeType": "MemberAccess", "referencedDeclaration": 100516, "src": "42739:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "expression": { "id": 99772, "name": "starting", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99753, "src": "42755:8:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99773, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "42755:17:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99774, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "42738:35:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "src": "42705:68:164", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99776, "nodeType": "ExpressionStatement", "src": "42705:68:164" }] } }, { "expression": { "id": 99798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "components": [{ "id": 99790, "name": "disputedClaim_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99651, "src": "42899:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99791, "name": "disputedPos_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99654, "src": "42915:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99792, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", "src": "42898:30:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "components": [{ "expression": { "id": 99793, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "42932:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99794, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "claim", "nodeType": "MemberAccess", "referencedDeclaration": 100516, "src": "42932:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "expression": { "id": 99795, "name": "claim", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99662, "src": "42945:5:164", "typeDescriptions": { "typeIdentifier": "t_struct$_ClaimData_$100523_storage_ptr", "typeString": "struct IFaultDisputeGame.ClaimData storage pointer" } }, "id": 99796, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "position", "nodeType": "MemberAccess", "referencedDeclaration": 100519, "src": "42945:14:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "id": 99797, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "42931:29:164", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position)" } }, "src": "42898:62:164", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 99799, "nodeType": "ExpressionStatement", "src": "42898:62:164" }] } }] }, "documentation": { "id": 99639, "nodeType": "StructuredDocumentation", "src": "39288:504:164", "text": "@notice Finds the starting and disputed output root for a given `ClaimData` within the DAG. This\n         `ClaimData` must be below the `SPLIT_DEPTH`.\n @param _start The index within `claimData` of the claim to start searching from.\n @return startingClaim_ The starting output root claim.\n @return startingPos_ The starting output root position.\n @return disputedClaim_ The disputed output root claim.\n @return disputedPos_ The disputed output root position." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_findStartingAndDisputedOutputs", "nameLocation": "39806:31:164", "parameters": { "id": 99642, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99641, "mutability": "mutable", "name": "_start", "nameLocation": "39846:6:164", "nodeType": "VariableDeclaration", "scope": 99840, "src": "39838:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99640, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "39838:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "39837:16:164" }, "returnParameters": { "id": 99655, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99645, "mutability": "mutable", "name": "startingClaim_", "nameLocation": "39907:14:164", "nodeType": "VariableDeclaration", "scope": 99840, "src": "39901:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99644, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99643, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "39901:5:164" }, "referencedDeclaration": 103255, "src": "39901:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99648, "mutability": "mutable", "name": "startingPos_", "nameLocation": "39932:12:164", "nodeType": "VariableDeclaration", "scope": 99840, "src": "39923:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99647, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99646, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "39923:8:164" }, "referencedDeclaration": 103269, "src": "39923:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "constant": false, "id": 99651, "mutability": "mutable", "name": "disputedClaim_", "nameLocation": "39952:14:164", "nodeType": "VariableDeclaration", "scope": 99840, "src": "39946:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99650, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99649, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "39946:5:164" }, "referencedDeclaration": 103255, "src": "39946:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99654, "mutability": "mutable", "name": "disputedPos_", "nameLocation": "39977:12:164", "nodeType": "VariableDeclaration", "scope": 99840, "src": "39968:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99653, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99652, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "39968:8:164" }, "referencedDeclaration": 103269, "src": "39968:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "src": "39900:90:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 99875, "nodeType": "FunctionDefinition", "src": "43519:319:164", "nodes": [], "body": { "id": 99874, "nodeType": "Block", "src": "43602:236:164", "nodes": [], "statements": [{ "assignments": [99851, 99854, 99857, 99860], "declarations": [{ "constant": false, "id": 99851, "mutability": "mutable", "name": "starting", "nameLocation": "43619:8:164", "nodeType": "VariableDeclaration", "scope": 99874, "src": "43613:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99850, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99849, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "43613:5:164" }, "referencedDeclaration": 103255, "src": "43613:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99854, "mutability": "mutable", "name": "startingPos", "nameLocation": "43638:11:164", "nodeType": "VariableDeclaration", "scope": 99874, "src": "43629:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99853, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99852, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "43629:8:164" }, "referencedDeclaration": 103269, "src": "43629:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "constant": false, "id": 99857, "mutability": "mutable", "name": "disputed", "nameLocation": "43657:8:164", "nodeType": "VariableDeclaration", "scope": 99874, "src": "43651:14:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99856, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99855, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "43651:5:164" }, "referencedDeclaration": 103255, "src": "43651:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99860, "mutability": "mutable", "name": "disputedPos", "nameLocation": "43676:11:164", "nodeType": "VariableDeclaration", "scope": 99874, "src": "43667:20:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99859, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99858, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "43667:8:164" }, "referencedDeclaration": 103269, "src": "43667:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "id": 99864, "initialValue": { "arguments": [{ "id": 99862, "name": "_claimIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99843, "src": "43735:11:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_uint256", "typeString": "uint256" }], "id": 99861, "name": "_findStartingAndDisputedOutputs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99840, "src": "43703:31:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (uint256) view returns (Claim,Position,Claim,Position)" } }, "id": 99863, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "43703:44:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$", "typeString": "tuple(Claim,Position,Claim,Position)" } }, "nodeType": "VariableDeclarationStatement", "src": "43612:135:164" }, { "expression": { "id": 99872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99865, "name": "uuid_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99847, "src": "43757:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [{ "id": 99867, "name": "starting", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99851, "src": "43786:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99868, "name": "startingPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99854, "src": "43796:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 99869, "name": "disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99857, "src": "43809:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99870, "name": "disputedPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99860, "src": "43819:11:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }], "id": 99866, "name": "_computeLocalContext", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99926, "src": "43765:20:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$_t_userDefinedValueType$_Claim_$103255_$_t_userDefinedValueType$_Position_$103269_$returns$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (Claim,Position,Claim,Position) pure returns (Hash)" } }, "id": 99871, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "43765:66:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "src": "43757:74:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 99873, "nodeType": "ExpressionStatement", "src": "43757:74:164" }] }, "documentation": { "id": 99841, "nodeType": "StructuredDocumentation", "src": "43271:243:164", "text": "@notice Finds the local context hash for a given claim index that is present in an execution trace subgame.\n @param _claimIndex The index of the claim to find the local context hash for.\n @return uuid_ The local context hash." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_findLocalContext", "nameLocation": "43528:17:164", "parameters": { "id": 99844, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99843, "mutability": "mutable", "name": "_claimIndex", "nameLocation": "43554:11:164", "nodeType": "VariableDeclaration", "scope": 99875, "src": "43546:19:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 99842, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "43546:7:164", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "43545:21:164" }, "returnParameters": { "id": 99848, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99847, "mutability": "mutable", "name": "uuid_", "nameLocation": "43595:5:164", "nodeType": "VariableDeclaration", "scope": 99875, "src": "43590:10:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }, "typeName": { "id": 99846, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99845, "name": "Hash", "nodeType": "IdentifierPath", "referencedDeclaration": 103253, "src": "43590:4:164" }, "referencedDeclaration": 103253, "src": "43590:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "visibility": "internal" }], "src": "43589:12:164" }, "scope": 99927, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 99926, "nodeType": "FunctionDefinition", "src": "44205:616:164", "nodes": [], "body": { "id": 99925, "nodeType": "Block", "src": "44416:405:164", "nodes": [], "statements": [{ "expression": { "id": 99923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 99894, "name": "uuid_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99892, "src": "44614:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "condition": { "commonType": { "typeIdentifier": "t_uint128", "typeString": "uint128" }, "id": 99899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 99895, "name": "_startingPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99882, "src": "44622:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "id": 99896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "raw", "nodeType": "MemberAccess", "referencedDeclaration": 101017, "src": "44622:16:164", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Position_$103269_$returns$_t_uint128_$bound_to$_t_userDefinedValueType$_Position_$103269_$", "typeString": "function (Position) pure returns (uint128)" } }, "id": 99897, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "44622:18:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 99898, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "44644:1:164", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "44622:23:164", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "arguments": [{ "arguments": [{ "arguments": [{ "id": 99915, "name": "_starting", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99879, "src": "44763:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99916, "name": "_startingPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99882, "src": "44774:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, { "id": 99917, "name": "_disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99885, "src": "44788:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99918, "name": "_disputedPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99888, "src": "44799:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }], "expression": { "id": 99913, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44752:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 99914, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "src": "44752:10:164", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 99919, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "44752:60:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }], "id": 99912, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "44742:9:164", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 99920, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "44742:71:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }], "expression": { "id": 99910, "name": "Hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103253, "src": "44732:4:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "type(Hash)" } }, "id": 99911, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "44732:9:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (bytes32) pure returns (Hash)" } }, "id": 99921, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "44732:82:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 99922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "44622:192:164", "trueExpression": { "arguments": [{ "arguments": [{ "arguments": [{ "id": 99905, "name": "_disputed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99885, "src": "44691:9:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, { "id": 99906, "name": "_disputedPos", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 99888, "src": "44702:12:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }], "expression": { "id": 99903, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "44680:3:164", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 99904, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "src": "44680:10:164", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 99907, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "44680:35:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }], "id": 99902, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "44670:9:164", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 99908, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "44670:46:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }], "expression": { "id": 99900, "name": "Hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 103253, "src": "44660:4:164", "typeDescriptions": { "typeIdentifier": "t_type$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "type(Hash)" } }, "id": 99901, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "wrap", "nodeType": "MemberAccess", "src": "44660:9:164", "typeDescriptions": { "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Hash_$103253_$", "typeString": "function (bytes32) pure returns (Hash)" } }, "id": 99909, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "44660:57:164", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "src": "44614:200:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "id": 99924, "nodeType": "ExpressionStatement", "src": "44614:200:164" }] }, "documentation": { "id": 99876, "nodeType": "StructuredDocumentation", "src": "43844:356:164", "text": "@notice Computes the local context hash for a set of starting/disputed claim values and positions.\n @param _starting The starting claim.\n @param _startingPos The starting claim's position.\n @param _disputed The disputed claim.\n @param _disputedPos The disputed claim's position.\n @return uuid_ The local context hash." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_computeLocalContext", "nameLocation": "44214:20:164", "parameters": { "id": 99889, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99879, "mutability": "mutable", "name": "_starting", "nameLocation": "44250:9:164", "nodeType": "VariableDeclaration", "scope": 99926, "src": "44244:15:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99878, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99877, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "44244:5:164" }, "referencedDeclaration": 103255, "src": "44244:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99882, "mutability": "mutable", "name": "_startingPos", "nameLocation": "44278:12:164", "nodeType": "VariableDeclaration", "scope": 99926, "src": "44269:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99881, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99880, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "44269:8:164" }, "referencedDeclaration": 103269, "src": "44269:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }, { "constant": false, "id": 99885, "mutability": "mutable", "name": "_disputed", "nameLocation": "44306:9:164", "nodeType": "VariableDeclaration", "scope": 99926, "src": "44300:15:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" }, "typeName": { "id": 99884, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99883, "name": "Claim", "nodeType": "IdentifierPath", "referencedDeclaration": 103255, "src": "44300:5:164" }, "referencedDeclaration": 103255, "src": "44300:5:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Claim_$103255", "typeString": "Claim" } }, "visibility": "internal" }, { "constant": false, "id": 99888, "mutability": "mutable", "name": "_disputedPos", "nameLocation": "44334:12:164", "nodeType": "VariableDeclaration", "scope": 99926, "src": "44325:21:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" }, "typeName": { "id": 99887, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99886, "name": "Position", "nodeType": "IdentifierPath", "referencedDeclaration": 103269, "src": "44325:8:164" }, "referencedDeclaration": 103269, "src": "44325:8:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Position_$103269", "typeString": "Position" } }, "visibility": "internal" }], "src": "44234:118:164" }, "returnParameters": { "id": 99893, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 99892, "mutability": "mutable", "name": "uuid_", "nameLocation": "44405:5:164", "nodeType": "VariableDeclaration", "scope": 99926, "src": "44400:10:164", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" }, "typeName": { "id": 99891, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 99890, "name": "Hash", "nodeType": "IdentifierPath", "referencedDeclaration": 103253, "src": "44400:4:164" }, "referencedDeclaration": 103253, "src": "44400:4:164", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Hash_$103253", "typeString": "Hash" } }, "visibility": "internal" }], "src": "44399:12:164" }, "scope": 99927, "stateMutability": "pure", "virtual": false, "visibility": "internal" }], "abstract": false, "baseContracts": [{ "baseName": { "id": 97711, "name": "IFaultDisputeGame", "nodeType": "IdentifierPath", "referencedDeclaration": 100608, "src": "1025:17:164" }, "id": 97712, "nodeType": "InheritanceSpecifier", "src": "1025:17:164" }, { "baseName": { "id": 97713, "name": "Clone", "nodeType": "IdentifierPath", "referencedDeclaration": 60963, "src": "1044:5:164" }, "id": 97714, "nodeType": "InheritanceSpecifier", "src": "1044:5:164" }, { "baseName": { "id": 97715, "name": "ISemver", "nodeType": "IdentifierPath", "referencedDeclaration": 109417, "src": "1051:7:164" }, "id": 97716, "nodeType": "InheritanceSpecifier", "src": "1051:7:164" }], "canonicalName": "FaultDisputeGame", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 97710, "nodeType": "StructuredDocumentation", "src": "900:96:164", "text": "@title FaultDisputeGame\n @notice An implementation of the `IFaultDisputeGame` interface." }, "fullyImplemented": true, "linearizedBaseContracts": [99927, 109417, 60963, 100608, 100327, 100616], "name": "FaultDisputeGame", "nameLocation": "1005:16:164", "scope": 99928, "usedErrors": [103117, 103120, 103123, 103126, 103129, 103135, 103138, 103144, 103147, 103150, 103153, 103156, 103159, 103162, 103168, 103171, 103174, 103177, 103180, 103183, 103186, 103189, 103192] }], "license": "MIT" }, "id": 164 }
