Files
contract/deployment/alpha/out/StdUtils.sol/StdUtils.json
2023-11-16 17:36:43 -04:00

11993 lines
519 KiB
JSON

{
"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
}