{ "abi": [], "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "methodIdentifiers": {}, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "language": "Solidity", "output": { "abi": [], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@uniswap/v3-core/=lib_uniswap/v3-core/", "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "v3-core/=lib_uniswap/v3-core/", "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/" ], "optimizer": { "runs": 999999999, "details": { "peephole": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "deduplicate": true, "cse": true, "constantOptimizer": true, "yul": true, "yulDetails": { "stackAllocation": true, "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu" } } }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "lib/forge-std/src/StdUtils.sol": "StdUtils" }, "libraries": {} }, "sources": { "lib/forge-std/src/StdUtils.sol": { "keccak256": "0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1", "urls": [ "bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140", "dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi" ], "license": "MIT" }, "lib/forge-std/src/Vm.sol": { "keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5", "urls": [ "bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c", "dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw" ], "license": "MIT" }, "lib/forge-std/src/interfaces/IMulticall3.sol": { "keccak256": "0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a", "urls": [ "bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0", "dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2" ], "license": "MIT" } }, "version": 1 }, "ast": { "absolutePath": "lib/forge-std/src/StdUtils.sol", "id": 11887, "exportedSymbols": { "IMulticall3": [ 29816 ], "StdUtils": [ 11886 ], "VmSafe": [ 12992 ] }, "nodeType": "SourceUnit", "src": "32:10492:12", "nodes": [ { "id": 11040, "nodeType": "PragmaDirective", "src": "32:31:12", "nodes": [], "literals": [ "solidity", ">=", "0.6", ".2", "<", "0.9", ".0" ] }, { "id": 11041, "nodeType": "PragmaDirective", "src": "65:33:12", "nodes": [], "literals": [ "experimental", "ABIEncoderV2" ] }, { "id": 11043, "nodeType": "ImportDirective", "src": "100:57:12", "nodes": [], "absolutePath": "lib/forge-std/src/interfaces/IMulticall3.sol", "file": "./interfaces/IMulticall3.sol", "nameLocation": "-1:-1:-1", "scope": 11887, "sourceUnit": 29817, "symbolAliases": [ { "foreign": { "id": 11042, "name": "IMulticall3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29816, "src": "108:11:12", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 11045, "nodeType": "ImportDirective", "src": "158:32:12", "nodes": [], "absolutePath": "lib/forge-std/src/Vm.sol", "file": "./Vm.sol", "nameLocation": "-1:-1:-1", "scope": 11887, "sourceUnit": 13465, "symbolAliases": [ { "foreign": { "id": 11044, "name": "VmSafe", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12992, "src": "166:6:12", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 11886, "nodeType": "ContractDefinition", "src": "192:10331:12", "nodes": [ { "id": 11051, "nodeType": "VariableDeclaration", "src": "435:96:12", "nodes": [], "constant": true, "mutability": "constant", "name": "multicall", "nameLocation": "464:9:12", "scope": 11886, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IMulticall3_$29816", "typeString": "contract IMulticall3" }, "typeName": { "id": 11047, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 11046, "name": "IMulticall3", "nameLocations": [ "435:11:12" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29816, "src": "435:11:12" }, "referencedDeclaration": 29816, "src": "435:11:12", "typeDescriptions": { "typeIdentifier": "t_contract$_IMulticall3_$29816", "typeString": "contract IMulticall3" } }, "value": { "arguments": [ { "hexValue": "307863413131626465303539373762333633313136373032383836326245326131373339373643413131", "id": 11049, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "488:42:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0xcA11bde05977b3631167028862bE2a173976CA11" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11048, "name": "IMulticall3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29816, "src": "476:11:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IMulticall3_$29816_$", "typeString": "type(contract IMulticall3)" } }, "id": 11050, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "476:55:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IMulticall3_$29816", "typeString": "contract IMulticall3" } }, "visibility": "private" }, { "id": 11068, "nodeType": "VariableDeclaration", "src": "537:92:12", "nodes": [], "constant": true, "mutability": "constant", "name": "vm", "nameLocation": "561:2:12", "scope": 11886, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_VmSafe_$12992", "typeString": "contract VmSafe" }, "typeName": { "id": 11053, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 11052, "name": "VmSafe", "nameLocations": [ "537:6:12" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12992, "src": "537:6:12" }, "referencedDeclaration": 12992, "src": "537:6:12", "typeDescriptions": { "typeIdentifier": "t_contract$_VmSafe_$12992", "typeString": "contract VmSafe" } }, "value": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "6865766d20636865617420636f6465", "id": 11062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "607:17:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d", "typeString": "literal_string \"hevm cheat code\"" }, "value": "hevm cheat code" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d", "typeString": "literal_string \"hevm cheat code\"" } ], "id": 11061, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "597:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11063, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "597:28:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11060, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "589:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11059, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "589:7:12", "typeDescriptions": {} } }, "id": 11064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "589:37:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11058, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "581:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)" }, "typeName": { "id": 11057, "name": "uint160", "nodeType": "ElementaryTypeName", "src": "581:7:12", "typeDescriptions": {} } }, "id": 11065, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "581:46:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint160", "typeString": "uint160" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint160", "typeString": "uint160" } ], "id": 11056, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "573:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11055, "name": "address", "nodeType": "ElementaryTypeName", "src": "573:7:12", "typeDescriptions": {} } }, "id": 11066, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "573:55:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11054, "name": "VmSafe", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12992, "src": "566:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_VmSafe_$12992_$", "typeString": "type(contract VmSafe)" } }, "id": 11067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "566:63:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_VmSafe_$12992", "typeString": "contract VmSafe" } }, "visibility": "private" }, { "id": 11071, "nodeType": "VariableDeclaration", "src": "635:86:12", "nodes": [], "constant": true, "mutability": "constant", "name": "CONSOLE2_ADDRESS", "nameLocation": "660:16:12", "scope": 11886, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11069, "name": "address", "nodeType": "ElementaryTypeName", "src": "635:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": { "hexValue": "307830303030303030303030303030303030303036333646366537333646366336353265366336663637", "id": 11070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "679:42:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0x000000000000000000636F6e736F6c652e6c6f67" }, "visibility": "private" }, { "id": 11074, "nodeType": "VariableDeclaration", "src": "727:127:12", "nodes": [], "constant": true, "mutability": "constant", "name": "INT256_MIN_ABS", "nameLocation": "752:14:12", "scope": 11886, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11072, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "727:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638", "id": 11073, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "777:77:12", "typeDescriptions": { "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const 5789...(69 digits omitted)...9968" }, "value": "57896044618658097711785492504343953926634992332820282019728792003956564819968" }, "visibility": "private" }, { "id": 11077, "nodeType": "VariableDeclaration", "src": "860:129:12", "nodes": [], "constant": true, "mutability": "constant", "name": "SECP256K1_ORDER", "nameLocation": "885:15:12", "scope": 11886, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11075, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "860:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337", "id": 11076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "911:78:12", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1", "typeString": "int_const 1157...(70 digits omitted)...4337" }, "value": "115792089237316195423570985008687907852837564279074904382605163141518161494337" }, "visibility": "private" }, { "id": 11080, "nodeType": "VariableDeclaration", "src": "995:125:12", "nodes": [], "constant": true, "mutability": "constant", "name": "UINT256_MAX", "nameLocation": "1020:11:12", "scope": 11886, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11078, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "995:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335", "id": 11079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1042:78:12", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", "typeString": "int_const 1157...(70 digits omitted)...9935" }, "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, "visibility": "private" }, { "id": 11083, "nodeType": "VariableDeclaration", "src": "1239:85:12", "nodes": [], "constant": true, "mutability": "constant", "name": "CREATE2_FACTORY", "nameLocation": "1264:15:12", "scope": 11886, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11081, "name": "address", "nodeType": "ElementaryTypeName", "src": "1239:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": { "hexValue": "307834653539623434383437623337393537383538383932306341373846624632366330423439353643", "id": 11082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1282:42:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "value": "0x4e59b44847b379578588920cA78FbF26c0B4956C" }, "visibility": "private" }, { "id": 11213, "nodeType": "FunctionDefinition", "src": "1546:1263:12", "nodes": [], "body": { "id": 11212, "nodeType": "Block", "src": "1646:1163:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11097, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11095, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "1664:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 11096, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "1671:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1664:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e", "id": 11098, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1676:64:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2", "typeString": "literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\"" }, "value": "StdUtils bound(uint256,uint256,uint256): Max is less than min." } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2", "typeString": "literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\"" } ], "id": 11094, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1656:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11099, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1656:85:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11100, "nodeType": "ExpressionStatement", "src": "1656:85:12" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 11107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11101, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "1970:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "id": 11102, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "1975:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1970:8:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11104, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "1982:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 11105, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "1987:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1982:8:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1970:20:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11110, "nodeType": "IfStatement", "src": "1966:34:12", "trueBody": { "expression": { "id": 11108, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "1999:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11093, "id": 11109, "nodeType": "Return", "src": "1992:8:12" } }, { "assignments": [ 11112 ], "declarations": [ { "constant": false, "id": 11112, "mutability": "mutable", "name": "size", "nameLocation": "2019:4:12", "nodeType": "VariableDeclaration", "scope": 11212, "src": "2011:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11111, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2011:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11118, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11115, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11113, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "2026:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11114, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "2032:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2026:9:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 11116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2038:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2026:13:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "2011:28:12" }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 11125, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11119, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2229:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "33", "id": 11120, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2234:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "src": "2229:6:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11122, "name": "size", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11112, "src": "2239:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 11123, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2246:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2239:8:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2229:18:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11130, "nodeType": "IfStatement", "src": "2225:38:12", "trueBody": { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11126, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "2256:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 11127, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2262:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2256:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11093, "id": 11129, "nodeType": "Return", "src": "2249:14:12" } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 11141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11131, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2277:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11134, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 11132, "name": "UINT256_MAX", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11080, "src": "2282:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "33", "id": 11133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2296:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "src": "2282:15:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2277:20:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11136, "name": "size", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11112, "src": "2301:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11137, "name": "UINT256_MAX", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11080, "src": "2308:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11138, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2322:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2308:15:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2301:22:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "2277:46:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11149, "nodeType": "IfStatement", "src": "2273:82:12", "trueBody": { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11142, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "2332:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11143, "name": "UINT256_MAX", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11080, "src": "2339:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11144, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2353:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2339:15:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11146, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "2338:17:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2332:23:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11093, "id": 11148, "nodeType": "Return", "src": "2325:30:12" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11152, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11150, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2455:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 11151, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "2459:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2455:7:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11180, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2634:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 11181, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "2638:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2634:7:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11210, "nodeType": "IfStatement", "src": "2630:173:12", "trueBody": { "id": 11209, "nodeType": "Block", "src": "2643:160:12", "statements": [ { "assignments": [ 11184 ], "declarations": [ { "constant": false, "id": 11184, "mutability": "mutable", "name": "diff", "nameLocation": "2665:4:12", "nodeType": "VariableDeclaration", "scope": 11209, "src": "2657:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11183, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2657:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11188, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11185, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "2672:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11186, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2678:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2672:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "2657:22:12" }, { "assignments": [ 11190 ], "declarations": [ { "constant": false, "id": 11190, "mutability": "mutable", "name": "rem", "nameLocation": "2701:3:12", "nodeType": "VariableDeclaration", "scope": 11209, "src": "2693:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11189, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2693:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11194, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11191, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11184, "src": "2707:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "id": 11192, "name": "size", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11112, "src": "2714:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2707:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "2693:25:12" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11195, "name": "rem", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11190, "src": "2736:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 11196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2743:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2736:8:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11200, "nodeType": "IfStatement", "src": "2732:24:12", "trueBody": { "expression": { "id": 11198, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "2753:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11093, "id": 11199, "nodeType": "Return", "src": "2746:10:12" } }, { "expression": { "id": 11207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 11201, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11092, "src": "2770:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11202, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "2779:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11203, "name": "rem", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11190, "src": "2785:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2779:9:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 11205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2791:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2779:13:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2770:22:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11208, "nodeType": "ExpressionStatement", "src": "2770:22:12" } ] } }, "id": 11211, "nodeType": "IfStatement", "src": "2451:352:12", "trueBody": { "id": 11179, "nodeType": "Block", "src": "2464:160:12", "statements": [ { "assignments": [ 11154 ], "declarations": [ { "constant": false, "id": 11154, "mutability": "mutable", "name": "diff", "nameLocation": "2486:4:12", "nodeType": "VariableDeclaration", "scope": 11179, "src": "2478:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11153, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2478:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11158, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11155, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11085, "src": "2493:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11156, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "2497:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2493:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "2478:22:12" }, { "assignments": [ 11160 ], "declarations": [ { "constant": false, "id": 11160, "mutability": "mutable", "name": "rem", "nameLocation": "2522:3:12", "nodeType": "VariableDeclaration", "scope": 11179, "src": "2514:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11159, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2514:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11164, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11161, "name": "diff", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11154, "src": "2528:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "id": 11162, "name": "size", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11112, "src": "2535:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2528:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "2514:25:12" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11165, "name": "rem", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11160, "src": "2557:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 11166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2564:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2557:8:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11170, "nodeType": "IfStatement", "src": "2553:24:12", "trueBody": { "expression": { "id": 11168, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11089, "src": "2574:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11093, "id": 11169, "nodeType": "Return", "src": "2567:10:12" } }, { "expression": { "id": 11177, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 11171, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11092, "src": "2591:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11172, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11087, "src": "2600:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 11173, "name": "rem", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11160, "src": "2606:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2600:9:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2612:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2600:13:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2591:22:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11178, "nodeType": "ExpressionStatement", "src": "2591:22:12" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_bound", "nameLocation": "1555:6:12", "parameters": { "id": 11090, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11085, "mutability": "mutable", "name": "x", "nameLocation": "1570:1:12", "nodeType": "VariableDeclaration", "scope": 11213, "src": "1562:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11084, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1562:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 11087, "mutability": "mutable", "name": "min", "nameLocation": "1581:3:12", "nodeType": "VariableDeclaration", "scope": 11213, "src": "1573:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11086, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1573:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 11089, "mutability": "mutable", "name": "max", "nameLocation": "1594:3:12", "nodeType": "VariableDeclaration", "scope": 11213, "src": "1586:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11088, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1586:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1561:37:12" }, "returnParameters": { "id": 11093, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11092, "mutability": "mutable", "name": "result", "nameLocation": "1638:6:12", "nodeType": "VariableDeclaration", "scope": 11213, "src": "1630:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11091, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1630:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1629:16:12" }, "scope": 11886, "stateMutability": "pure", "virtual": true, "visibility": "internal" }, { "id": 11238, "nodeType": "FunctionDefinition", "src": "2815:190:12", "nodes": [], "body": { "id": 11237, "nodeType": "Block", "src": "2914:91:12", "nodes": [], "statements": [ { "expression": { "id": 11230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 11224, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11222, "src": "2924:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 11226, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11215, "src": "2940:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 11227, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11217, "src": "2943:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 11228, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11219, "src": "2948:3:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11225, "name": "_bound", "nodeType": "Identifier", "overloadedDeclarations": [ 11213, 11360 ], "referencedDeclaration": 11213, "src": "2933:6:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 11229, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2933:19:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2924:28:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11231, "nodeType": "ExpressionStatement", "src": "2924:28:12" }, { "expression": { "arguments": [ { "hexValue": "426f756e6420526573756c74", "id": 11233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2975:14:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52", "typeString": "literal_string \"Bound Result\"" }, "value": "Bound Result" }, { "id": 11234, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11222, "src": "2991:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52", "typeString": "literal_string \"Bound Result\"" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11232, "name": "console2_log", "nodeType": "Identifier", "overloadedDeclarations": [ 11860, 11885 ], "referencedDeclaration": 11860, "src": "2962:12:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$", "typeString": "function (string memory,uint256) view" } }, "id": 11235, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2962:36:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11236, "nodeType": "ExpressionStatement", "src": "2962:36:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "bound", "nameLocation": "2824:5:12", "parameters": { "id": 11220, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11215, "mutability": "mutable", "name": "x", "nameLocation": "2838:1:12", "nodeType": "VariableDeclaration", "scope": 11238, "src": "2830:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11214, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2830:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 11217, "mutability": "mutable", "name": "min", "nameLocation": "2849:3:12", "nodeType": "VariableDeclaration", "scope": 11238, "src": "2841:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11216, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2841:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 11219, "mutability": "mutable", "name": "max", "nameLocation": "2862:3:12", "nodeType": "VariableDeclaration", "scope": 11238, "src": "2854:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11218, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2854:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2829:37:12" }, "returnParameters": { "id": 11223, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11222, "mutability": "mutable", "name": "result", "nameLocation": "2906:6:12", "nodeType": "VariableDeclaration", "scope": 11238, "src": "2898:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11221, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2898:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2897:16:12" }, "scope": 11886, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 11360, "nodeType": "FunctionDefinition", "src": "3011:1145:12", "nodes": [], "body": { "id": 11359, "nodeType": "Block", "src": "3107:1049:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 11252, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11250, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11242, "src": "3125:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 11251, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11244, "src": "3132:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3125:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "5374645574696c7320626f756e6428696e743235362c696e743235362c696e74323536293a204d6178206973206c657373207468616e206d696e2e", "id": 11253, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3137:61:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247", "typeString": "literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\"" }, "value": "StdUtils bound(int256,int256,int256): Max is less than min." } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247", "typeString": "literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\"" } ], "id": 11249, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "3117:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11254, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3117:82:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11255, "nodeType": "ExpressionStatement", "src": "3117:82:12" }, { "assignments": [ 11257 ], "declarations": [ { "constant": false, "id": 11257, "mutability": "mutable", "name": "_x", "nameLocation": "3635:2:12", "nodeType": "VariableDeclaration", "scope": 11359, "src": "3627:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11256, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3627:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11279, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 11260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11258, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11240, "src": "3640:1:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "hexValue": "30", "id": 11259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3644:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3640:5:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11276, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 11273, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11240, "src": "3694:1:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 11272, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3686:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11271, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3686:7:12", "typeDescriptions": {} } }, "id": 11274, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3686:10:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 11275, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "3699:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3686:27:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11277, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3685:29:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "3640:74:12", "trueExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11261, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "3649:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "3666:11:12", "subExpression": { "arguments": [ { "id": 11264, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11240, "src": "3675:1:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 11263, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3667:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11262, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3667:7:12", "typeDescriptions": {} } }, "id": 11265, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3667:10:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3649:28:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11268, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3680:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3649:32:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11270, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3648:34:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3627:87:12" }, { "assignments": [ 11281 ], "declarations": [ { "constant": false, "id": 11281, "mutability": "mutable", "name": "_min", "nameLocation": "3732:4:12", "nodeType": "VariableDeclaration", "scope": 11359, "src": "3724:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11280, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3724:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11303, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 11284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11282, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11242, "src": "3739:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "hexValue": "30", "id": 11283, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3745:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3739:7:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11300, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 11297, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11242, "src": "3797:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 11296, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3789:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11295, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3789:7:12", "typeDescriptions": {} } }, "id": 11298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3789:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 11299, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "3804:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3789:29:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11301, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3788:31:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "3739:80:12", "trueExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11285, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "3750:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "3767:13:12", "subExpression": { "arguments": [ { "id": 11288, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11242, "src": "3776:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 11287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3768:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11286, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3768:7:12", "typeDescriptions": {} } }, "id": 11289, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3768:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3750:30:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3783:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3750:34:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11294, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3749:36:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3724:95:12" }, { "assignments": [ 11305 ], "declarations": [ { "constant": false, "id": 11305, "mutability": "mutable", "name": "_max", "nameLocation": "3837:4:12", "nodeType": "VariableDeclaration", "scope": 11359, "src": "3829:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11304, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3829:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11327, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 11308, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11306, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11244, "src": "3844:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "hexValue": "30", "id": 11307, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3850:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3844:7:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 11321, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11244, "src": "3902:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 11320, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3894:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11319, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3894:7:12", "typeDescriptions": {} } }, "id": 11322, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3894:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 11323, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "3909:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3894:29:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11325, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3893:31:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "3844:80:12", "trueExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11309, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "3855:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "3872:13:12", "subExpression": { "arguments": [ { "id": 11312, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11244, "src": "3881:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 11311, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3873:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3873:7:12", "typeDescriptions": {} } }, "id": 11313, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3873:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3855:30:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3888:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3855:34:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11318, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3854:36:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3829:95:12" }, { "assignments": [ 11329 ], "declarations": [ { "constant": false, "id": 11329, "mutability": "mutable", "name": "y", "nameLocation": "3943:1:12", "nodeType": "VariableDeclaration", "scope": 11359, "src": "3935:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11328, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3935:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11335, "initialValue": { "arguments": [ { "id": 11331, "name": "_x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11257, "src": "3954:2:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 11332, "name": "_min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11281, "src": "3958:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 11333, "name": "_max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11305, "src": "3964:4:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11330, "name": "_bound", "nodeType": "Identifier", "overloadedDeclarations": [ 11213, 11360 ], "referencedDeclaration": 11213, "src": "3947:6:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 11334, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3947:22:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "3935:34:12" }, { "expression": { "id": 11357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 11336, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11247, "src": "4057:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11337, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11329, "src": "4066:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 11338, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "4070:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4066:18:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11352, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11329, "src": "4130:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11353, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "4134:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4130:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11351, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4123:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 11350, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4123:6:12", "typeDescriptions": {} } }, "id": 11355, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4123:26:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 11356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "4066:83:12", "trueExpression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11346, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "4094:21:12", "subExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11342, "name": "INT256_MIN_ABS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11074, "src": "4096:14:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 11343, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11329, "src": "4113:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4096:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 11345, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "4095:20:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 11347, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4118:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "4094:25:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11341, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4087:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 11340, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4087:6:12", "typeDescriptions": {} } }, "id": 11349, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4087:33:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4057:92:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 11358, "nodeType": "ExpressionStatement", "src": "4057:92:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_bound", "nameLocation": "3020:6:12", "parameters": { "id": 11245, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11240, "mutability": "mutable", "name": "x", "nameLocation": "3034:1:12", "nodeType": "VariableDeclaration", "scope": 11360, "src": "3027:8:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11239, "name": "int256", "nodeType": "ElementaryTypeName", "src": "3027:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 11242, "mutability": "mutable", "name": "min", "nameLocation": "3044:3:12", "nodeType": "VariableDeclaration", "scope": 11360, "src": "3037:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11241, "name": "int256", "nodeType": "ElementaryTypeName", "src": "3037:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 11244, "mutability": "mutable", "name": "max", "nameLocation": "3056:3:12", "nodeType": "VariableDeclaration", "scope": 11360, "src": "3049:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11243, "name": "int256", "nodeType": "ElementaryTypeName", "src": "3049:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "3026:34:12" }, "returnParameters": { "id": 11248, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11247, "mutability": "mutable", "name": "result", "nameLocation": "3099:6:12", "nodeType": "VariableDeclaration", "scope": 11360, "src": "3092:13:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11246, "name": "int256", "nodeType": "ElementaryTypeName", "src": "3092:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "3091:15:12" }, "scope": 11886, "stateMutability": "pure", "virtual": true, "visibility": "internal" }, { "id": 11388, "nodeType": "FunctionDefinition", "src": "4162:199:12", "nodes": [], "body": { "id": 11387, "nodeType": "Block", "src": "4257:104:12", "nodes": [], "statements": [ { "expression": { "id": 11377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 11371, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11369, "src": "4267:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 11373, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11362, "src": "4283:1:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 11374, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11364, "src": "4286:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "id": 11375, "name": "max", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11366, "src": "4291:3:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 11372, "name": "_bound", "nodeType": "Identifier", "overloadedDeclarations": [ 11213, 11360 ], "referencedDeclaration": 11360, "src": "4276:6:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$", "typeString": "function (int256,int256,int256) pure returns (int256)" } }, "id": 11376, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4276:19:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4267:28:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 11378, "nodeType": "ExpressionStatement", "src": "4267:28:12" }, { "expression": { "arguments": [ { "hexValue": "426f756e6420726573756c74", "id": 11380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4318:14:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f", "typeString": "literal_string \"Bound result\"" }, "value": "Bound result" }, { "arguments": [ { "id": 11383, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11369, "src": "4346:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 11381, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11068, "src": "4334:2:12", "typeDescriptions": { "typeIdentifier": "t_contract$_VmSafe_$12992", "typeString": "contract VmSafe" } }, "id": 11382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4337:8:12", "memberName": "toString", "nodeType": "MemberAccess", "referencedDeclaration": 12541, "src": "4334:11:12", "typeDescriptions": { "typeIdentifier": "t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$", "typeString": "function (int256) pure external returns (string memory)" } }, "id": 11384, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4334:19:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f", "typeString": "literal_string \"Bound result\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 11379, "name": "console2_log", "nodeType": "Identifier", "overloadedDeclarations": [ 11860, 11885 ], "referencedDeclaration": 11885, "src": "4305:12:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory,string memory) view" } }, "id": 11385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4305:49:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11386, "nodeType": "ExpressionStatement", "src": "4305:49:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "bound", "nameLocation": "4171:5:12", "parameters": { "id": 11367, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11362, "mutability": "mutable", "name": "x", "nameLocation": "4184:1:12", "nodeType": "VariableDeclaration", "scope": 11388, "src": "4177:8:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11361, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4177:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 11364, "mutability": "mutable", "name": "min", "nameLocation": "4194:3:12", "nodeType": "VariableDeclaration", "scope": 11388, "src": "4187:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11363, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4187:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "constant": false, "id": 11366, "mutability": "mutable", "name": "max", "nameLocation": "4206:3:12", "nodeType": "VariableDeclaration", "scope": 11388, "src": "4199:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11365, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4199:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "4176:34:12" }, "returnParameters": { "id": 11370, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11369, "mutability": "mutable", "name": "result", "nameLocation": "4249:6:12", "nodeType": "VariableDeclaration", "scope": 11388, "src": "4242:13:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 11368, "name": "int256", "nodeType": "ElementaryTypeName", "src": "4242:6:12", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "4241:15:12" }, "scope": 11886, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 11406, "nodeType": "FunctionDefinition", "src": "4367:160:12", "nodes": [], "body": { "id": 11405, "nodeType": "Block", "src": "4459:68:12", "nodes": [], "statements": [ { "expression": { "id": 11403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 11395, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11393, "src": "4469:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 11397, "name": "privateKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11390, "src": "4485:10:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "31", "id": 11398, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4497:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11401, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 11399, "name": "SECP256K1_ORDER", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11077, "src": "4500:15:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4518:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "4500:19:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11396, "name": "_bound", "nodeType": "Identifier", "overloadedDeclarations": [ 11213, 11360 ], "referencedDeclaration": 11213, "src": "4478:6:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, "id": 11402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4478:42:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4469:51:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11404, "nodeType": "ExpressionStatement", "src": "4469:51:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "boundPrivateKey", "nameLocation": "4376:15:12", "parameters": { "id": 11391, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11390, "mutability": "mutable", "name": "privateKey", "nameLocation": "4400:10:12", "nodeType": "VariableDeclaration", "scope": 11406, "src": "4392:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11389, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4392:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4391:20:12" }, "returnParameters": { "id": 11394, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11393, "mutability": "mutable", "name": "result", "nameLocation": "4451:6:12", "nodeType": "VariableDeclaration", "scope": 11406, "src": "4443:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11392, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4443:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4442:16:12" }, "scope": 11886, "stateMutability": "pure", "virtual": true, "visibility": "internal" }, { "id": 11440, "nodeType": "FunctionDefinition", "src": "4533:259:12", "nodes": [], "body": { "id": 11439, "nodeType": "Block", "src": "4610:182:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11417, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 11414, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11408, "src": "4628:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 11415, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4630:6:12", "memberName": "length", "nodeType": "MemberAccess", "src": "4628:8:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "3332", "id": 11416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4640:2:12", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, "src": "4628:14:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "5374645574696c73206279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e", "id": 11418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4644:55:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88", "typeString": "literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\"" }, "value": "StdUtils bytesToUint(bytes): Bytes length exceeds 32." } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88", "typeString": "literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\"" } ], "id": 11413, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "4620:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11419, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4620:80:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11420, "nodeType": "ExpressionStatement", "src": "4620:80:12" }, { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3332", "id": 11427, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4755:2:12", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "expression": { "id": 11428, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11408, "src": "4760:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 11429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4762:6:12", "memberName": "length", "nodeType": "MemberAccess", "src": "4760:8:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4755:13:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11426, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "4745:9:12", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes memory)" }, "typeName": { "id": 11425, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4749:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, "id": 11431, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4745:24:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 11432, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11408, "src": "4771:1:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 11423, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4728:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11424, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4732:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "4728:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11433, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4728:45:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "components": [ { "id": 11435, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4776:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11434, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4776:7:12", "typeDescriptions": {} } } ], "id": 11436, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "4775:9:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" } ], "expression": { "id": 11421, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4717:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11422, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4721:6:12", "memberName": "decode", "nodeType": "MemberAccess", "src": "4717:10:12", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 11437, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4717:68:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 11412, "id": 11438, "nodeType": "Return", "src": "4710:75:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "bytesToUint", "nameLocation": "4542:11:12", "parameters": { "id": 11409, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11408, "mutability": "mutable", "name": "b", "nameLocation": "4567:1:12", "nodeType": "VariableDeclaration", "scope": 11440, "src": "4554:14:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 11407, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4554:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "4553:16:12" }, "returnParameters": { "id": 11412, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11411, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 11440, "src": "4601:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11410, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4601:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4600:9:12" }, "scope": 11886, "stateMutability": "pure", "virtual": true, "visibility": "internal" }, { "id": 11625, "nodeType": "FunctionDefinition", "src": "5026:1962:12", "nodes": [], "body": { "id": 11624, "nodeType": "Block", "src": "5129:1859:12", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11450, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "5455:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30783030", "id": 11451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5464:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0x00" }, "src": "5455:13:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11474, "nodeType": "IfStatement", "src": "5451:134:12", "trueBody": { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30786436", "id": 11459, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5539:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_214_by_1", "typeString": "int_const 214" }, "value": "0xd6" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_214_by_1", "typeString": "int_const 214" } ], "id": 11458, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5532:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11457, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5532:6:12", "typeDescriptions": {} } }, "id": 11460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5532:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "hexValue": "30783934", "id": 11463, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5553:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" }, "value": "0x94" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" } ], "id": 11462, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5546:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11461, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5546:6:12", "typeDescriptions": {} } }, "id": 11464, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5546:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "id": 11465, "name": "deployer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11443, "src": "5560:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30783830", "id": 11468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5577:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "0x80" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" } ], "id": 11467, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5570:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11466, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5570:6:12", "typeDescriptions": {} } }, "id": 11469, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5570:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } ], "expression": { "id": 11455, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5515:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11456, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5519:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "5515:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11470, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5515:68:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11454, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "5505:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11471, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5505:79:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11453, "name": "addressFromLast20Bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11835, "src": "5482:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) pure returns (address)" } }, "id": 11472, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5482:103:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11449, "id": 11473, "nodeType": "Return", "src": "5475:110:12" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11475, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "5599:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "30783766", "id": 11476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5608:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_127_by_1", "typeString": "int_const 127" }, "value": "0x7f" }, "src": "5599:13:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11499, "nodeType": "IfStatement", "src": "5595:134:12", "trueBody": { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30786436", "id": 11484, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5683:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_214_by_1", "typeString": "int_const 214" }, "value": "0xd6" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_214_by_1", "typeString": "int_const 214" } ], "id": 11483, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5676:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11482, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5676:6:12", "typeDescriptions": {} } }, "id": 11485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5676:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "hexValue": "30783934", "id": 11488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5697:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" }, "value": "0x94" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" } ], "id": 11487, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5690:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11486, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5690:6:12", "typeDescriptions": {} } }, "id": 11489, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5690:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "id": 11490, "name": "deployer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11443, "src": "5704:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "id": 11493, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "5720:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11492, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5714:5:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { "id": 11491, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "5714:5:12", "typeDescriptions": {} } }, "id": 11494, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5714:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "expression": { "id": 11480, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5659:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11481, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5663:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "5659:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11495, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5659:68:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11479, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "5649:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11496, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5649:79:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11478, "name": "addressFromLast20Bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11835, "src": "5626:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) pure returns (address)" } }, "id": 11497, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5626:103:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11449, "id": 11498, "nodeType": "Return", "src": "5619:110:12" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11500, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "5882:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "id": 11505, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "id": 11503, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 11501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5891:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "hexValue": "38", "id": 11502, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5894:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, "src": "5891:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5898:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5891:8:12", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" } }, "src": "5882:17:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11532, "nodeType": "IfStatement", "src": "5878:148:12", "trueBody": { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30786437", "id": 11513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5966:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_215_by_1", "typeString": "int_const 215" }, "value": "0xd7" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_215_by_1", "typeString": "int_const 215" } ], "id": 11512, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5959:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11511, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5959:6:12", "typeDescriptions": {} } }, "id": 11514, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5959:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "hexValue": "30783934", "id": 11517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5980:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" }, "value": "0x94" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" } ], "id": 11516, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5973:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11515, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5973:6:12", "typeDescriptions": {} } }, "id": 11518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5973:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "id": 11519, "name": "deployer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11443, "src": "5987:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30783831", "id": 11522, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6004:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_129_by_1", "typeString": "int_const 129" }, "value": "0x81" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_129_by_1", "typeString": "int_const 129" } ], "id": 11521, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5997:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11520, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "5997:6:12", "typeDescriptions": {} } }, "id": 11523, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5997:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "id": 11526, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "6017:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11525, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6011:5:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { "id": 11524, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "6011:5:12", "typeDescriptions": {} } }, "id": 11527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6011:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], "expression": { "id": 11509, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "5942:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11510, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "5946:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "5942:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11528, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5942:82:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11508, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "5932:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11529, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5932:93:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11507, "name": "addressFromLast20Bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11835, "src": "5909:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) pure returns (address)" } }, "id": 11530, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5909:117:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11449, "id": 11531, "nodeType": "Return", "src": "5902:124:12" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11533, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "6040:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_rational_65535_by_1", "typeString": "int_const 65535" }, "id": 11538, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_rational_65536_by_1", "typeString": "int_const 65536" }, "id": 11536, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 11534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6049:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "hexValue": "3136", "id": 11535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6052:2:12", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, "src": "6049:5:12", "typeDescriptions": { "typeIdentifier": "t_rational_65536_by_1", "typeString": "int_const 65536" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6057:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "6049:9:12", "typeDescriptions": { "typeIdentifier": "t_rational_65535_by_1", "typeString": "int_const 65535" } }, "src": "6040:18:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11565, "nodeType": "IfStatement", "src": "6036:149:12", "trueBody": { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30786438", "id": 11546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6124:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_216_by_1", "typeString": "int_const 216" }, "value": "0xd8" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_216_by_1", "typeString": "int_const 216" } ], "id": 11545, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6117:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11544, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6117:6:12", "typeDescriptions": {} } }, "id": 11547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6117:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "hexValue": "30783934", "id": 11550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6138:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" }, "value": "0x94" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" } ], "id": 11549, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6131:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11548, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6131:6:12", "typeDescriptions": {} } }, "id": 11551, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6131:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "id": 11552, "name": "deployer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11443, "src": "6145:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30783832", "id": 11555, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6162:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_130_by_1", "typeString": "int_const 130" }, "value": "0x82" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_130_by_1", "typeString": "int_const 130" } ], "id": 11554, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6155:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11553, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6155:6:12", "typeDescriptions": {} } }, "id": 11556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6155:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "id": 11559, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "6176:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11558, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6169:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint16_$", "typeString": "type(uint16)" }, "typeName": { "id": 11557, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "6169:6:12", "typeDescriptions": {} } }, "id": 11560, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6169:13:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" } ], "expression": { "id": 11542, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6100:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11543, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6104:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "6100:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6100:83:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11541, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "6090:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11562, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6090:94:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11540, "name": "addressFromLast20Bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11835, "src": "6067:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) pure returns (address)" } }, "id": 11563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6067:118:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11449, "id": 11564, "nodeType": "Return", "src": "6060:125:12" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11566, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "6199:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_rational_16777215_by_1", "typeString": "int_const 16777215" }, "id": 11571, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_rational_16777216_by_1", "typeString": "int_const 16777216" }, "id": 11569, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 11567, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6208:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "hexValue": "3234", "id": 11568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6211:2:12", "typeDescriptions": { "typeIdentifier": "t_rational_24_by_1", "typeString": "int_const 24" }, "value": "24" }, "src": "6208:5:12", "typeDescriptions": { "typeIdentifier": "t_rational_16777216_by_1", "typeString": "int_const 16777216" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 11570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6216:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "6208:9:12", "typeDescriptions": { "typeIdentifier": "t_rational_16777215_by_1", "typeString": "int_const 16777215" } }, "src": "6199:18:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11598, "nodeType": "IfStatement", "src": "6195:149:12", "trueBody": { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30786439", "id": 11579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6283:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_217_by_1", "typeString": "int_const 217" }, "value": "0xd9" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_217_by_1", "typeString": "int_const 217" } ], "id": 11578, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6276:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11577, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6276:6:12", "typeDescriptions": {} } }, "id": 11580, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6276:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "hexValue": "30783934", "id": 11583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6297:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" }, "value": "0x94" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" } ], "id": 11582, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6290:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11581, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6290:6:12", "typeDescriptions": {} } }, "id": 11584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6290:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "id": 11585, "name": "deployer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11443, "src": "6304:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30783833", "id": 11588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6321:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_131_by_1", "typeString": "int_const 131" }, "value": "0x83" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_131_by_1", "typeString": "int_const 131" } ], "id": 11587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6314:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11586, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6314:6:12", "typeDescriptions": {} } }, "id": 11589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6314:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "id": 11592, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "6335:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6328:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint24_$", "typeString": "type(uint24)" }, "typeName": { "id": 11590, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "6328:6:12", "typeDescriptions": {} } }, "id": 11593, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6328:13:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_uint24", "typeString": "uint24" } ], "expression": { "id": 11575, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6259:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11576, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6263:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "6259:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11594, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6259:83:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11574, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "6249:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11595, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6249:94:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11573, "name": "addressFromLast20Bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11835, "src": "6226:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) pure returns (address)" } }, "id": 11596, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6226:118:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11449, "id": 11597, "nodeType": "Return", "src": "6219:125:12" } }, { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30786461", "id": 11605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6911:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_218_by_1", "typeString": "int_const 218" }, "value": "0xda" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_218_by_1", "typeString": "int_const 218" } ], "id": 11604, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6904:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11603, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6904:6:12", "typeDescriptions": {} } }, "id": 11606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6904:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "hexValue": "30783934", "id": 11609, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6925:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" }, "value": "0x94" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_148_by_1", "typeString": "int_const 148" } ], "id": 11608, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6918:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11607, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6918:6:12", "typeDescriptions": {} } }, "id": 11610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6918:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "id": 11611, "name": "deployer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11443, "src": "6932:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30783834", "id": 11614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6949:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_132_by_1", "typeString": "int_const 132" }, "value": "0x84" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_132_by_1", "typeString": "int_const 132" } ], "id": 11613, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6942:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11612, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "6942:6:12", "typeDescriptions": {} } }, "id": 11615, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6942:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "arguments": [ { "id": 11618, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11445, "src": "6963:5:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11617, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6956:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 11616, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6956:6:12", "typeDescriptions": {} } }, "id": 11619, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6956:13:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "expression": { "id": 11601, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "6887:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11602, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "6891:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "6887:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6887:83:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11600, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "6877:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11621, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6877:94:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11599, "name": "addressFromLast20Bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11835, "src": "6841:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) pure returns (address)" } }, "id": 11622, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6841:140:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11449, "id": 11623, "nodeType": "Return", "src": "6834:147:12" } ] }, "documentation": { "id": 11441, "nodeType": "StructuredDocumentation", "src": "4798:223:12", "text": "@dev Compute the address a contract will be deployed at for a given deployer address and nonce\n @notice adapted from Solmate implementation (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol)" }, "implemented": true, "kind": "function", "modifiers": [], "name": "computeCreateAddress", "nameLocation": "5035:20:12", "parameters": { "id": 11446, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11443, "mutability": "mutable", "name": "deployer", "nameLocation": "5064:8:12", "nodeType": "VariableDeclaration", "scope": 11625, "src": "5056:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11442, "name": "address", "nodeType": "ElementaryTypeName", "src": "5056:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 11445, "mutability": "mutable", "name": "nonce", "nameLocation": "5082:5:12", "nodeType": "VariableDeclaration", "scope": 11625, "src": "5074:13:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11444, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5074:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "5055:33:12" }, "returnParameters": { "id": 11449, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11448, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 11625, "src": "5120:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11447, "name": "address", "nodeType": "ElementaryTypeName", "src": "5120:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "5119:9:12" }, "scope": 11886, "stateMutability": "pure", "virtual": true, "visibility": "internal" }, { "id": 11652, "nodeType": "FunctionDefinition", "src": "6994:280:12", "nodes": [], "body": { "id": 11651, "nodeType": "Block", "src": "7155:119:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30786666", "id": 11642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7229:4:12", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "0xff" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" } ], "id": 11641, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7222:6:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": { "id": 11640, "name": "bytes1", "nodeType": "ElementaryTypeName", "src": "7222:6:12", "typeDescriptions": {} } }, "id": 11643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7222:12:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, { "id": 11644, "name": "deployer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11631, "src": "7236:8:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 11645, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11627, "src": "7246:4:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 11646, "name": "initcodeHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11629, "src": "7252:12:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "id": 11638, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "7205:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11639, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "7209:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "7205:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11647, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7205:60:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11637, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "7195:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11648, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7195:71:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11636, "name": "addressFromLast20Bytes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11835, "src": "7172:22:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32) pure returns (address)" } }, "id": 11649, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7172:95:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11635, "id": 11650, "nodeType": "Return", "src": "7165:102:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "computeCreate2Address", "nameLocation": "7003:21:12", "parameters": { "id": 11632, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11627, "mutability": "mutable", "name": "salt", "nameLocation": "7033:4:12", "nodeType": "VariableDeclaration", "scope": 11652, "src": "7025:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11626, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7025:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 11629, "mutability": "mutable", "name": "initcodeHash", "nameLocation": "7047:12:12", "nodeType": "VariableDeclaration", "scope": 11652, "src": "7039:20:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11628, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7039:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 11631, "mutability": "mutable", "name": "deployer", "nameLocation": "7069:8:12", "nodeType": "VariableDeclaration", "scope": 11652, "src": "7061:16:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11630, "name": "address", "nodeType": "ElementaryTypeName", "src": "7061:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "7024:54:12" }, "returnParameters": { "id": 11635, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11634, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 11652, "src": "7142:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11633, "name": "address", "nodeType": "ElementaryTypeName", "src": "7142:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "7141:9:12" }, "scope": 11886, "stateMutability": "pure", "virtual": true, "visibility": "internal" }, { "id": 11669, "nodeType": "FunctionDefinition", "src": "7383:181:12", "nodes": [], "body": { "id": 11668, "nodeType": "Block", "src": "7482:82:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 11663, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11655, "src": "7521:4:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 11664, "name": "initCodeHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11657, "src": "7527:12:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 11665, "name": "CREATE2_FACTORY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11083, "src": "7541:15:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11662, "name": "computeCreate2Address", "nodeType": "Identifier", "overloadedDeclarations": [ 11652, 11669 ], "referencedDeclaration": 11652, "src": "7499:21:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$", "typeString": "function (bytes32,bytes32,address) pure returns (address)" } }, "id": 11666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7499:58:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11661, "id": 11667, "nodeType": "Return", "src": "7492:65:12" } ] }, "documentation": { "id": 11653, "nodeType": "StructuredDocumentation", "src": "7280:98:12", "text": "@dev returns the address of a contract created with CREATE2 using the default CREATE2 deployer" }, "implemented": true, "kind": "function", "modifiers": [], "name": "computeCreate2Address", "nameLocation": "7392:21:12", "parameters": { "id": 11658, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11655, "mutability": "mutable", "name": "salt", "nameLocation": "7422:4:12", "nodeType": "VariableDeclaration", "scope": 11669, "src": "7414:12:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11654, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7414:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 11657, "mutability": "mutable", "name": "initCodeHash", "nameLocation": "7436:12:12", "nodeType": "VariableDeclaration", "scope": 11669, "src": "7428:20:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11656, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7428:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "7413:36:12" }, "returnParameters": { "id": 11661, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11660, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 11669, "src": "7473:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11659, "name": "address", "nodeType": "ElementaryTypeName", "src": "7473:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "7472:9:12" }, "scope": 11886, "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "id": 11683, "nodeType": "FunctionDefinition", "src": "7788:135:12", "nodes": [], "body": { "id": 11682, "nodeType": "Block", "src": "7869:54:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 11678, "name": "creationCode", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11672, "src": "7899:12:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "hexValue": "", "id": 11679, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7913:2:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 11677, "name": "hashInitCode", "nodeType": "Identifier", "overloadedDeclarations": [ 11683, 11702 ], "referencedDeclaration": 11702, "src": "7886:12:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory,bytes memory) pure returns (bytes32)" } }, "id": 11680, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7886:30:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 11676, "id": 11681, "nodeType": "Return", "src": "7879:37:12" } ] }, "documentation": { "id": 11670, "nodeType": "StructuredDocumentation", "src": "7570:213:12", "text": "@dev returns the hash of the init code (creation code + no args) used in CREATE2 with no constructor arguments\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode" }, "implemented": true, "kind": "function", "modifiers": [], "name": "hashInitCode", "nameLocation": "7797:12:12", "parameters": { "id": 11673, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11672, "mutability": "mutable", "name": "creationCode", "nameLocation": "7823:12:12", "nodeType": "VariableDeclaration", "scope": 11683, "src": "7810:25:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 11671, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7810:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "7809:27:12" }, "returnParameters": { "id": 11676, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11675, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 11683, "src": "7860:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11674, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7860:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "7859:9:12" }, "scope": 11886, "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "id": 11702, "nodeType": "FunctionDefinition", "src": "8196:171:12", "nodes": [], "body": { "id": 11701, "nodeType": "Block", "src": "8296:71:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 11696, "name": "creationCode", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11686, "src": "8340:12:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "id": 11697, "name": "args", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11688, "src": "8354:4:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 11694, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "8323:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11695, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "8327:12:12", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "8323:16:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 11698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8323:36:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 11693, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "8313:9:12", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 11699, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8313:47:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 11692, "id": 11700, "nodeType": "Return", "src": "8306:54:12" } ] }, "documentation": { "id": 11684, "nodeType": "StructuredDocumentation", "src": "7929:262:12", "text": "@dev returns the hash of the init code (creation code + ABI-encoded args) used in CREATE2\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode\n @param args the ABI-encoded arguments to the constructor of C" }, "implemented": true, "kind": "function", "modifiers": [], "name": "hashInitCode", "nameLocation": "8205:12:12", "parameters": { "id": 11689, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11686, "mutability": "mutable", "name": "creationCode", "nameLocation": "8231:12:12", "nodeType": "VariableDeclaration", "scope": 11702, "src": "8218:25:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 11685, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8218:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 11688, "mutability": "mutable", "name": "args", "nameLocation": "8258:4:12", "nodeType": "VariableDeclaration", "scope": 11702, "src": "8245:17:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 11687, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8245:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "8217:46:12" }, "returnParameters": { "id": 11692, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11691, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 11702, "src": "8287:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11690, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "8287:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "8286:9:12" }, "scope": 11886, "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "id": 11816, "nodeType": "FunctionDefinition", "src": "8478:1124:12", "nodes": [], "body": { "id": 11815, "nodeType": "Block", "src": "8628:974:12", "nodes": [], "statements": [ { "assignments": [ 11714 ], "declarations": [ { "constant": false, "id": 11714, "mutability": "mutable", "name": "tokenCodeSize", "nameLocation": "8646:13:12", "nodeType": "VariableDeclaration", "scope": 11815, "src": "8638:21:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11713, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8638:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11715, "nodeType": "VariableDeclarationStatement", "src": "8638:21:12" }, { "AST": { "nativeSrc": "8678:59:12", "nodeType": "YulBlock", "src": "8678:59:12", "statements": [ { "nativeSrc": "8692:35:12", "nodeType": "YulAssignment", "src": "8692:35:12", "value": { "arguments": [ { "name": "token", "nativeSrc": "8721:5:12", "nodeType": "YulIdentifier", "src": "8721:5:12" } ], "functionName": { "name": "extcodesize", "nativeSrc": "8709:11:12", "nodeType": "YulIdentifier", "src": "8709:11:12" }, "nativeSrc": "8709:18:12", "nodeType": "YulFunctionCall", "src": "8709:18:12" }, "variableNames": [ { "name": "tokenCodeSize", "nativeSrc": "8692:13:12", "nodeType": "YulIdentifier", "src": "8692:13:12" } ] } ] }, "evmVersion": "paris", "externalReferences": [ { "declaration": 11704, "isOffset": false, "isSlot": false, "src": "8721:5:12", "valueSize": 1 }, { "declaration": 11714, "isOffset": false, "isSlot": false, "src": "8692:13:12", "valueSize": 1 } ], "id": 11716, "nodeType": "InlineAssembly", "src": "8669:68:12" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11718, "name": "tokenCodeSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11714, "src": "8754:13:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 11719, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8770:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8754:17:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "5374645574696c7320676574546f6b656e42616c616e63657328616464726573732c616464726573735b5d293a20546f6b656e2061646472657373206973206e6f74206120636f6e74726163742e", "id": 11721, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8773:80:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe", "typeString": "literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\"" }, "value": "StdUtils getTokenBalances(address,address[]): Token address is not a contract." } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe", "typeString": "literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\"" } ], "id": 11717, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "8746:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 11722, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8746:108:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 11723, "nodeType": "ExpressionStatement", "src": "8746:108:12" }, { "assignments": [ 11725 ], "declarations": [ { "constant": false, "id": 11725, "mutability": "mutable", "name": "length", "nameLocation": "8929:6:12", "nodeType": "VariableDeclaration", "scope": 11815, "src": "8921:14:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11724, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8921:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11728, "initialValue": { "expression": { "id": 11726, "name": "addresses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11707, "src": "8938:9:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 11727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "8948:6:12", "memberName": "length", "nodeType": "MemberAccess", "src": "8938:16:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "8921:33:12" }, { "assignments": [ 11734 ], "declarations": [ { "constant": false, "id": 11734, "mutability": "mutable", "name": "calls", "nameLocation": "8990:5:12", "nodeType": "VariableDeclaration", "scope": 11815, "src": "8964:31:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Call_$29661_memory_ptr_$dyn_memory_ptr", "typeString": "struct IMulticall3.Call[]" }, "typeName": { "baseType": { "id": 11732, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 11731, "name": "IMulticall3.Call", "nameLocations": [ "8964:11:12", "8976:4:12" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29661, "src": "8964:16:12" }, "referencedDeclaration": 29661, "src": "8964:16:12", "typeDescriptions": { "typeIdentifier": "t_struct$_Call_$29661_storage_ptr", "typeString": "struct IMulticall3.Call" } }, "id": 11733, "nodeType": "ArrayTypeName", "src": "8964:18:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Call_$29661_storage_$dyn_storage_ptr", "typeString": "struct IMulticall3.Call[]" } }, "visibility": "internal" } ], "id": 11741, "initialValue": { "arguments": [ { "id": 11739, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11725, "src": "9021:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11738, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "8998:22:12", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Call_$29661_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct IMulticall3.Call memory[] memory)" }, "typeName": { "baseType": { "id": 11736, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 11735, "name": "IMulticall3.Call", "nameLocations": [ "9002:11:12", "9014:4:12" ], "nodeType": "IdentifierPath", "referencedDeclaration": 29661, "src": "9002:16:12" }, "referencedDeclaration": 29661, "src": "9002:16:12", "typeDescriptions": { "typeIdentifier": "t_struct$_Call_$29661_storage_ptr", "typeString": "struct IMulticall3.Call" } }, "id": 11737, "nodeType": "ArrayTypeName", "src": "9002:18:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Call_$29661_storage_$dyn_storage_ptr", "typeString": "struct IMulticall3.Call[]" } } }, "id": 11740, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8998:30:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Call_$29661_memory_ptr_$dyn_memory_ptr", "typeString": "struct IMulticall3.Call memory[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "8964:64:12" }, { "body": { "id": 11769, "nodeType": "Block", "src": "9075:189:12", "statements": [ { "expression": { "id": 11767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 11752, "name": "calls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11734, "src": "9147:5:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Call_$29661_memory_ptr_$dyn_memory_ptr", "typeString": "struct IMulticall3.Call memory[] memory" } }, "id": 11754, "indexExpression": { "id": 11753, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11743, "src": "9153:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9147:8:12", "typeDescriptions": { "typeIdentifier": "t_struct$_Call_$29661_memory_ptr", "typeString": "struct IMulticall3.Call memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 11757, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11704, "src": "9184:5:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30783730613038323331", "id": 11760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9224:10:12", "typeDescriptions": { "typeIdentifier": "t_rational_1889567281_by_1", "typeString": "int_const 1889567281" }, "value": "0x70a08231" }, { "components": [ { "baseExpression": { "id": 11761, "name": "addresses", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11707, "src": "9237:9:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 11763, "indexExpression": { "id": 11762, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11743, "src": "9247:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9237:12:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "id": 11764, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "9236:14:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1889567281_by_1", "typeString": "int_const 1889567281" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 11758, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9201:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11759, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9205:18:12", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "9201:22:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)" } }, "id": 11765, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9201:50:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 11755, "name": "IMulticall3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29816, "src": "9158:11:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IMulticall3_$29816_$", "typeString": "type(contract IMulticall3)" } }, "id": 11756, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "9170:4:12", "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": 29661, "src": "9158:16:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Call_$29661_storage_ptr_$", "typeString": "type(struct IMulticall3.Call storage pointer)" } }, "id": 11766, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ "9176:6:12", "9191:8:12" ], "names": [ "target", "callData" ], "nodeType": "FunctionCall", "src": "9158:95:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Call_$29661_memory_ptr", "typeString": "struct IMulticall3.Call memory" } }, "src": "9147:106:12", "typeDescriptions": { "typeIdentifier": "t_struct$_Call_$29661_memory_ptr", "typeString": "struct IMulticall3.Call memory" } }, "id": 11768, "nodeType": "ExpressionStatement", "src": "9147:106:12" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11746, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11743, "src": "9058:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 11747, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11725, "src": "9062:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9058:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11770, "initializationExpression": { "assignments": [ 11743 ], "declarations": [ { "constant": false, "id": 11743, "mutability": "mutable", "name": "i", "nameLocation": "9051:1:12", "nodeType": "VariableDeclaration", "scope": 11770, "src": "9043:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11742, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9043:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11745, "initialValue": { "hexValue": "30", "id": 11744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9055:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "9043:13:12" }, "isSimpleCounterLoop": true, "loopExpression": { "expression": { "id": 11750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "9070:3:12", "subExpression": { "id": 11749, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11743, "src": "9072:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11751, "nodeType": "ExpressionStatement", "src": "9070:3:12" }, "nodeType": "ForStatement", "src": "9038:226:12" }, { "assignments": [ null, 11775 ], "declarations": [ null, { "constant": false, "id": 11775, "mutability": "mutable", "name": "returnData", "nameLocation": "9328:10:12", "nodeType": "VariableDeclaration", "scope": 11815, "src": "9313:25:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]" }, "typeName": { "baseType": { "id": 11773, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "9313:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "id": 11774, "nodeType": "ArrayTypeName", "src": "9313:7:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]" } }, "visibility": "internal" } ], "id": 11780, "initialValue": { "arguments": [ { "id": 11778, "name": "calls", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11734, "src": "9362:5:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Call_$29661_memory_ptr_$dyn_memory_ptr", "typeString": "struct IMulticall3.Call memory[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_struct$_Call_$29661_memory_ptr_$dyn_memory_ptr", "typeString": "struct IMulticall3.Call memory[] memory" } ], "expression": { "id": 11776, "name": "multicall", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11051, "src": "9342:9:12", "typeDescriptions": { "typeIdentifier": "t_contract$_IMulticall3_$29816", "typeString": "contract IMulticall3" } }, "id": 11777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "9352:9:12", "memberName": "aggregate", "nodeType": "MemberAccess", "referencedDeclaration": 29694, "src": "9342:19:12", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_array$_t_struct$_Call_$29661_memory_ptr_$dyn_memory_ptr_$returns$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (struct IMulticall3.Call memory[] memory) payable external returns (uint256,bytes memory[] memory)" } }, "id": 11779, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9342:26:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", "typeString": "tuple(uint256,bytes memory[] memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "9310:58:12" }, { "expression": { "id": 11787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 11781, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11711, "src": "9442:8:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 11785, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11725, "src": "9467:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11784, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "9453:13:12", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { "id": 11782, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9457:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11783, "nodeType": "ArrayTypeName", "src": "9457:9:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, "id": 11786, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9453:21:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "src": "9442:32:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 11788, "nodeType": "ExpressionStatement", "src": "9442:32:12" }, { "body": { "id": 11813, "nodeType": "Block", "src": "9521:75:12", "statements": [ { "expression": { "id": 11811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 11799, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11711, "src": "9535:8:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 11801, "indexExpression": { "id": 11800, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11790, "src": "9544:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9535:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "baseExpression": { "id": 11804, "name": "returnData", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11775, "src": "9560:10:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory" } }, "id": 11806, "indexExpression": { "id": 11805, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11790, "src": "9571:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9560:13:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "components": [ { "id": 11808, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9576:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11807, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9576:7:12", "typeDescriptions": {} } } ], "id": 11809, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "9575:9:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" } ], "expression": { "id": 11802, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "9549:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11803, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9553:6:12", "memberName": "decode", "nodeType": "MemberAccess", "src": "9549:10:12", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 11810, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9549:36:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9535:50:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11812, "nodeType": "ExpressionStatement", "src": "9535:50:12" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 11795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 11793, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11790, "src": "9504:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 11794, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11725, "src": "9508:6:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "9504:10:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11814, "initializationExpression": { "assignments": [ 11790 ], "declarations": [ { "constant": false, "id": 11790, "mutability": "mutable", "name": "i", "nameLocation": "9497:1:12", "nodeType": "VariableDeclaration", "scope": 11814, "src": "9489:9:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11789, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9489:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 11792, "initialValue": { "hexValue": "30", "id": 11791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9501:1:12", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "9489:13:12" }, "isSimpleCounterLoop": true, "loopExpression": { "expression": { "id": 11797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "9516:3:12", "subExpression": { "id": 11796, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11790, "src": "9518:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11798, "nodeType": "ExpressionStatement", "src": "9516:3:12" }, "nodeType": "ForStatement", "src": "9484:112:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "getTokenBalances", "nameLocation": "8487:16:12", "parameters": { "id": 11708, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11704, "mutability": "mutable", "name": "token", "nameLocation": "8512:5:12", "nodeType": "VariableDeclaration", "scope": 11816, "src": "8504:13:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11703, "name": "address", "nodeType": "ElementaryTypeName", "src": "8504:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 11707, "mutability": "mutable", "name": "addresses", "nameLocation": "8536:9:12", "nodeType": "VariableDeclaration", "scope": 11816, "src": "8519:26:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 11705, "name": "address", "nodeType": "ElementaryTypeName", "src": "8519:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 11706, "nodeType": "ArrayTypeName", "src": "8519:9:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "8503:43:12" }, "returnParameters": { "id": 11712, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11711, "mutability": "mutable", "name": "balances", "nameLocation": "8614:8:12", "nodeType": "VariableDeclaration", "scope": 11816, "src": "8597:25:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 11709, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8597:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 11710, "nodeType": "ArrayTypeName", "src": "8597:9:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "src": "8596:27:12" }, "scope": 11886, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 11835, "nodeType": "FunctionDefinition", "src": "9822:144:12", "nodes": [], "body": { "id": 11834, "nodeType": "Block", "src": "9905:61:12", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "id": 11829, "name": "bytesValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11818, "src": "9946:10:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 11828, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9938:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 11827, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9938:7:12", "typeDescriptions": {} } }, "id": 11830, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9938:19:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 11826, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9930:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)" }, "typeName": { "id": 11825, "name": "uint160", "nodeType": "ElementaryTypeName", "src": "9930:7:12", "typeDescriptions": {} } }, "id": 11831, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9930:28:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint160", "typeString": "uint160" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint160", "typeString": "uint160" } ], "id": 11824, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9922:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11823, "name": "address", "nodeType": "ElementaryTypeName", "src": "9922:7:12", "typeDescriptions": {} } }, "id": 11832, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9922:37:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 11822, "id": 11833, "nodeType": "Return", "src": "9915:44:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "addressFromLast20Bytes", "nameLocation": "9831:22:12", "parameters": { "id": 11819, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11818, "mutability": "mutable", "name": "bytesValue", "nameLocation": "9862:10:12", "nodeType": "VariableDeclaration", "scope": 11835, "src": "9854:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 11817, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "9854:7:12", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "9853:20:12" }, "returnParameters": { "id": 11822, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11821, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 11835, "src": "9896:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11820, "name": "address", "nodeType": "ElementaryTypeName", "src": "9896:7:12", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "9895:9:12" }, "scope": 11886, "stateMutability": "pure", "virtual": false, "visibility": "private" }, { "id": 11860, "nodeType": "FunctionDefinition", "src": "10096:207:12", "nodes": [], "body": { "id": 11859, "nodeType": "Block", "src": "10161:142:12", "nodes": [], "statements": [ { "assignments": [ 11843, null ], "declarations": [ { "constant": false, "id": 11843, "mutability": "mutable", "name": "status", "nameLocation": "10177:6:12", "nodeType": "VariableDeclaration", "scope": 11859, "src": "10172:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11842, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10172:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, null ], "id": 11856, "initialValue": { "arguments": [ { "arguments": [ { "hexValue": "6c6f6728737472696e672c75696e7432353629", "id": 11851, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10249:21:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e", "typeString": "literal_string \"log(string,uint256)\"" }, "value": "log(string,uint256)" }, { "id": 11852, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11837, "src": "10272:2:12", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 11853, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11839, "src": "10276:2:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e", "typeString": "literal_string \"log(string,uint256)\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 11849, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10225:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11850, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10229:19:12", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10225:23:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, "id": 11854, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10225:54:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "arguments": [ { "id": 11846, "name": "CONSOLE2_ADDRESS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11071, "src": "10196:16:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11845, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10188:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11844, "name": "address", "nodeType": "ElementaryTypeName", "src": "10188:7:12", "typeDescriptions": {} } }, "id": 11847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10188:25:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 11848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10214:10:12", "memberName": "staticcall", "nodeType": "MemberAccess", "src": "10188:36:12", "typeDescriptions": { "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, "id": 11855, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10188:92:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "10171:109:12" }, { "expression": { "id": 11857, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11843, "src": "10290:6:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11858, "nodeType": "ExpressionStatement", "src": "10290:6:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "console2_log", "nameLocation": "10105:12:12", "parameters": { "id": 11840, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11837, "mutability": "mutable", "name": "p0", "nameLocation": "10132:2:12", "nodeType": "VariableDeclaration", "scope": 11860, "src": "10118:16:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 11836, "name": "string", "nodeType": "ElementaryTypeName", "src": "10118:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 11839, "mutability": "mutable", "name": "p1", "nameLocation": "10144:2:12", "nodeType": "VariableDeclaration", "scope": 11860, "src": "10136:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 11838, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10136:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "10117:30:12" }, "returnParameters": { "id": 11841, "nodeType": "ParameterList", "parameters": [], "src": "10161:0:12" }, "scope": 11886, "stateMutability": "view", "virtual": false, "visibility": "private" }, { "id": 11885, "nodeType": "FunctionDefinition", "src": "10309:212:12", "nodes": [], "body": { "id": 11884, "nodeType": "Block", "src": "10380:141:12", "nodes": [], "statements": [ { "assignments": [ 11868, null ], "declarations": [ { "constant": false, "id": 11868, "mutability": "mutable", "name": "status", "nameLocation": "10396:6:12", "nodeType": "VariableDeclaration", "scope": 11884, "src": "10391:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 11867, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10391:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, null ], "id": 11881, "initialValue": { "arguments": [ { "arguments": [ { "hexValue": "6c6f6728737472696e672c737472696e6729", "id": 11876, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10468:20:12", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac", "typeString": "literal_string \"log(string,string)\"" }, "value": "log(string,string)" }, { "id": 11877, "name": "p0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11862, "src": "10490:2:12", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 11878, "name": "p1", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11864, "src": "10494:2:12", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac", "typeString": "literal_string \"log(string,string)\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "id": 11874, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "10444:3:12", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 11875, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "10448:19:12", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "10444:23:12", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, "id": 11879, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10444:53:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "arguments": [ { "id": 11871, "name": "CONSOLE2_ADDRESS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11071, "src": "10415:16:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 11870, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10407:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 11869, "name": "address", "nodeType": "ElementaryTypeName", "src": "10407:7:12", "typeDescriptions": {} } }, "id": 11872, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10407:25:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 11873, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10433:10:12", "memberName": "staticcall", "nodeType": "MemberAccess", "src": "10407:36:12", "typeDescriptions": { "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) view returns (bool,bytes memory)" } }, "id": 11880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10407:91:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "10390:108:12" }, { "expression": { "id": 11882, "name": "status", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 11868, "src": "10508:6:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 11883, "nodeType": "ExpressionStatement", "src": "10508:6:12" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "console2_log", "nameLocation": "10318:12:12", "parameters": { "id": 11865, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 11862, "mutability": "mutable", "name": "p0", "nameLocation": "10345:2:12", "nodeType": "VariableDeclaration", "scope": 11885, "src": "10331:16:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 11861, "name": "string", "nodeType": "ElementaryTypeName", "src": "10331:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 11864, "mutability": "mutable", "name": "p1", "nameLocation": "10363:2:12", "nodeType": "VariableDeclaration", "scope": 11885, "src": "10349:16:12", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 11863, "name": "string", "nodeType": "ElementaryTypeName", "src": "10349:6:12", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "10330:36:12" }, "returnParameters": { "id": 11866, "nodeType": "ParameterList", "parameters": [], "src": "10380:0:12" }, "scope": 11886, "stateMutability": "view", "virtual": false, "visibility": "private" } ], "abstract": true, "baseContracts": [], "canonicalName": "StdUtils", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 11886 ], "name": "StdUtils", "nameLocation": "210:8:12", "scope": 11887, "usedErrors": [], "usedEvents": [] } ], "license": "MIT" }, "id": 12 }