remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
remix-project/apps/remix-ide/contracts/foundry/out/Test.sol/stdStorage.json

37499 lines
1.6 MiB

{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "who",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes4",
"name": "fsig",
"type": "bytes4"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "keysHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "slot",
"type": "uint256"
}
],
"name": "SlotFound",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "who",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "slot",
"type": "uint256"
}
],
"name": "WARNING_UninitedSlot",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "b",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "offset",
"type": "uint256"
}
],
"name": "bytesToBytes32",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": {
"object": "0x61025661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063535849391461003a575b600080fd5b61004d6100483660046100f4565b61005f565b60405190815260200160405180910390f35b60008060006020855111610074578451610077565b60205b905060005b818110156100d25761008f8160086101bf565b8661009a83886101de565b815181106100aa576100aa6101f1565b01602001516001600160f81b031916901c9290921791806100ca81610207565b91505061007c565b50909150505b92915050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561010757600080fd5b823567ffffffffffffffff8082111561011f57600080fd5b818501915085601f83011261013357600080fd5b813581811115610145576101456100de565b604051601f8201601f19908116603f0116810190838211818310171561016d5761016d6100de565b8160405282815288602084870101111561018657600080fd5b826020860160208301376000602093820184015298969091013596505050505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156101d9576101d96101a9565b500290565b808201808211156100d8576100d86101a9565b634e487b7160e01b600052603260045260246000fd5b600060018201610219576102196101a9565b506001019056fea2646970667358221220cae70245ca978baf0285ce092b80c5dcb85ce6cbed3b59bae5ecc409b425945f64736f6c63430008100033",
"sourceMap": "16406:8872:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;16406:8872:2;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063535849391461003a575b600080fd5b61004d6100483660046100f4565b61005f565b60405190815260200160405180910390f35b60008060006020855111610074578451610077565b60205b905060005b818110156100d25761008f8160086101bf565b8661009a83886101de565b815181106100aa576100aa6101f1565b01602001516001600160f81b031916901c9290921791806100ca81610207565b91505061007c565b50909150505b92915050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561010757600080fd5b823567ffffffffffffffff8082111561011f57600080fd5b818501915085601f83011261013357600080fd5b813581811115610145576101456100de565b604051601f8201601f19908116603f0116810190838211818310171561016d5761016d6100de565b8160405282815288602084870101111561018657600080fd5b826020860160208301376000602093820184015298969091013596505050505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156101d9576101d96101a9565b500290565b808201808211156100d8576100d86101a9565b634e487b7160e01b600052603260045260246000fd5b600060018201610219576102196101a9565b506001019056fea2646970667358221220cae70245ca978baf0285ce092b80c5dcb85ce6cbed3b59bae5ecc409b425945f64736f6c63430008100033",
"sourceMap": "16406:8872:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;24576:297;;;;;;:::i;:::-;;:::i;:::-;;;1304:25:9;;;1292:2;1277:18;24576:297:2;;;;;;;;24650:7;24669:11;24691;24716:2;24705:1;:8;:13;:29;;24726:1;:8;24705:29;;;24721:2;24705:29;24691:43;;24749:6;24744:103;24765:3;24761:1;:7;24744:103;;;24830:5;:1;24834;24830:5;:::i;:::-;24804:1;24806:10;24815:1;24806:6;:10;:::i;:::-;24804:13;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;24804:13:2;24796:40;;24789:47;;;;;24770:3;;;;:::i;:::-;;;;24744:103;;;-1:-1:-1;24863:3:2;;-1:-1:-1;;24576:297:2;;;;;:::o;14:127:9:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:999;223:6;231;284:2;272:9;263:7;259:23;255:32;252:52;;;300:1;297;290:12;252:52;340:9;327:23;369:18;410:2;402:6;399:14;396:34;;;426:1;423;416:12;396:34;464:6;453:9;449:22;439:32;;509:7;502:4;498:2;494:13;490:27;480:55;;531:1;528;521:12;480:55;567:2;554:16;589:2;585;582:10;579:36;;;595:18;;:::i;:::-;670:2;664:9;638:2;724:13;;-1:-1:-1;;720:22:9;;;744:2;716:31;712:40;700:53;;;768:18;;;788:22;;;765:46;762:72;;;814:18;;:::i;:::-;854:10;850:2;843:22;889:2;881:6;874:18;931:7;924:4;919:2;915;911:11;907:22;904:35;901:55;;;952:1;949;942:12;901:55;1012:2;1005:4;1001:2;997:13;990:4;982:6;978:17;965:50;1059:1;1052:4;1035:15;;;1031:26;;1024:37;1035:15;1118:20;;;;1105:34;;-1:-1:-1;;;;;;146:999:9:o;1340:127::-;1401:10;1396:3;1392:20;1389:1;1382:31;1432:4;1429:1;1422:15;1456:4;1453:1;1446:15;1472:168;1512:7;1578:1;1574;1570:6;1566:14;1563:1;1560:21;1555:1;1548:9;1541:17;1537:45;1534:71;;;1585:18;;:::i;:::-;-1:-1:-1;1625:9:9;;1472:168::o;1645:125::-;1710:9;;;1731:10;;;1728:36;;;1744:18;;:::i;1775:127::-;1836:10;1831:3;1827:20;1824:1;1817:31;1867:4;1864:1;1857:15;1891:4;1888:1;1881:15;1907:135;1946:3;1967:17;;;1964:43;;1987:18;;:::i;:::-;-1:-1:-1;2034:1:9;2023:13;;1907:135::o",
"linkReferences": {}
},
"methodIdentifiers": {
"bytesToBytes32(bytes,uint256)": "53584939"
},
2 years ago
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"b\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"}],\"name\":\"bytesToBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"stdStorage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a\",\"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x5d84dd1e27d9127431d6f9aaeb681227235f2b0285545384d1dc236cbcab1364\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fe33b19854be51975ae89d4f4d3074a8b4bbd3c0e4dc5befe84d165f7462b55\",\"dweb:/ipfs/Qma45Q6fvwpmke2rdPdZapNqjXv17ReoT4xp4Tnj1JdBd7\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f\",\"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f\",\"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address",
"indexed": false
},
{
"internalType": "bytes4",
"name": "fsig",
"type": "bytes4",
"indexed": false
},
{
"internalType": "bytes32",
"name": "keysHash",
"type": "bytes32",
"indexed": false
},
{
"internalType": "uint256",
"name": "slot",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "SlotFound",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "slot",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "WARNING_UninitedSlot",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes",
"name": "b",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "offset",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function",
"name": "bytesToBytes32",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":ds-test/=lib/forge-std/lib/ds-test/src/",
":forge-std/=lib/forge-std/src/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"lib/forge-std/src/Test.sol": "stdStorage"
},
"libraries": {}
},
"sources": {
"lib/forge-std/lib/ds-test/src/test.sol": {
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54",
"urls": [
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5",
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"
],
"license": "GPL-3.0-or-later"
},
"lib/forge-std/src/Script.sol": {
"keccak256": "0x4424dbcb8f5b741475445726f87408fcd89951fad973bec2ca442ee157f910e7",
"urls": [
"bzz-raw://5b0b9f6dfb69245d8f888558ae82bf1d2cdeace46201444fe4b2e6a5283f944a",
"dweb:/ipfs/QmWFSKeFEZngNcwNn7A84EF7pASo5qe6r5oK24r9Kwca7Z"
],
"license": "MIT"
},
"lib/forge-std/src/Test.sol": {
"keccak256": "0x5d84dd1e27d9127431d6f9aaeb681227235f2b0285545384d1dc236cbcab1364",
"urls": [
"bzz-raw://6fe33b19854be51975ae89d4f4d3074a8b4bbd3c0e4dc5befe84d165f7462b55",
"dweb:/ipfs/Qma45Q6fvwpmke2rdPdZapNqjXv17ReoT4xp4Tnj1JdBd7"
],
"license": "MIT"
},
"lib/forge-std/src/Vm.sol": {
"keccak256": "0xa0ede8e0d3dc3246912530aed6cacbc4703e4430c4b4acd91963ccea709755ea",
"urls": [
"bzz-raw://a28e7d00aab57ad5159247b0f0f268eda4c6980b29eee7f903578254a2be677f",
"dweb:/ipfs/QmZrM8gY5BpW8o1QckmPNCYbBP5Q7k5DkcHdaVULKVntxp"
],
"license": "MIT"
},
"lib/forge-std/src/console.sol": {
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
"urls": [
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
],
"license": "MIT"
},
"lib/forge-std/src/console2.sol": {
"keccak256": "0xbeb823fcdb356244a83aaccdf828ad019ecc1ffaa3dff18e624fc6d5714ea671",
"urls": [
"bzz-raw://4cbe9400340e5f9ec55e2aff3bad1c15fa3afbbe37e80800e6f3fed2ad26854f",
"dweb:/ipfs/QmdJBABsuXkvWxVzEyGXsTE3vyfBPXDdw5xvvtUz3JeoYW"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib/forge-std/src/Test.sol",
"id": 4796,
"exportedSymbols": {
"DSTest": [
1786
],
"Script": [
2022
],
"StdStorage": [
3554
],
"Test": [
3456
],
"Vm": [
5434
],
"console": [
13498
],
"console2": [
21562
],
"stdError": [
3526
],
"stdMath": [
4795
],
"stdStorage": [
4656
]
},
"nodeType": "SourceUnit",
"src": "32:26751:2",
"nodes": [
{
"id": 2024,
"nodeType": "PragmaDirective",
"src": "32:31:2",
"literals": [
"solidity",
">=",
"0.6",
".0",
"<",
"0.9",
".0"
]
},
{
"id": 2025,
"nodeType": "ImportDirective",
"src": "65:22:2",
"absolutePath": "lib/forge-std/src/Script.sol",
"file": "./Script.sol",
"nameLocation": "-1:-1:-1",
"scope": 4796,
"sourceUnit": 2023,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2026,
"nodeType": "ImportDirective",
"src": "88:26:2",
"absolutePath": "lib/forge-std/lib/ds-test/src/test.sol",
"file": "ds-test/test.sol",
"nameLocation": "-1:-1:-1",
"scope": 4796,
"sourceUnit": 1787,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 3456,
"nodeType": "ContractDefinition",
"src": "164:14580:2",
"nodes": [
{
"id": 2034,
"nodeType": "UsingForDirective",
"src": "211:32:2",
"global": false,
"libraryName": {
"id": 2031,
"name": "stdStorage",
"nameLocations": [
"217:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 4656,
"src": "217:10:2"
},
"typeName": {
"id": 2033,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 2032,
"name": "StdStorage",
"nameLocations": [
"232:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "232:10:2"
},
"referencedDeclaration": 3554,
"src": "232:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
}
},
{
"id": 2037,
"nodeType": "VariableDeclaration",
"src": "249:126:2",
"constant": true,
"mutability": "constant",
"name": "UINT256_MAX",
"nameLocation": "275:11:2",
"scope": 3456,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2035,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "249:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"hexValue": "313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335",
"id": 2036,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "297:78:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1",
"typeString": "int_const 1157...(70 digits omitted)...9935"
},
"value": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
},
"visibility": "internal"
},
{
"id": 2040,
"nodeType": "VariableDeclaration",
"src": "382:28:2",
"constant": false,
"mutability": "mutable",
"name": "stdstore",
"nameLocation": "402:8:2",
"scope": 3456,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 2039,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 2038,
"name": "StdStorage",
"nameLocations": [
"382:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "382:10:2"
},
"referencedDeclaration": 3554,
"src": "382:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"id": 2045,
"nodeType": "EventDefinition",
"src": "625:31:2",
"anonymous": false,
"eventSelector": "fb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1",
"name": "log_array",
"nameLocation": "631:9:2",
"parameters": {
"id": 2044,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2043,
"indexed": false,
"mutability": "mutable",
"name": "val",
"nameLocation": "651:3:2",
"nodeType": "VariableDeclaration",
"scope": 2045,
"src": "641:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 2041,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "641:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2042,
"nodeType": "ArrayTypeName",
"src": "641:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
}
],
"src": "640:15:2"
}
},
{
"id": 2050,
"nodeType": "EventDefinition",
"src": "661:30:2",
"anonymous": false,
"eventSelector": "890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5",
"name": "log_array",
"nameLocation": "667:9:2",
"parameters": {
"id": 2049,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2048,
"indexed": false,
"mutability": "mutable",
"name": "val",
"nameLocation": "686:3:2",
"nodeType": "VariableDeclaration",
"scope": 2050,
"src": "677:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[]"
},
"typeName": {
"baseType": {
"id": 2046,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "677:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 2047,
"nodeType": "ArrayTypeName",
"src": "677:8:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
"typeString": "int256[]"
}
},
"visibility": "internal"
}
],
"src": "676:14:2"
}
},
{
"id": 2055,
"nodeType": "EventDefinition",
"src": "696:31:2",
"anonymous": false,
"eventSelector": "40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2",
"name": "log_array",
"nameLocation": "702:9:2",
"parameters": {
"id": 2054,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2053,
"indexed": false,
"mutability": "mutable",
"name": "val",
"nameLocation": "722:3:2",
"nodeType": "VariableDeclaration",
"scope": 2055,
"src": "712:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 2051,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "712:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2052,
"nodeType": "ArrayTypeName",
"src": "712:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "711:15:2"
}
},
{
"id": 2062,
"nodeType": "EventDefinition",
"src": "732:49:2",
"anonymous": false,
"eventSelector": "00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb",
"name": "log_named_array",
"nameLocation": "738:15:2",
"parameters": {
"id": 2061,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2057,
"indexed": false,
"mutability": "mutable",
"name": "key",
"nameLocation": "761:3:2",
"nodeType": "VariableDeclaration",
"scope": 2062,
"src": "754:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2056,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "754:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2060,
"indexed": false,
"mutability": "mutable",
"name": "val",
"nameLocation": "776:3:2",
"nodeType": "VariableDeclaration",
"scope": 2062,
"src": "766:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 2058,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "766:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2059,
"nodeType": "ArrayTypeName",
"src": "766:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
}
],
"src": "753:27:2"
}
},
{
"id": 2069,
"nodeType": "EventDefinition",
"src": "786:48:2",
"anonymous": false,
"eventSelector": "a73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57",
"name": "log_named_array",
"nameLocation": "792:15:2",
"parameters": {
"id": 2068,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2064,
"indexed": false,
"mutability": "mutable",
"name": "key",
"nameLocation": "815:3:2",
"nodeType": "VariableDeclaration",
"scope": 2069,
"src": "808:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2063,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "808:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2067,
"indexed": false,
"mutability": "mutable",
"name": "val",
"nameLocation": "829:3:2",
"nodeType": "VariableDeclaration",
"scope": 2069,
"src": "820:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[]"
},
"typeName": {
"baseType": {
"id": 2065,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "820:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 2066,
"nodeType": "ArrayTypeName",
"src": "820:8:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
"typeString": "int256[]"
}
},
"visibility": "internal"
}
],
"src": "807:26:2"
}
},
{
"id": 2076,
"nodeType": "EventDefinition",
"src": "839:49:2",
"anonymous": false,
"eventSelector": "3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd",
"name": "log_named_array",
"nameLocation": "845:15:2",
"parameters": {
"id": 2075,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2071,
"indexed": false,
"mutability": "mutable",
"name": "key",
"nameLocation": "868:3:2",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "861:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2070,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "861:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2074,
"indexed": false,
"mutability": "mutable",
"name": "val",
"nameLocation": "883:3:2",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "873:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 2072,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "873:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2073,
"nodeType": "ArrayTypeName",
"src": "873:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "860:27:2"
}
},
{
"id": 2091,
"nodeType": "FunctionDefinition",
"src": "1174:85:2",
"body": {
"id": 2090,
"nodeType": "Block",
"src": "1211:48:2",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2087,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 2084,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
"src": "1229:5:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 2085,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1235:9:2",
"memberName": "timestamp",
"nodeType": "MemberAccess",
"src": "1229:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 2086,
"name": "time",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2078,
"src": "1247:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1229:22:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2081,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1221:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2083,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1224:4:2",
"memberName": "warp",
"nodeType": "MemberAccess",
"referencedDeclaration": 4809,
"src": "1221:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256) external"
}
},
"id": 2088,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1221:31:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2089,
"nodeType": "ExpressionStatement",
"src": "1221:31:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "skip",
"nameLocation": "1183:4:2",
"parameters": {
"id": 2079,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2078,
"mutability": "mutable",
"name": "time",
"nameLocation": "1196:4:2",
"nodeType": "VariableDeclaration",
"scope": 2091,
"src": "1188:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2077,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1188:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1187:14:2"
},
"returnParameters": {
"id": 2080,
"nodeType": "ParameterList",
"parameters": [],
"src": "1211:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2106,
"nodeType": "FunctionDefinition",
"src": "1265:87:2",
"body": {
"id": 2105,
"nodeType": "Block",
"src": "1304:48:2",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 2099,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
"src": "1322:5:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 2100,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1328:9:2",
"memberName": "timestamp",
"nodeType": "MemberAccess",
"src": "1322:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 2101,
"name": "time",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2093,
"src": "1340:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1322:22:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2096,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1314:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2098,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1317:4:2",
"memberName": "warp",
"nodeType": "MemberAccess",
"referencedDeclaration": 4809,
"src": "1314:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256) external"
}
},
"id": 2103,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1314:31:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2104,
"nodeType": "ExpressionStatement",
"src": "1314:31:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "rewind",
"nameLocation": "1274:6:2",
"parameters": {
"id": 2094,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2093,
"mutability": "mutable",
"name": "time",
"nameLocation": "1289:4:2",
"nodeType": "VariableDeclaration",
"scope": 2106,
"src": "1281:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2092,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1281:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1280:14:2"
},
"returnParameters": {
"id": 2095,
"nodeType": "ParameterList",
"parameters": [],
"src": "1304:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2127,
"nodeType": "FunctionDefinition",
"src": "1415:98:2",
"body": {
"id": 2126,
"nodeType": "Block",
"src": "1451:62:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2114,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2108,
"src": "1469:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"commonType": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
},
"id": 2117,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "31",
"id": 2115,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1474:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "BinaryOperation",
"operator": "<<",
"rightExpression": {
"hexValue": "313238",
"id": 2116,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1479:3:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_128_by_1",
"typeString": "int_const 128"
},
"value": "128"
},
"src": "1474:8:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
],
"expression": {
"id": 2111,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1461:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1464:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "1461:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1461:22:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2119,
"nodeType": "ExpressionStatement",
"src": "1461:22:2"
},
{
"expression": {
"arguments": [
{
"id": 2123,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2108,
"src": "1502:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2120,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1493:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2122,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1496:5:2",
"memberName": "prank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5020,
"src": "1493:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
"typeString": "function (address) external"
}
},
"id": 2124,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1493:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2125,
"nodeType": "ExpressionStatement",
"src": "1493:13:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "hoax",
"nameLocation": "1424:4:2",
"parameters": {
"id": 2109,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2108,
"mutability": "mutable",
"name": "who",
"nameLocation": "1437:3:2",
"nodeType": "VariableDeclaration",
"scope": 2127,
"src": "1429:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2107,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1429:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1428:13:2"
},
"returnParameters": {
"id": 2110,
"nodeType": "ParameterList",
"parameters": [],
"src": "1451:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2148,
"nodeType": "FunctionDefinition",
"src": "1519:108:2",
"body": {
"id": 2147,
"nodeType": "Block",
"src": "1569:58:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2137,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2129,
"src": "1587:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2138,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2131,
"src": "1592:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2134,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1579:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2136,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1582:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "1579:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2139,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1579:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2140,
"nodeType": "ExpressionStatement",
"src": "1579:18:2"
},
{
"expression": {
"arguments": [
{
"id": 2144,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2129,
"src": "1616:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2141,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1607:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2143,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1610:5:2",
"memberName": "prank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5020,
"src": "1607:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
"typeString": "function (address) external"
}
},
"id": 2145,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1607:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2146,
"nodeType": "ExpressionStatement",
"src": "1607:13:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "hoax",
"nameLocation": "1528:4:2",
"parameters": {
"id": 2132,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2129,
"mutability": "mutable",
"name": "who",
"nameLocation": "1541:3:2",
"nodeType": "VariableDeclaration",
"scope": 2148,
"src": "1533:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2128,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1533:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2131,
"mutability": "mutable",
"name": "give",
"nameLocation": "1554:4:2",
"nodeType": "VariableDeclaration",
"scope": 2148,
"src": "1546:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2130,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1546:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1532:27:2"
},
"returnParameters": {
"id": 2133,
"nodeType": "ParameterList",
"parameters": [],
"src": "1569:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2172,
"nodeType": "FunctionDefinition",
"src": "1633:122:2",
"body": {
"id": 2171,
"nodeType": "Block",
"src": "1685:70:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2158,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2150,
"src": "1703:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"commonType": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
},
"id": 2161,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "31",
"id": 2159,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1708:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "BinaryOperation",
"operator": "<<",
"rightExpression": {
"hexValue": "313238",
"id": 2160,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1713:3:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_128_by_1",
"typeString": "int_const 128"
},
"value": "128"
},
"src": "1708:8:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
],
"expression": {
"id": 2155,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1695:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2157,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1698:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "1695:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2162,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1695:22:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2163,
"nodeType": "ExpressionStatement",
"src": "1695:22:2"
},
{
"expression": {
"arguments": [
{
"id": 2167,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2150,
"src": "1736:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2168,
"name": "origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2152,
"src": "1741:6:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2164,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1727:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2166,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1730:5:2",
"memberName": "prank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5032,
"src": "1727:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address) external"
}
},
"id": 2169,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1727:21:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2170,
"nodeType": "ExpressionStatement",
"src": "1727:21:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "hoax",
"nameLocation": "1642:4:2",
"parameters": {
"id": 2153,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2150,
"mutability": "mutable",
"name": "who",
"nameLocation": "1655:3:2",
"nodeType": "VariableDeclaration",
"scope": 2172,
"src": "1647:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2149,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1647:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2152,
"mutability": "mutable",
"name": "origin",
"nameLocation": "1668:6:2",
"nodeType": "VariableDeclaration",
"scope": 2172,
"src": "1660:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2151,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1660:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1646:29:2"
},
"returnParameters": {
"id": 2154,
"nodeType": "ParameterList",
"parameters": [],
"src": "1685:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2196,
"nodeType": "FunctionDefinition",
"src": "1761:132:2",
"body": {
"id": 2195,
"nodeType": "Block",
"src": "1827:66:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2184,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2174,
"src": "1845:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2185,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2178,
"src": "1850:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2181,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1837:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2183,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1840:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "1837:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2186,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1837:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2187,
"nodeType": "ExpressionStatement",
"src": "1837:18:2"
},
{
"expression": {
"arguments": [
{
"id": 2191,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2174,
"src": "1874:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2192,
"name": "origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2176,
"src": "1879:6:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2188,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "1865:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2190,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1868:5:2",
"memberName": "prank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5032,
"src": "1865:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address) external"
}
},
"id": 2193,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1865:21:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2194,
"nodeType": "ExpressionStatement",
"src": "1865:21:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "hoax",
"nameLocation": "1770:4:2",
"parameters": {
"id": 2179,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2174,
"mutability": "mutable",
"name": "who",
"nameLocation": "1783:3:2",
"nodeType": "VariableDeclaration",
"scope": 2196,
"src": "1775:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2173,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1775:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2176,
"mutability": "mutable",
"name": "origin",
"nameLocation": "1796:6:2",
"nodeType": "VariableDeclaration",
"scope": 2196,
"src": "1788:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2175,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1788:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2178,
"mutability": "mutable",
"name": "give",
"nameLocation": "1812:4:2",
"nodeType": "VariableDeclaration",
"scope": 2196,
"src": "1804:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2177,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1804:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1774:43:2"
},
"returnParameters": {
"id": 2180,
"nodeType": "ParameterList",
"parameters": [],
"src": "1827:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2217,
"nodeType": "FunctionDefinition",
"src": "1964:108:2",
"body": {
"id": 2216,
"nodeType": "Block",
"src": "2005:67:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2204,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2198,
"src": "2023:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"commonType": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
},
"id": 2207,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "31",
"id": 2205,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2028:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "BinaryOperation",
"operator": "<<",
"rightExpression": {
"hexValue": "313238",
"id": 2206,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2033:3:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_128_by_1",
"typeString": "int_const 128"
},
"value": "128"
},
"src": "2028:8:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
],
"expression": {
"id": 2201,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2015:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2203,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2018:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "2015:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2208,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2015:22:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2209,
"nodeType": "ExpressionStatement",
"src": "2015:22:2"
},
{
"expression": {
"arguments": [
{
"id": 2213,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2198,
"src": "2061:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2210,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2047:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2212,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2050:10:2",
"memberName": "startPrank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5025,
"src": "2047:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
"typeString": "function (address) external"
}
},
"id": 2214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2047:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2215,
"nodeType": "ExpressionStatement",
"src": "2047:18:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "startHoax",
"nameLocation": "1973:9:2",
"parameters": {
"id": 2199,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2198,
"mutability": "mutable",
"name": "who",
"nameLocation": "1991:3:2",
"nodeType": "VariableDeclaration",
"scope": 2217,
"src": "1983:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2197,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1983:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "1982:13:2"
},
"returnParameters": {
"id": 2200,
"nodeType": "ParameterList",
"parameters": [],
"src": "2005:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2238,
"nodeType": "FunctionDefinition",
"src": "2078:118:2",
"body": {
"id": 2237,
"nodeType": "Block",
"src": "2133:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2227,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2219,
"src": "2151:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2228,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2221,
"src": "2156:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2224,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2143:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2226,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2146:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "2143:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2229,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2143:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2230,
"nodeType": "ExpressionStatement",
"src": "2143:18:2"
},
{
"expression": {
"arguments": [
{
"id": 2234,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2219,
"src": "2185:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2231,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2171:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2233,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2174:10:2",
"memberName": "startPrank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5025,
"src": "2171:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
"typeString": "function (address) external"
}
},
"id": 2235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2171:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2236,
"nodeType": "ExpressionStatement",
"src": "2171:18:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "startHoax",
"nameLocation": "2087:9:2",
"parameters": {
"id": 2222,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2219,
"mutability": "mutable",
"name": "who",
"nameLocation": "2105:3:2",
"nodeType": "VariableDeclaration",
"scope": 2238,
"src": "2097:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2218,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2097:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2221,
"mutability": "mutable",
"name": "give",
"nameLocation": "2118:4:2",
"nodeType": "VariableDeclaration",
"scope": 2238,
"src": "2110:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2220,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2110:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "2096:27:2"
},
"returnParameters": {
"id": 2223,
"nodeType": "ParameterList",
"parameters": [],
"src": "2133:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2262,
"nodeType": "FunctionDefinition",
"src": "2315:132:2",
"body": {
"id": 2261,
"nodeType": "Block",
"src": "2372:75:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2248,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2240,
"src": "2390:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"commonType": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
},
"id": 2251,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"hexValue": "31",
"id": 2249,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2395:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "BinaryOperation",
"operator": "<<",
"rightExpression": {
"hexValue": "313238",
"id": 2250,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2400:3:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_128_by_1",
"typeString": "int_const 128"
},
"value": "128"
},
"src": "2395:8:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
"typeString": "int_const 3402...(31 digits omitted)...1456"
}
],
"expression": {
"id": 2245,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2382:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2247,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2385:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "2382:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2252,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2382:22:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2253,
"nodeType": "ExpressionStatement",
"src": "2382:22:2"
},
{
"expression": {
"arguments": [
{
"id": 2257,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2240,
"src": "2428:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2258,
"name": "origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2242,
"src": "2433:6:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2254,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2414:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2256,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2417:10:2",
"memberName": "startPrank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5039,
"src": "2414:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address) external"
}
},
"id": 2259,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2414:26:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2260,
"nodeType": "ExpressionStatement",
"src": "2414:26:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "startHoax",
"nameLocation": "2324:9:2",
"parameters": {
"id": 2243,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2240,
"mutability": "mutable",
"name": "who",
"nameLocation": "2342:3:2",
"nodeType": "VariableDeclaration",
"scope": 2262,
"src": "2334:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2239,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2334:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2242,
"mutability": "mutable",
"name": "origin",
"nameLocation": "2355:6:2",
"nodeType": "VariableDeclaration",
"scope": 2262,
"src": "2347:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2241,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2347:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2333:29:2"
},
"returnParameters": {
"id": 2244,
"nodeType": "ParameterList",
"parameters": [],
"src": "2372:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2286,
"nodeType": "FunctionDefinition",
"src": "2453:142:2",
"body": {
"id": 2285,
"nodeType": "Block",
"src": "2524:71:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2274,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2264,
"src": "2542:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2275,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2268,
"src": "2547:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2271,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2534:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2273,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2537:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "2534:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2276,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2534:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2277,
"nodeType": "ExpressionStatement",
"src": "2534:18:2"
},
{
"expression": {
"arguments": [
{
"id": 2281,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2264,
"src": "2576:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2282,
"name": "origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2266,
"src": "2581:6:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2278,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2562:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2280,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2565:10:2",
"memberName": "startPrank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5039,
"src": "2562:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address) external"
}
},
"id": 2283,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2562:26:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2284,
"nodeType": "ExpressionStatement",
"src": "2562:26:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "startHoax",
"nameLocation": "2462:9:2",
"parameters": {
"id": 2269,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2264,
"mutability": "mutable",
"name": "who",
"nameLocation": "2480:3:2",
"nodeType": "VariableDeclaration",
"scope": 2286,
"src": "2472:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2263,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2472:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2266,
"mutability": "mutable",
"name": "origin",
"nameLocation": "2493:6:2",
"nodeType": "VariableDeclaration",
"scope": 2286,
"src": "2485:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2265,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2485:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2268,
"mutability": "mutable",
"name": "give",
"nameLocation": "2509:4:2",
"nodeType": "VariableDeclaration",
"scope": 2286,
"src": "2501:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2267,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2501:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "2471:43:2"
},
"returnParameters": {
"id": 2270,
"nodeType": "ParameterList",
"parameters": [],
"src": "2524:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2303,
"nodeType": "FunctionDefinition",
"src": "2601:102:2",
"body": {
"id": 2302,
"nodeType": "Block",
"src": "2644:59:2",
"statements": [
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 2291,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2654:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2293,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2657:9:2",
"memberName": "stopPrank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5042,
"src": "2654:12:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
"typeString": "function () external"
}
},
"id": 2294,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2654:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2295,
"nodeType": "ExpressionStatement",
"src": "2654:14:2"
},
{
"expression": {
"arguments": [
{
"id": 2299,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2288,
"src": "2692:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2296,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2678:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2298,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2681:10:2",
"memberName": "startPrank",
"nodeType": "MemberAccess",
"referencedDeclaration": 5025,
"src": "2678:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
"typeString": "function (address) external"
}
},
"id": 2300,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2678:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2301,
"nodeType": "ExpressionStatement",
"src": "2678:18:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "changePrank",
"nameLocation": "2610:11:2",
"parameters": {
"id": 2289,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2288,
"mutability": "mutable",
"name": "who",
"nameLocation": "2630:3:2",
"nodeType": "VariableDeclaration",
"scope": 2303,
"src": "2622:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2287,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2622:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2621:13:2"
},
"returnParameters": {
"id": 2290,
"nodeType": "ParameterList",
"parameters": [],
"src": "2644:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2339,
"nodeType": "FunctionDefinition",
"src": "2776:233:2",
"body": {
"id": 2338,
"nodeType": "Block",
"src": "2871:138:2",
"statements": [
{
"expression": {
"id": 2322,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 2312,
"name": "privateKey",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2310,
"src": "2881:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 2318,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2305,
"src": "2929:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 2316,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2912:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2317,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2916:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "2912:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2319,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2912:22:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2315,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2902:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2320,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2902:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2314,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2894:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2313,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2894:7:2",
"typeDescriptions": {}
}
},
"id": 2321,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2894:42:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2881:55:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2323,
"nodeType": "ExpressionStatement",
"src": "2881:55:2"
},
{
"expression": {
"id": 2329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 2324,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2308,
"src": "2946:4:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 2327,
"name": "privateKey",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2310,
"src": "2961:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2325,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2953:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2326,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2956:4:2",
"memberName": "addr",
"nodeType": "MemberAccess",
"referencedDeclaration": 4867,
"src": "2953:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) external returns (address)"
}
},
"id": 2328,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2953:19:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2946:26:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2330,
"nodeType": "ExpressionStatement",
"src": "2946:26:2"
},
{
"expression": {
"arguments": [
{
"id": 2334,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2308,
"src": "2991:4:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2335,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2305,
"src": "2997:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 2331,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "2982:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2333,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2985:5:2",
"memberName": "label",
"nodeType": "MemberAccess",
"referencedDeclaration": 5160,
"src": "2982:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (address,string memory) external"
}
},
"id": 2336,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2982:20:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2337,
"nodeType": "ExpressionStatement",
"src": "2982:20:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "makeAddrAndKey",
"nameLocation": "2785:14:2",
"parameters": {
"id": 2306,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2305,
"mutability": "mutable",
"name": "name",
"nameLocation": "2814:4:2",
"nodeType": "VariableDeclaration",
"scope": 2339,
"src": "2800:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2304,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2800:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "2799:20:2"
},
"returnParameters": {
"id": 2311,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2308,
"mutability": "mutable",
"name": "addr",
"nameLocation": "2845:4:2",
"nodeType": "VariableDeclaration",
"scope": 2339,
"src": "2837:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2307,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2837:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2310,
"mutability": "mutable",
"name": "privateKey",
"nameLocation": "2859:10:2",
"nodeType": "VariableDeclaration",
"scope": 2339,
"src": "2851:18:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2309,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2851:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "2836:34:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2354,
"nodeType": "FunctionDefinition",
"src": "3048:116:2",
"body": {
"id": 2353,
"nodeType": "Block",
"src": "3117:47:2",
"statements": [
{
"expression": {
"id": 2351,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"components": [
{
"id": 2346,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2344,
"src": "3128:4:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
null
],
"id": 2347,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "3127:7:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_address_$__$",
"typeString": "tuple(address,)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 2349,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2341,
"src": "3152:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2348,
"name": "makeAddrAndKey",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2339,
"src": "3137:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_uint256_$",
"typeString": "function (string memory) returns (address,uint256)"
}
},
"id": 2350,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3137:20:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
"typeString": "tuple(address,uint256)"
}
},
"src": "3127:30:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2352,
"nodeType": "ExpressionStatement",
"src": "3127:30:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "makeAddr",
"nameLocation": "3057:8:2",
"parameters": {
"id": 2342,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2341,
"mutability": "mutable",
"name": "name",
"nameLocation": "3080:4:2",
"nodeType": "VariableDeclaration",
"scope": 2354,
"src": "3066:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2340,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3066:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "3065:20:2"
},
"returnParameters": {
"id": 2345,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2344,
"mutability": "mutable",
"name": "addr",
"nameLocation": "3111:4:2",
"nodeType": "VariableDeclaration",
"scope": 2354,
"src": "3103:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2343,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3103:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "3102:14:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2384,
"nodeType": "FunctionDefinition",
"src": "3208:343:2",
"body": {
"id": 2383,
"nodeType": "Block",
"src": "3271:280:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "5741524e494e47",
"id": 2364,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3303:9:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_51aac253d1d3eb5d066c1c453a3853c9527c2f88e5bdf63a1c20e25e8cf24885",
"typeString": "literal_string \"WARNING\""
},
"value": "WARNING"
},
{
"hexValue": "546573742074697028616464726573732c616464726573732c75696e74323536293a2054686520607469706020737464636865617420686173206265656e20646570726563617465642e2055736520606465616c6020696e73746561642e",
"id": 2365,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3314:96:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_762cc440f1f8cee7b2ded8a4dd443d4267a1f30da9ac7fb41d8332668a3aaa5e",
"typeString": "literal_string \"Test tip(address,address,uint256): The `tip` stdcheat has been deprecated. Use `deal` instead.\""
},
"value": "Test tip(address,address,uint256): The `tip` stdcheat has been deprecated. Use `deal` instead."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_51aac253d1d3eb5d066c1c453a3853c9527c2f88e5bdf63a1c20e25e8cf24885",
"typeString": "literal_string \"WARNING\""
},
{
"typeIdentifier": "t_stringliteral_762cc440f1f8cee7b2ded8a4dd443d4267a1f30da9ac7fb41d8332668a3aaa5e",
"typeString": "literal_string \"Test tip(address,address,uint256): The `tip` stdcheat has been deprecated. Use `deal` instead.\""
}
],
"id": 2363,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "3286:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 2366,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3286:125:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2367,
"nodeType": "EmitStatement",
"src": "3281:130:2"
},
{
"expression": {
"arguments": [
{
"id": 2380,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2360,
"src": "3539:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"id": 2377,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2358,
"src": "3508:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"arguments": [
{
"hexValue": "30783730613038323331",
"id": 2374,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3474:10:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1889567281_by_1",
"typeString": "int_const 1889567281"
},
"value": "0x70a08231"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1889567281_by_1",
"typeString": "int_const 1889567281"
}
],
"expression": {
"arguments": [
{
"id": 2371,
"name": "token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2356,
"src": "3450:5:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2368,
"name": "stdstore",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2040,
"src": "3421:8:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage",
"typeString": "struct StdStorage storage ref"
}
},
"id": 2370,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3443:6:2",
"memberName": "target",
"nodeType": "MemberAccess",
"referencedDeclaration": 4076,
"src": "3421:28:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 2372,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3421:35:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2373,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3470:3:2",
"memberName": "sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 4096,
"src": "3421:52:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"
}
},
"id": 2375,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3421:64:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2376,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3499:8:2",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 4149,
"src": "3421:86:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 2378,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3421:90:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2379,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3525:13:2",
"memberName": "checked_write",
"nodeType": "MemberAccess",
"referencedDeclaration": 4256,
"src": "3421:117:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,uint256)"
}
},
"id": 2381,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3421:123:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2382,
"nodeType": "ExpressionStatement",
"src": "3421:123:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "tip",
"nameLocation": "3217:3:2",
"parameters": {
"id": 2361,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2356,
"mutability": "mutable",
"name": "token",
"nameLocation": "3229:5:2",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "3221:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2355,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3221:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2358,
"mutability": "mutable",
"name": "to",
"nameLocation": "3244:2:2",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "3236:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2357,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3236:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2360,
"mutability": "mutable",
"name": "give",
"nameLocation": "3256:4:2",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "3248:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2359,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3248:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3220:41:2"
},
"returnParameters": {
"id": 2362,
"nodeType": "ParameterList",
"parameters": [],
"src": "3271:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2399,
"nodeType": "FunctionDefinition",
"src": "3642:83:2",
"body": {
"id": 2398,
"nodeType": "Block",
"src": "3691:34:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2394,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2386,
"src": "3709:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2395,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2388,
"src": "3713:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 2391,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "3701:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2393,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3704:4:2",
"memberName": "deal",
"nodeType": "MemberAccess",
"referencedDeclaration": 5049,
"src": "3701:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
"id": 2396,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3701:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2397,
"nodeType": "ExpressionStatement",
"src": "3701:17:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deal",
"nameLocation": "3651:4:2",
"parameters": {
"id": 2389,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2386,
"mutability": "mutable",
"name": "to",
"nameLocation": "3664:2:2",
"nodeType": "VariableDeclaration",
"scope": 2399,
"src": "3656:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2385,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3656:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2388,
"mutability": "mutable",
"name": "give",
"nameLocation": "3676:4:2",
"nodeType": "VariableDeclaration",
"scope": 2399,
"src": "3668:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2387,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3668:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3655:26:2"
},
"returnParameters": {
"id": 2390,
"nodeType": "ParameterList",
"parameters": [],
"src": "3691:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2416,
"nodeType": "FunctionDefinition",
"src": "3849:109:2",
"body": {
"id": 2415,
"nodeType": "Block",
"src": "3913:45:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2409,
"name": "token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2401,
"src": "3928:5:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2410,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2403,
"src": "3935:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 2411,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2405,
"src": "3939:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "66616c7365",
"id": 2412,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3945:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 2408,
"name": "deal",
"nodeType": "Identifier",
"overloadedDeclarations": [
2399,
2416,
2519
],
"referencedDeclaration": 2519,
"src": "3923:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
"typeString": "function (address,address,uint256,bool)"
}
},
"id": 2413,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3923:28:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2414,
"nodeType": "ExpressionStatement",
"src": "3923:28:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deal",
"nameLocation": "3858:4:2",
"parameters": {
"id": 2406,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2401,
"mutability": "mutable",
"name": "token",
"nameLocation": "3871:5:2",
"nodeType": "VariableDeclaration",
"scope": 2416,
"src": "3863:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2400,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3863:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2403,
"mutability": "mutable",
"name": "to",
"nameLocation": "3886:2:2",
"nodeType": "VariableDeclaration",
"scope": 2416,
"src": "3878:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2402,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3878:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2405,
"mutability": "mutable",
"name": "give",
"nameLocation": "3898:4:2",
"nodeType": "VariableDeclaration",
"scope": 2416,
"src": "3890:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2404,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3890:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3862:41:2"
},
"returnParameters": {
"id": 2407,
"nodeType": "ParameterList",
"parameters": [],
"src": "3913:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2519,
"nodeType": "FunctionDefinition",
"src": "3964:917:2",
"body": {
"id": 2518,
"nodeType": "Block",
"src": "4041:840:2",
"statements": [
{
"assignments": [
null,
2428
],
"declarations": [
null,
{
"constant": false,
"id": 2428,
"mutability": "mutable",
"name": "balData",
"nameLocation": "4098:7:2",
"nodeType": "VariableDeclaration",
"scope": 2518,
"src": "4085:20:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2427,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4085:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 2437,
"initialValue": {
"arguments": [
{
"arguments": [
{
"hexValue": "30783730613038323331",
"id": 2433,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4143:10:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1889567281_by_1",
"typeString": "int_const 1889567281"
},
"value": "0x70a08231"
},
{
"id": 2434,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2420,
"src": "4155:2:2",
"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": 2431,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4120:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2432,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4124:18:2",
"memberName": "encodeWithSelector",
"nodeType": "MemberAccess",
"src": "4120:22:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (bytes4) pure returns (bytes memory)"
}
},
"id": 2435,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4120:38:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 2429,
"name": "token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2418,
"src": "4109:5:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4115:4:2",
"memberName": "call",
"nodeType": "MemberAccess",
"src": "4109:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
}
},
"id": 2436,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4109:50:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4082:77:2"
},
{
"assignments": [
2439
],
"declarations": [
{
"constant": false,
"id": 2439,
"mutability": "mutable",
"name": "prevBal",
"nameLocation": "4177:7:2",
"nodeType": "VariableDeclaration",
"scope": 2518,
"src": "4169:15:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2438,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4169:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 2447,
"initialValue": {
"arguments": [
{
"id": 2442,
"name": "balData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2428,
"src": "4198:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 2444,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4208:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2443,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4208:7:2",
"typeDescriptions": {}
}
}
],
"id": 2445,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4207:9:2",
"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": 2440,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4187:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2441,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4191:6:2",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "4187:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 2446,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4187:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4169:48:2"
},
{
"expression": {
"arguments": [
{
"id": 2460,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2422,
"src": "4372:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"id": 2457,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2420,
"src": "4341:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"arguments": [
{
"hexValue": "30783730613038323331",
"id": 2454,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4307:10:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1889567281_by_1",
"typeString": "int_const 1889567281"
},
"value": "0x70a08231"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1889567281_by_1",
"typeString": "int_const 1889567281"
}
],
"expression": {
"arguments": [
{
"id": 2451,
"name": "token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2418,
"src": "4283:5:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2448,
"name": "stdstore",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2040,
"src": "4254:8:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage",
"typeString": "struct StdStorage storage ref"
}
},
"id": 2450,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4276:6:2",
"memberName": "target",
"nodeType": "MemberAccess",
"referencedDeclaration": 4076,
"src": "4254:28:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 2452,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4254:35:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2453,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4303:3:2",
"memberName": "sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 4096,
"src": "4254:52:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"
}
},
"id": 2455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4254:64:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2456,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4332:8:2",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 4149,
"src": "4254:86:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 2458,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4254:90:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2459,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4358:13:2",
"memberName": "checked_write",
"nodeType": "MemberAccess",
"referencedDeclaration": 4256,
"src": "4254:117:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,uint256)"
}
},
"id": 2461,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4254:123:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2462,
"nodeType": "ExpressionStatement",
"src": "4254:123:2"
},
{
"condition": {
"id": 2463,
"name": "adjust",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2424,
"src": "4422:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2517,
"nodeType": "IfStatement",
"src": "4419:456:2",
"trueBody": {
"id": 2516,
"nodeType": "Block",
"src": "4429:446:2",
"statements": [
{
"assignments": [
null,
2465
],
"declarations": [
null,
{
"constant": false,
"id": 2465,
"mutability": "mutable",
"name": "totSupData",
"nameLocation": "4459:10:2",
"nodeType": "VariableDeclaration",
"scope": 2516,
"src": "4446:23:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2464,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "4446:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 2473,
"initialValue": {
"arguments": [
{
"arguments": [
{
"hexValue": "30783138313630646464",
"id": 2470,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4507:10:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_404098525_by_1",
"typeString": "int_const 404098525"
},
"value": "0x18160ddd"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_404098525_by_1",
"typeString": "int_const 404098525"
}
],
"expression": {
"id": 2468,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4484:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2469,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4488:18:2",
"memberName": "encodeWithSelector",
"nodeType": "MemberAccess",
"src": "4484:22:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (bytes4) pure returns (bytes memory)"
}
},
"id": 2471,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4484:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 2466,
"name": "token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2418,
"src": "4473:5:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2467,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4479:4:2",
"memberName": "call",
"nodeType": "MemberAccess",
"src": "4473:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
}
},
"id": 2472,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4473:46:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4443:76:2"
},
{
"assignments": [
2475
],
"declarations": [
{
"constant": false,
"id": 2475,
"mutability": "mutable",
"name": "totSup",
"nameLocation": "4541:6:2",
"nodeType": "VariableDeclaration",
"scope": 2516,
"src": "4533:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2474,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4533:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 2483,
"initialValue": {
"arguments": [
{
"id": 2478,
"name": "totSupData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2465,
"src": "4561:10:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 2480,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4574:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2479,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4574:7:2",
"typeDescriptions": {}
}
}
],
"id": 2481,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4573:9:2",
"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": 2476,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4550:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2477,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4554:6:2",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "4550:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 2482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4550:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4533:50:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2486,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2484,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2422,
"src": "4600:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 2485,
"name": "prevBal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2439,
"src": "4607:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4600:14:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 2502,
"nodeType": "Block",
"src": "4681:59:2",
"statements": [
{
"expression": {
"id": 2500,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 2495,
"name": "totSup",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2475,
"src": "4699:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"components": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2498,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2496,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2422,
"src": "4710:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 2497,
"name": "prevBal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2439,
"src": "4717:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4710:14:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 2499,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4709:16:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4699:26:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2501,
"nodeType": "ExpressionStatement",
"src": "4699:26:2"
}
]
},
"id": 2503,
"nodeType": "IfStatement",
"src": "4597:143:2",
"trueBody": {
"id": 2494,
"nodeType": "Block",
"src": "4616:59:2",
"statements": [
{
"expression": {
"id": 2492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 2487,
"name": "totSup",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2475,
"src": "4634:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"components": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2490,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2488,
"name": "prevBal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2439,
"src": "4645:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 2489,
"name": "give",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2422,
"src": "4655:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4645:14:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 2491,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4644:16:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4634:26:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2493,
"nodeType": "ExpressionStatement",
"src": "4634:26:2"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 2513,
"name": "totSup",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2475,
"src": "4857:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"hexValue": "30783138313630646464",
"id": 2510,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4814:10:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_404098525_by_1",
"typeString": "int_const 404098525"
},
"value": "0x18160ddd"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_404098525_by_1",
"typeString": "int_const 404098525"
}
],
"expression": {
"arguments": [
{
"id": 2507,
"name": "token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2418,
"src": "4786:5:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2504,
"name": "stdstore",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2040,
"src": "4753:8:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage",
"typeString": "struct StdStorage storage ref"
}
},
"id": 2506,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4779:6:2",
"memberName": "target",
"nodeType": "MemberAccess",
"referencedDeclaration": 4076,
"src": "4753:32:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 2508,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4753:39:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2509,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4810:3:2",
"memberName": "sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 4096,
"src": "4753:60:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$3554_storage_ptr_$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"
}
},
"id": 2511,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4753:72:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 2512,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4843:13:2",
"memberName": "checked_write",
"nodeType": "MemberAccess",
"referencedDeclaration": 4256,
"src": "4753:103:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_StdStorage_$3554_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,uint256)"
}
},
"id": 2514,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4753:111:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2515,
"nodeType": "ExpressionStatement",
"src": "4753:111:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deal",
"nameLocation": "3973:4:2",
"parameters": {
"id": 2425,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2418,
"mutability": "mutable",
"name": "token",
"nameLocation": "3986:5:2",
"nodeType": "VariableDeclaration",
"scope": 2519,
"src": "3978:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2417,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3978:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2420,
"mutability": "mutable",
"name": "to",
"nameLocation": "4001:2:2",
"nodeType": "VariableDeclaration",
"scope": 2519,
"src": "3993:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2419,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3993:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2422,
"mutability": "mutable",
"name": "give",
"nameLocation": "4013:4:2",
"nodeType": "VariableDeclaration",
"scope": 2519,
"src": "4005:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2421,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4005:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2424,
"mutability": "mutable",
"name": "adjust",
"nameLocation": "4024:6:2",
"nodeType": "VariableDeclaration",
"scope": 2519,
"src": "4019:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2423,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4019:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "3977:54:2"
},
"returnParameters": {
"id": 2426,
"nodeType": "ParameterList",
"parameters": [],
"src": "4041:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2583,
"nodeType": "FunctionDefinition",
"src": "4887:578:2",
"body": {
"id": 2582,
"nodeType": "Block",
"src": "4981:484:2",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2533,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2531,
"name": "min",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2523,
"src": "4999:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"id": 2532,
"name": "max",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2525,
"src": "5006:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4999:10:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "5465737420626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e",
"id": 2534,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5011:60:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3bbfc2dadabc14e74ee28873c31ab942a6b0084199df371a57fc6e23a8b91a7d",
"typeString": "literal_string \"Test bound(uint256,uint256,uint256): Max is less than min.\""
},
"value": "Test bound(uint256,uint256,uint256): Max is less than min."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3bbfc2dadabc14e74ee28873c31ab942a6b0084199df371a57fc6e23a8b91a7d",
"typeString": "literal_string \"Test bound(uint256,uint256,uint256): Max is less than min.\""
}
],
"id": 2530,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "4991:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2535,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4991:81:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2536,
"nodeType": "ExpressionStatement",
"src": "4991:81:2"
},
{
"assignments": [
2538
],
"declarations": [
{
"constant": false,
"id": 2538,
"mutability": "mutable",
"name": "size",
"nameLocation": "5091:4:2",
"nodeType": "VariableDeclaration",
"scope": 2582,
"src": "5083:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2537,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5083:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 2542,
"initialValue": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2541,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2539,
"name": "max",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2525,
"src": "5098:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 2540,
"name": "min",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2523,
"src": "5104:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5098:9:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5083:24:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2545,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2543,
"name": "size",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2538,
"src": "5122:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 2544,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5130:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "5122:9:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2551,
"name": "size",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2538,
"src": "5196:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 2552,
"name": "UINT256_MAX",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2037,
"src": "5204:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5196:19:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 2574,
"nodeType": "Block",
"src": "5282:123:2",
"statements": [
{
"expression": {
"id": 2560,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": true,
"src": "5296:6:2",
"subExpression": {
"id": 2559,
"name": "size",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2538,
"src": "5298:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2561,
"nodeType": "ExpressionStatement",
"src": "5296:6:2"
},
{
"assignments": [
2563
],
"declarations": [
{
"constant": false,
"id": 2563,
"mutability": "mutable",
"name": "mod",
"nameLocation": "5348:3:2",
"nodeType": "VariableDeclaration",
"scope": 2574,
"src": "5340:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2562,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5340:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 2567,
"initialValue": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2566,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2564,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2521,
"src": "5354:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "%",
"rightExpression": {
"id": 2565,
"name": "size",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2538,
"src": "5358:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5354:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5340:22:2"
},
{
"expression": {
"id": 2572,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 2568,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2528,
"src": "5376:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2571,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2569,
"name": "min",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2523,
"src": "5385:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 2570,
"name": "mod",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2563,
"src": "5391:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5385:9:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5376:18:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2573,
"nodeType": "ExpressionStatement",
"src": "5376:18:2"
}
]
},
"id": 2575,
"nodeType": "IfStatement",
"src": "5192:213:2",
"trueBody": {
"id": 2558,
"nodeType": "Block",
"src": "5225:35:2",
"statements": [
{
"expression": {
"id": 2556,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 2554,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2528,
"src": "5239:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 2555,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2521,
"src": "5248:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5239:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2557,
"nodeType": "ExpressionStatement",
"src": "5239:10:2"
}
]
}
},
"id": 2576,
"nodeType": "IfStatement",
"src": "5118:287:2",
"trueBody": {
"id": 2550,
"nodeType": "Block",
"src": "5141:37:2",
"statements": [
{
"expression": {
"id": 2548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 2546,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2528,
"src": "5155:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 2547,
"name": "min",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2523,
"src": "5164:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5155:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2549,
"nodeType": "ExpressionStatement",
"src": "5155:12:2"
}
]
}
},
{
"eventCall": {
"arguments": [
{
"hexValue": "426f756e6420526573756c74",
"id": 2578,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5435:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52",
"typeString": "literal_string \"Bound Result\""
},
"value": "Bound Result"
},
{
"id": 2579,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2528,
"src": "5451:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52",
"typeString": "literal_string \"Bound Result\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2577,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "5420:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 2580,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5420:38:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2581,
"nodeType": "EmitStatement",
"src": "5415:43:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "bound",
"nameLocation": "4896:5:2",
"parameters": {
"id": 2526,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2521,
"mutability": "mutable",
"name": "x",
"nameLocation": "4910:1:2",
"nodeType": "VariableDeclaration",
"scope": 2583,
"src": "4902:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2520,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4902:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2523,
"mutability": "mutable",
"name": "min",
"nameLocation": "4921:3:2",
"nodeType": "VariableDeclaration",
"scope": 2583,
"src": "4913:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2522,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4913:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2525,
"mutability": "mutable",
"name": "max",
"nameLocation": "4934:3:2",
"nodeType": "VariableDeclaration",
"scope": 2583,
"src": "4926:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2524,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4926:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "4901:37:2"
},
"returnParameters": {
"id": 2529,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2528,
"mutability": "mutable",
"name": "result",
"nameLocation": "4973:6:2",
"nodeType": "VariableDeclaration",
"scope": 2583,
"src": "4965:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2527,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4965:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "4964:16:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 2615,
"nodeType": "FunctionDefinition",
"src": "5625:457:2",
"body": {
"id": 2614,
"nodeType": "Block",
"src": "5736:346:2",
"statements": [
{
"assignments": [
2593
],
"declarations": [
{
"constant": false,
"id": 2593,
"mutability": "mutable",
"name": "bytecode",
"nameLocation": "5759:8:2",
"nodeType": "VariableDeclaration",
"scope": 2614,
"src": "5746:21:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2592,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5746:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 2602,
"initialValue": {
"arguments": [
{
"arguments": [
{
"id": 2598,
"name": "what",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2585,
"src": "5798:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 2596,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "5787:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2597,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5790:7:2",
"memberName": "getCode",
"nodeType": "MemberAccess",
"referencedDeclaration": 5153,
"src": "5787:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) external returns (bytes memory)"
}
},
"id": 2599,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5787:16:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"id": 2600,
"name": "args",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2587,
"src": "5805:4:2",
"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": 2594,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "5770:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2595,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "5774:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "5770:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2601,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5770:40:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5746:64:2"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "5872:79:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5886:55:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5901:1:2",
"type": "",
"value": "0"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "5908:8:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5918:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5904:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5904:19:2"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "5931:8:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5925:5:2"
},
"nodeType": "YulFunctionCall",
"src": "5925:15:2"
}
],
"functionName": {
"name": "create",
"nodeType": "YulIdentifier",
"src": "5894:6:2"
},
"nodeType": "YulFunctionCall",
"src": "5894:47:2"
},
"variableNames": [
{
"name": "addr",
"nodeType": "YulIdentifier",
"src": "5886:4:2"
}
]
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 2590,
"isOffset": false,
"isSlot": false,
"src": "5886:4:2",
"valueSize": 1
},
{
"declaration": 2593,
"isOffset": false,
"isSlot": false,
"src": "5908:8:2",
"valueSize": 1
},
{
"declaration": 2593,
"isOffset": false,
"isSlot": false,
"src": "5931:8:2",
"valueSize": 1
}
],
"id": 2603,
"nodeType": "InlineAssembly",
"src": "5863:88:2"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 2610,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2605,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2590,
"src": "5982:4:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 2608,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5998:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 2607,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5990:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 2606,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5990:7:2",
"typeDescriptions": {}
}
},
"id": 2609,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5990:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "5982:18:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "54657374206465706c6f79436f646528737472696e672c6279746573293a204465706c6f796d656e74206661696c65642e",
"id": 2611,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6014:51:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d1c806ce7af1725b71ce0c84a849070672773be785c276ca8554d3c1f196865d",
"typeString": "literal_string \"Test deployCode(string,bytes): Deployment failed.\""
},
"value": "Test deployCode(string,bytes): Deployment failed."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_d1c806ce7af1725b71ce0c84a849070672773be785c276ca8554d3c1f196865d",
"typeString": "literal_string \"Test deployCode(string,bytes): Deployment failed.\""
}
],
"id": 2604,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5961:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2612,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5961:114:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2613,
"nodeType": "ExpressionStatement",
"src": "5961:114:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deployCode",
"nameLocation": "5634:10:2",
"parameters": {
"id": 2588,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2585,
"mutability": "mutable",
"name": "what",
"nameLocation": "5659:4:2",
"nodeType": "VariableDeclaration",
"scope": 2615,
"src": "5645:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2584,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5645:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2587,
"mutability": "mutable",
"name": "args",
"nameLocation": "5678:4:2",
"nodeType": "VariableDeclaration",
"scope": 2615,
"src": "5665:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2586,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5665:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "5644:39:2"
},
"returnParameters": {
"id": 2591,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2590,
"mutability": "mutable",
"name": "addr",
"nameLocation": "5726:4:2",
"nodeType": "VariableDeclaration",
"scope": 2615,
"src": "5718:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2589,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5718:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "5717:14:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2641,
"nodeType": "FunctionDefinition",
"src": "6088:408:2",
"body": {
"id": 2640,
"nodeType": "Block",
"src": "6180:316:2",
"statements": [
{
"assignments": [
2623
],
"declarations": [
{
"constant": false,
"id": 2623,
"mutability": "mutable",
"name": "bytecode",
"nameLocation": "6203:8:2",
"nodeType": "VariableDeclaration",
"scope": 2640,
"src": "6190:21:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2622,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6190:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 2628,
"initialValue": {
"arguments": [
{
"id": 2626,
"name": "what",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2617,
"src": "6225:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 2624,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "6214:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2625,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6217:7:2",
"memberName": "getCode",
"nodeType": "MemberAccess",
"referencedDeclaration": 5153,
"src": "6214:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) external returns (bytes memory)"
}
},
"id": 2627,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6214:16:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6190:40:2"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "6292:79:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6306:55:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6321:1:2",
"type": "",
"value": "0"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "6328:8:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6338:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6324:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6324:19:2"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "6351:8:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6345:5:2"
},
"nodeType": "YulFunctionCall",
"src": "6345:15:2"
}
],
"functionName": {
"name": "create",
"nodeType": "YulIdentifier",
"src": "6314:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6314:47:2"
},
"variableNames": [
{
"name": "addr",
"nodeType": "YulIdentifier",
"src": "6306:4:2"
}
]
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 2620,
"isOffset": false,
"isSlot": false,
"src": "6306:4:2",
"valueSize": 1
},
{
"declaration": 2623,
"isOffset": false,
"isSlot": false,
"src": "6328:8:2",
"valueSize": 1
},
{
"declaration": 2623,
"isOffset": false,
"isSlot": false,
"src": "6351:8:2",
"valueSize": 1
}
],
"id": 2629,
"nodeType": "InlineAssembly",
"src": "6283:88:2"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 2636,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2631,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2620,
"src": "6402:4:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 2634,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6418:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 2633,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6410:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 2632,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6410:7:2",
"typeDescriptions": {}
}
},
"id": 2635,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6410:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "6402:18:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "54657374206465706c6f79436f646528737472696e67293a204465706c6f796d656e74206661696c65642e",
"id": 2637,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6434:45:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b9fd17b1c001ca1277bfc68fcfcc57948bec4ffe1adf822157bd27978fa551cb",
"typeString": "literal_string \"Test deployCode(string): Deployment failed.\""
},
"value": "Test deployCode(string): Deployment failed."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_b9fd17b1c001ca1277bfc68fcfcc57948bec4ffe1adf822157bd27978fa551cb",
"typeString": "literal_string \"Test deployCode(string): Deployment failed.\""
}
],
"id": 2630,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "6381:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2638,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6381:108:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2639,
"nodeType": "ExpressionStatement",
"src": "6381:108:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deployCode",
"nameLocation": "6097:10:2",
"parameters": {
"id": 2618,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2617,
"mutability": "mutable",
"name": "what",
"nameLocation": "6122:4:2",
"nodeType": "VariableDeclaration",
"scope": 2641,
"src": "6108:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2616,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6108:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "6107:20:2"
},
"returnParameters": {
"id": 2621,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2620,
"mutability": "mutable",
"name": "addr",
"nameLocation": "6170:4:2",
"nodeType": "VariableDeclaration",
"scope": 2641,
"src": "6162:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2619,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6162:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6161:14:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2676,
"nodeType": "FunctionDefinition",
"src": "6553:480:2",
"body": {
"id": 2675,
"nodeType": "Block",
"src": "6677:356:2",
"statements": [
{
"assignments": [
2654
],
"declarations": [
{
"constant": false,
"id": 2654,
"mutability": "mutable",
"name": "bytecode",
"nameLocation": "6700:8:2",
"nodeType": "VariableDeclaration",
"scope": 2675,
"src": "6687:21:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2653,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6687:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 2663,
"initialValue": {
"arguments": [
{
"arguments": [
{
"id": 2659,
"name": "what",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2644,
"src": "6739:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 2657,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "6728:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2658,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6731:7:2",
"memberName": "getCode",
"nodeType": "MemberAccess",
"referencedDeclaration": 5153,
"src": "6728:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) external returns (bytes memory)"
}
},
"id": 2660,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6728:16:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"id": 2661,
"name": "args",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2646,
"src": "6746:4:2",
"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": 2655,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6711:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2656,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6715:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "6711:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2662,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6711:40:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6687:64:2"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "6813:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6827:57:2",
"value": {
"arguments": [
{
"name": "val",
"nodeType": "YulIdentifier",
"src": "6842:3:2"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "6851:8:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6861:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6847:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6847:19:2"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "6874:8:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6868:5:2"
},
"nodeType": "YulFunctionCall",
"src": "6868:15:2"
}
],
"functionName": {
"name": "create",
"nodeType": "YulIdentifier",
"src": "6835:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6835:49:2"
},
"variableNames": [
{
"name": "addr",
"nodeType": "YulIdentifier",
"src": "6827:4:2"
}
]
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 2651,
"isOffset": false,
"isSlot": false,
"src": "6827:4:2",
"valueSize": 1
},
{
"declaration": 2654,
"isOffset": false,
"isSlot": false,
"src": "6851:8:2",
"valueSize": 1
},
{
"declaration": 2654,
"isOffset": false,
"isSlot": false,
"src": "6874:8:2",
"valueSize": 1
},
{
"declaration": 2648,
"isOffset": false,
"isSlot": false,
"src": "6842:3:2",
"valueSize": 1
}
],
"id": 2664,
"nodeType": "InlineAssembly",
"src": "6804:90:2"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 2671,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2666,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2651,
"src": "6925:4:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 2669,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6941:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 2668,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6933:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 2667,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6933:7:2",
"typeDescriptions": {}
}
},
"id": 2670,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6933:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "6925:18:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "54657374206465706c6f79436f646528737472696e672c62797465732c75696e74323536293a204465706c6f796d656e74206661696c65642e",
"id": 2672,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6957:59:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_48c6a907f17116971b60f748697256dfa1e2b6301c67424b0afa1c8e2a6fcf69",
"typeString": "literal_string \"Test deployCode(string,bytes,uint256): Deployment failed.\""
},
"value": "Test deployCode(string,bytes,uint256): Deployment failed."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_48c6a907f17116971b60f748697256dfa1e2b6301c67424b0afa1c8e2a6fcf69",
"typeString": "literal_string \"Test deployCode(string,bytes,uint256): Deployment failed.\""
}
],
"id": 2665,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "6904:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2673,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6904:122:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2674,
"nodeType": "ExpressionStatement",
"src": "6904:122:2"
}
]
},
"documentation": {
"id": 2642,
"nodeType": "StructuredDocumentation",
"src": "6502:46:2",
"text": "deploy contract with value on construction"
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deployCode",
"nameLocation": "6562:10:2",
"parameters": {
"id": 2649,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2644,
"mutability": "mutable",
"name": "what",
"nameLocation": "6587:4:2",
"nodeType": "VariableDeclaration",
"scope": 2676,
"src": "6573:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2643,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6573:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2646,
"mutability": "mutable",
"name": "args",
"nameLocation": "6606:4:2",
"nodeType": "VariableDeclaration",
"scope": 2676,
"src": "6593:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2645,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6593:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2648,
"mutability": "mutable",
"name": "val",
"nameLocation": "6620:3:2",
"nodeType": "VariableDeclaration",
"scope": 2676,
"src": "6612:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2647,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6612:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "6572:52:2"
},
"returnParameters": {
"id": 2652,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2651,
"mutability": "mutable",
"name": "addr",
"nameLocation": "6667:4:2",
"nodeType": "VariableDeclaration",
"scope": 2676,
"src": "6659:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2650,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6659:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6658:14:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2704,
"nodeType": "FunctionDefinition",
"src": "7039:431:2",
"body": {
"id": 2703,
"nodeType": "Block",
"src": "7144:326:2",
"statements": [
{
"assignments": [
2686
],
"declarations": [
{
"constant": false,
"id": 2686,
"mutability": "mutable",
"name": "bytecode",
"nameLocation": "7167:8:2",
"nodeType": "VariableDeclaration",
"scope": 2703,
"src": "7154:21:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2685,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7154:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 2691,
"initialValue": {
"arguments": [
{
"id": 2689,
"name": "what",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2678,
"src": "7189:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 2687,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "7178:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 2688,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7181:7:2",
"memberName": "getCode",
"nodeType": "MemberAccess",
"referencedDeclaration": 5153,
"src": "7178:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) external returns (bytes memory)"
}
},
"id": 2690,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7178:16:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7154:40:2"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "7256:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7270:57:2",
"value": {
"arguments": [
{
"name": "val",
"nodeType": "YulIdentifier",
"src": "7285:3:2"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "7294:8:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7304:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7290:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7290:19:2"
},
{
"arguments": [
{
"name": "bytecode",
"nodeType": "YulIdentifier",
"src": "7317:8:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7311:5:2"
},
"nodeType": "YulFunctionCall",
"src": "7311:15:2"
}
],
"functionName": {
"name": "create",
"nodeType": "YulIdentifier",
"src": "7278:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7278:49:2"
},
"variableNames": [
{
"name": "addr",
"nodeType": "YulIdentifier",
"src": "7270:4:2"
}
]
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 2683,
"isOffset": false,
"isSlot": false,
"src": "7270:4:2",
"valueSize": 1
},
{
"declaration": 2686,
"isOffset": false,
"isSlot": false,
"src": "7294:8:2",
"valueSize": 1
},
{
"declaration": 2686,
"isOffset": false,
"isSlot": false,
"src": "7317:8:2",
"valueSize": 1
},
{
"declaration": 2680,
"isOffset": false,
"isSlot": false,
"src": "7285:3:2",
"valueSize": 1
}
],
"id": 2692,
"nodeType": "InlineAssembly",
"src": "7247:90:2"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 2699,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2694,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2683,
"src": "7368:4:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 2697,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7384:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 2696,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7376:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 2695,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7376:7:2",
"typeDescriptions": {}
}
},
"id": 2698,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7376:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "7368:18:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "54657374206465706c6f79436f646528737472696e672c75696e74323536293a204465706c6f796d656e74206661696c65642e",
"id": 2700,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7400:53:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3fa81ff94e5c0be4a794a2745793ac7e0a88d8864b4f59c0b3d5cc00c8442226",
"typeString": "literal_string \"Test deployCode(string,uint256): Deployment failed.\""
},
"value": "Test deployCode(string,uint256): Deployment failed."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3fa81ff94e5c0be4a794a2745793ac7e0a88d8864b4f59c0b3d5cc00c8442226",
"typeString": "literal_string \"Test deployCode(string,uint256): Deployment failed.\""
}
],
"id": 2693,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "7347:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2701,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7347:116:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2702,
"nodeType": "ExpressionStatement",
"src": "7347:116:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deployCode",
"nameLocation": "7048:10:2",
"parameters": {
"id": 2681,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2678,
"mutability": "mutable",
"name": "what",
"nameLocation": "7073:4:2",
"nodeType": "VariableDeclaration",
"scope": 2704,
"src": "7059:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2677,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7059:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2680,
"mutability": "mutable",
"name": "val",
"nameLocation": "7087:3:2",
"nodeType": "VariableDeclaration",
"scope": 2704,
"src": "7079:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2679,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7079:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "7058:33:2"
},
"returnParameters": {
"id": 2684,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2683,
"mutability": "mutable",
"name": "addr",
"nameLocation": "7134:4:2",
"nodeType": "VariableDeclaration",
"scope": 2704,
"src": "7126:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2682,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7126:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7125:14:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2718,
"nodeType": "FunctionDefinition",
"src": "7690:118:2",
"body": {
"id": 2717,
"nodeType": "Block",
"src": "7740:68:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 2710,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7772:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 2711,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2706,
"src": "7781:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2709,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "7755:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 2712,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7755:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2713,
"nodeType": "EmitStatement",
"src": "7750:35:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 2714,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "7795:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 2715,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7795:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2716,
"nodeType": "ExpressionStatement",
"src": "7795:6:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "fail",
"nameLocation": "7699:4:2",
"parameters": {
"id": 2707,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2706,
"mutability": "mutable",
"name": "err",
"nameLocation": "7718:3:2",
"nodeType": "VariableDeclaration",
"scope": 2718,
"src": "7704:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2705,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7704:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "7703:19:2"
},
"returnParameters": {
"id": 2708,
"nodeType": "ParameterList",
"parameters": [],
"src": "7740:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 2729,
"nodeType": "FunctionDefinition",
"src": "7814:83:2",
"body": {
"id": 2728,
"nodeType": "Block",
"src": "7863:34:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2725,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "7884:5:2",
"subExpression": {
"id": 2724,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2720,
"src": "7885:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 2723,
"name": "assertTrue",
"nodeType": "Identifier",
"overloadedDeclarations": [
269,
290
],
"referencedDeclaration": 269,
"src": "7873:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$",
"typeString": "function (bool)"
}
},
"id": 2726,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7873:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2727,
"nodeType": "ExpressionStatement",
"src": "7873:17:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertFalse",
"nameLocation": "7823:11:2",
"parameters": {
"id": 2721,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2720,
"mutability": "mutable",
"name": "data",
"nameLocation": "7840:4:2",
"nodeType": "VariableDeclaration",
"scope": 2729,
"src": "7835:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2719,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7835:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "7834:11:2"
},
"returnParameters": {
"id": 2722,
"nodeType": "ParameterList",
"parameters": [],
"src": "7863:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 2743,
"nodeType": "FunctionDefinition",
"src": "7903:107:2",
"body": {
"id": 2742,
"nodeType": "Block",
"src": "7971:39:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2738,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "7992:5:2",
"subExpression": {
"id": 2737,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2731,
"src": "7993:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"id": 2739,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2733,
"src": "7999:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2736,
"name": "assertTrue",
"nodeType": "Identifier",
"overloadedDeclarations": [
269,
290
],
"referencedDeclaration": 290,
"src": "7981:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory)"
}
},
"id": 2740,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7981:22:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2741,
"nodeType": "ExpressionStatement",
"src": "7981:22:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertFalse",
"nameLocation": "7912:11:2",
"parameters": {
"id": 2734,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2731,
"mutability": "mutable",
"name": "data",
"nameLocation": "7929:4:2",
"nodeType": "VariableDeclaration",
"scope": 2743,
"src": "7924:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2730,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7924:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2733,
"mutability": "mutable",
"name": "err",
"nameLocation": "7949:3:2",
"nodeType": "VariableDeclaration",
"scope": 2743,
"src": "7935:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2732,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7935:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "7923:30:2"
},
"returnParameters": {
"id": 2735,
"nodeType": "ParameterList",
"parameters": [],
"src": "7971:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 2779,
"nodeType": "FunctionDefinition",
"src": "8016:326:2",
"body": {
"id": 2778,
"nodeType": "Block",
"src": "8059:283:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 2752,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2750,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2745,
"src": "8073:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 2751,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2747,
"src": "8078:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "8073:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2777,
"nodeType": "IfStatement",
"src": "8069:267:2",
"trueBody": {
"id": 2776,
"nodeType": "Block",
"src": "8081:255:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6c5d",
"id": 2754,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8120:36:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2",
"typeString": "literal_string \"Error: a == b not satisfied [bool]\""
},
"value": "Error: a == b not satisfied [bool]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2",
"typeString": "literal_string \"Error: a == b not satisfied [bool]\""
}
],
"id": 2753,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "8100:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 2755,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8100:57:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2756,
"nodeType": "EmitStatement",
"src": "8095:62:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20204578706563746564",
"id": 2758,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8196:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"condition": {
"id": 2759,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2747,
"src": "8210:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"hexValue": "66616c7365",
"id": 2761,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8223:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a",
"typeString": "literal_string \"false\""
},
"value": "false"
},
"id": 2762,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "8210:20:2",
"trueExpression": {
"hexValue": "74727565",
"id": 2760,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8214:6:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034",
"typeString": "literal_string \"true\""
},
"value": "true"
},
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2757,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "8176:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 2763,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8176:55:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2764,
"nodeType": "EmitStatement",
"src": "8171:60:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202041637475616c",
"id": 2766,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8270:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"condition": {
"id": 2767,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2745,
"src": "8284:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"hexValue": "66616c7365",
"id": 2769,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8297:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a",
"typeString": "literal_string \"false\""
},
"value": "false"
},
"id": 2770,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "8284:20:2",
"trueExpression": {
"hexValue": "74727565",
"id": 2768,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8288:6:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034",
"typeString": "literal_string \"true\""
},
"value": "true"
},
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2765,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "8250:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 2771,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8250:55:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2772,
"nodeType": "EmitStatement",
"src": "8245:60:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 2773,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "8319:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 2774,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8319:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2775,
"nodeType": "ExpressionStatement",
"src": "8319:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "8025:8:2",
"parameters": {
"id": 2748,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2745,
"mutability": "mutable",
"name": "a",
"nameLocation": "8039:1:2",
"nodeType": "VariableDeclaration",
"scope": 2779,
"src": "8034:6:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2744,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8034:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2747,
"mutability": "mutable",
"name": "b",
"nameLocation": "8047:1:2",
"nodeType": "VariableDeclaration",
"scope": 2779,
"src": "8042:6:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2746,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8042:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "8033:16:2"
},
"returnParameters": {
"id": 2749,
"nodeType": "ParameterList",
"parameters": [],
"src": "8059:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2804,
"nodeType": "FunctionDefinition",
"src": "8348:178:2",
"body": {
"id": 2803,
"nodeType": "Block",
"src": "8410:116:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 2790,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2788,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2781,
"src": "8424:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 2789,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2783,
"src": "8429:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "8424:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2802,
"nodeType": "IfStatement",
"src": "8420:100:2",
"trueBody": {
"id": 2801,
"nodeType": "Block",
"src": "8432:88:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 2792,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8468:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 2793,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2785,
"src": "8477:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2791,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "8451:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 2794,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8451:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2795,
"nodeType": "EmitStatement",
"src": "8446:35:2"
},
{
"expression": {
"arguments": [
{
"id": 2797,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2781,
"src": "8504:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"id": 2798,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2783,
"src": "8507:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 2796,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 2779,
"src": "8495:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$",
"typeString": "function (bool,bool)"
}
},
"id": 2799,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8495:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2800,
"nodeType": "ExpressionStatement",
"src": "8495:14:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "8357:8:2",
"parameters": {
"id": 2786,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2781,
"mutability": "mutable",
"name": "a",
"nameLocation": "8371:1:2",
"nodeType": "VariableDeclaration",
"scope": 2804,
"src": "8366:6:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2780,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8366:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2783,
"mutability": "mutable",
"name": "b",
"nameLocation": "8379:1:2",
"nodeType": "VariableDeclaration",
"scope": 2804,
"src": "8374:6:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2782,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8374:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2785,
"mutability": "mutable",
"name": "err",
"nameLocation": "8396:3:2",
"nodeType": "VariableDeclaration",
"scope": 2804,
"src": "8382:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2784,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "8382:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "8365:35:2"
},
"returnParameters": {
"id": 2787,
"nodeType": "ParameterList",
"parameters": [],
"src": "8410:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2817,
"nodeType": "FunctionDefinition",
"src": "8532:91:2",
"body": {
"id": 2816,
"nodeType": "Block",
"src": "8591:32:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2812,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2806,
"src": "8611:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"id": 2813,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2808,
"src": "8614:1:2",
"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"
}
],
"id": 2811,
"name": "assertEq0",
"nodeType": "Identifier",
"overloadedDeclarations": [
1758,
1785
],
"referencedDeclaration": 1758,
"src": "8601:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory)"
}
},
"id": 2814,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8601:15:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2815,
"nodeType": "ExpressionStatement",
"src": "8601:15:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "8541:8:2",
"parameters": {
"id": 2809,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2806,
"mutability": "mutable",
"name": "a",
"nameLocation": "8563:1:2",
"nodeType": "VariableDeclaration",
"scope": 2817,
"src": "8550:14:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2805,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8550:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2808,
"mutability": "mutable",
"name": "b",
"nameLocation": "8579:1:2",
"nodeType": "VariableDeclaration",
"scope": 2817,
"src": "8566:14:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2807,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8566:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "8549:32:2"
},
"returnParameters": {
"id": 2810,
"nodeType": "ParameterList",
"parameters": [],
"src": "8591:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2833,
"nodeType": "FunctionDefinition",
"src": "8629:115:2",
"body": {
"id": 2832,
"nodeType": "Block",
"src": "8707:37:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 2827,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2819,
"src": "8727:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"id": 2828,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2821,
"src": "8730:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"id": 2829,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2823,
"src": "8733:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2826,
"name": "assertEq0",
"nodeType": "Identifier",
"overloadedDeclarations": [
1758,
1785
],
"referencedDeclaration": 1785,
"src": "8717:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bytes memory,bytes memory,string memory)"
}
},
"id": 2830,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8717:20:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2831,
"nodeType": "ExpressionStatement",
"src": "8717:20:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "8638:8:2",
"parameters": {
"id": 2824,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2819,
"mutability": "mutable",
"name": "a",
"nameLocation": "8660:1:2",
"nodeType": "VariableDeclaration",
"scope": 2833,
"src": "8647:14:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2818,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8647:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2821,
"mutability": "mutable",
"name": "b",
"nameLocation": "8676:1:2",
"nodeType": "VariableDeclaration",
"scope": 2833,
"src": "8663:14:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2820,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "8663:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2823,
"mutability": "mutable",
"name": "err",
"nameLocation": "8693:3:2",
"nodeType": "VariableDeclaration",
"scope": 2833,
"src": "8679:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2822,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "8679:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "8646:51:2"
},
"returnParameters": {
"id": 2825,
"nodeType": "ParameterList",
"parameters": [],
"src": "8707:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2875,
"nodeType": "FunctionDefinition",
"src": "8750:336:2",
"body": {
"id": 2874,
"nodeType": "Block",
"src": "8817:269:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 2854,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"arguments": [
{
"id": 2845,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2836,
"src": "8852:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
],
"expression": {
"id": 2843,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "8841:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2844,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "8845:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "8841:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2846,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8841:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2842,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "8831:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2847,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8831:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"arguments": [
{
"id": 2851,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2839,
"src": "8880:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
],
"expression": {
"id": 2849,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "8869:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2850,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "8873:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "8869:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2852,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8869:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2848,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "8859:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2853,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8859:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "8831:52:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2873,
"nodeType": "IfStatement",
"src": "8827:253:2",
"trueBody": {
"id": 2872,
"nodeType": "Block",
"src": "8885:195:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e745b5d5d",
"id": 2856,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8908:38:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb",
"typeString": "literal_string \"Error: a == b not satisfied [uint[]]\""
},
"value": "Error: a == b not satisfied [uint[]]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb",
"typeString": "literal_string \"Error: a == b not satisfied [uint[]]\""
}
],
"id": 2855,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "8904:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 2857,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8904:43:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2858,
"nodeType": "EmitStatement",
"src": "8899:48:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20204578706563746564",
"id": 2860,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8982:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"id": 2861,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2839,
"src": "8996:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
],
"id": 2859,
"name": "log_named_array",
"nodeType": "Identifier",
"overloadedDeclarations": [
2062,
2069,
2076
],
"referencedDeclaration": 2062,
"src": "8966:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
"typeString": "function (string memory,uint256[] memory)"
}
},
"id": 2862,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8966:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2863,
"nodeType": "EmitStatement",
"src": "8961:37:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202041637475616c",
"id": 2865,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9033:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"id": 2866,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2836,
"src": "9047:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
],
"id": 2864,
"name": "log_named_array",
"nodeType": "Identifier",
"overloadedDeclarations": [
2062,
2069,
2076
],
"referencedDeclaration": 2062,
"src": "9017:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
"typeString": "function (string memory,uint256[] memory)"
}
},
"id": 2867,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9017:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2868,
"nodeType": "EmitStatement",
"src": "9012:37:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 2869,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "9063:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 2870,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9063:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2871,
"nodeType": "ExpressionStatement",
"src": "9063:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "8759:8:2",
"parameters": {
"id": 2840,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2836,
"mutability": "mutable",
"name": "a",
"nameLocation": "8785:1:2",
"nodeType": "VariableDeclaration",
"scope": 2875,
"src": "8768:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 2834,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8768:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2835,
"nodeType": "ArrayTypeName",
"src": "8768:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2839,
"mutability": "mutable",
"name": "b",
"nameLocation": "8805:1:2",
"nodeType": "VariableDeclaration",
"scope": 2875,
"src": "8788:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 2837,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8788:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2838,
"nodeType": "ArrayTypeName",
"src": "8788:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
}
],
"src": "8767:40:2"
},
"returnParameters": {
"id": 2841,
"nodeType": "ParameterList",
"parameters": [],
"src": "8817:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2917,
"nodeType": "FunctionDefinition",
"src": "9092:333:2",
"body": {
"id": 2916,
"nodeType": "Block",
"src": "9157:268:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 2896,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"arguments": [
{
"id": 2887,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2878,
"src": "9192:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
],
"expression": {
"id": 2885,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9181:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2886,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9185:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "9181:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2888,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9181:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2884,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9171:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2889,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9171:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"arguments": [
{
"id": 2893,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2881,
"src": "9220:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
],
"expression": {
"id": 2891,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9209:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2892,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9213:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "9209:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2894,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9209:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2890,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9199:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2895,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9199:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9171:52:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2915,
"nodeType": "IfStatement",
"src": "9167:252:2",
"trueBody": {
"id": 2914,
"nodeType": "Block",
"src": "9225:194:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e745b5d5d",
"id": 2898,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9248:37:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5",
"typeString": "literal_string \"Error: a == b not satisfied [int[]]\""
},
"value": "Error: a == b not satisfied [int[]]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5",
"typeString": "literal_string \"Error: a == b not satisfied [int[]]\""
}
],
"id": 2897,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "9244:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 2899,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9244:42:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2900,
"nodeType": "EmitStatement",
"src": "9239:47:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20204578706563746564",
"id": 2902,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9321:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"id": 2903,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2881,
"src": "9335:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
],
"id": 2901,
"name": "log_named_array",
"nodeType": "Identifier",
"overloadedDeclarations": [
2062,
2069,
2076
],
"referencedDeclaration": 2069,
"src": "9305:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$",
"typeString": "function (string memory,int256[] memory)"
}
},
"id": 2904,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9305:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2905,
"nodeType": "EmitStatement",
"src": "9300:37:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202041637475616c",
"id": 2907,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9372:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"id": 2908,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2878,
"src": "9386:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
],
"id": 2906,
"name": "log_named_array",
"nodeType": "Identifier",
"overloadedDeclarations": [
2062,
2069,
2076
],
"referencedDeclaration": 2069,
"src": "9356:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$",
"typeString": "function (string memory,int256[] memory)"
}
},
"id": 2909,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9356:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2910,
"nodeType": "EmitStatement",
"src": "9351:37:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 2911,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "9402:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 2912,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9402:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2913,
"nodeType": "ExpressionStatement",
"src": "9402:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "9101:8:2",
"parameters": {
"id": 2882,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2878,
"mutability": "mutable",
"name": "a",
"nameLocation": "9126:1:2",
"nodeType": "VariableDeclaration",
"scope": 2917,
"src": "9110:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[]"
},
"typeName": {
"baseType": {
"id": 2876,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "9110:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 2877,
"nodeType": "ArrayTypeName",
"src": "9110:8:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
"typeString": "int256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2881,
"mutability": "mutable",
"name": "b",
"nameLocation": "9145:1:2",
"nodeType": "VariableDeclaration",
"scope": 2917,
"src": "9129:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[]"
},
"typeName": {
"baseType": {
"id": 2879,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "9129:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 2880,
"nodeType": "ArrayTypeName",
"src": "9129:8:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
"typeString": "int256[]"
}
},
"visibility": "internal"
}
],
"src": "9109:38:2"
},
"returnParameters": {
"id": 2883,
"nodeType": "ParameterList",
"parameters": [],
"src": "9157:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2959,
"nodeType": "FunctionDefinition",
"src": "9431:339:2",
"body": {
"id": 2958,
"nodeType": "Block",
"src": "9498:272:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 2938,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"arguments": [
{
"id": 2929,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2920,
"src": "9533:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
],
"expression": {
"id": 2927,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9522:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2928,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9526:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "9522:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2930,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9522:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2926,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9512:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2931,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9512:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"arguments": [
{
"id": 2935,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2923,
"src": "9561:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
],
"expression": {
"id": 2933,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9550:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2934,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9554:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "9550:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2936,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9550:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2932,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9540:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2937,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9540:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9512:52:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2957,
"nodeType": "IfStatement",
"src": "9508:256:2",
"trueBody": {
"id": 2956,
"nodeType": "Block",
"src": "9566:198:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464726573735b5d5d",
"id": 2940,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9589:41:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8",
"typeString": "literal_string \"Error: a == b not satisfied [address[]]\""
},
"value": "Error: a == b not satisfied [address[]]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8",
"typeString": "literal_string \"Error: a == b not satisfied [address[]]\""
}
],
"id": 2939,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "9585:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 2941,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9585:46:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2942,
"nodeType": "EmitStatement",
"src": "9580:51:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20204578706563746564",
"id": 2944,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9666:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"id": 2945,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2923,
"src": "9680:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
],
"id": 2943,
"name": "log_named_array",
"nodeType": "Identifier",
"overloadedDeclarations": [
2062,
2069,
2076
],
"referencedDeclaration": 2076,
"src": "9650:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
"typeString": "function (string memory,address[] memory)"
}
},
"id": 2946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9650:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2947,
"nodeType": "EmitStatement",
"src": "9645:37:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202041637475616c",
"id": 2949,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9717:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"id": 2950,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2920,
"src": "9731:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
],
"id": 2948,
"name": "log_named_array",
"nodeType": "Identifier",
"overloadedDeclarations": [
2062,
2069,
2076
],
"referencedDeclaration": 2076,
"src": "9701:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
"typeString": "function (string memory,address[] memory)"
}
},
"id": 2951,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9701:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2952,
"nodeType": "EmitStatement",
"src": "9696:37:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 2953,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "9747:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 2954,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9747:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2955,
"nodeType": "ExpressionStatement",
"src": "9747:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "9440:8:2",
"parameters": {
"id": 2924,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2920,
"mutability": "mutable",
"name": "a",
"nameLocation": "9466:1:2",
"nodeType": "VariableDeclaration",
"scope": 2959,
"src": "9449:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 2918,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9449:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2919,
"nodeType": "ArrayTypeName",
"src": "9449:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2923,
"mutability": "mutable",
"name": "b",
"nameLocation": "9486:1:2",
"nodeType": "VariableDeclaration",
"scope": 2959,
"src": "9469:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 2921,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9469:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2922,
"nodeType": "ArrayTypeName",
"src": "9469:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "9448:40:2"
},
"returnParameters": {
"id": 2925,
"nodeType": "ParameterList",
"parameters": [],
"src": "9498:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 2996,
"nodeType": "FunctionDefinition",
"src": "9776:248:2",
"body": {
"id": 2995,
"nodeType": "Block",
"src": "9862:162:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 2982,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"arguments": [
{
"id": 2973,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2962,
"src": "9897:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
],
"expression": {
"id": 2971,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9886:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2972,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9890:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "9886:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2974,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9886:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2970,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9876:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2975,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9876:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"arguments": [
{
"id": 2979,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2965,
"src": "9925:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
],
"expression": {
"id": 2977,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9914:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2978,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9918:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "9914:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2980,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9914:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2976,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9904:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2981,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9904:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9876:52:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2994,
"nodeType": "IfStatement",
"src": "9872:146:2",
"trueBody": {
"id": 2993,
"nodeType": "Block",
"src": "9930:88:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 2984,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9966:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 2985,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2967,
"src": "9975:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 2983,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "9949:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 2986,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9949:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2987,
"nodeType": "EmitStatement",
"src": "9944:35:2"
},
{
"expression": {
"arguments": [
{
"id": 2989,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2962,
"src": "10002:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
},
{
"id": 2990,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2965,
"src": "10005:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
},
{
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
],
"id": 2988,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 2875,
"src": "9993:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
"typeString": "function (uint256[] memory,uint256[] memory)"
}
},
"id": 2991,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9993:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2992,
"nodeType": "ExpressionStatement",
"src": "9993:14:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "9785:8:2",
"parameters": {
"id": 2968,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2962,
"mutability": "mutable",
"name": "a",
"nameLocation": "9811:1:2",
"nodeType": "VariableDeclaration",
"scope": 2996,
"src": "9794:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 2960,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9794:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2961,
"nodeType": "ArrayTypeName",
"src": "9794:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2965,
"mutability": "mutable",
"name": "b",
"nameLocation": "9831:1:2",
"nodeType": "VariableDeclaration",
"scope": 2996,
"src": "9814:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 2963,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9814:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2964,
"nodeType": "ArrayTypeName",
"src": "9814:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 2967,
"mutability": "mutable",
"name": "err",
"nameLocation": "9848:3:2",
"nodeType": "VariableDeclaration",
"scope": 2996,
"src": "9834:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2966,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "9834:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "9793:59:2"
},
"returnParameters": {
"id": 2969,
"nodeType": "ParameterList",
"parameters": [],
"src": "9862:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 3033,
"nodeType": "FunctionDefinition",
"src": "10030:246:2",
"body": {
"id": 3032,
"nodeType": "Block",
"src": "10114:162:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"arguments": [
{
"id": 3010,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2999,
"src": "10149:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
],
"expression": {
"id": 3008,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "10138:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3009,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "10142:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "10138:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3011,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10138:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3007,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "10128:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3012,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10128:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"arguments": [
{
"id": 3016,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"src": "10177:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
],
"expression": {
"id": 3014,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "10166:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3015,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "10170:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "10166:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3017,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10166:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3013,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "10156:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3018,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10156:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "10128:52:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3031,
"nodeType": "IfStatement",
"src": "10124:146:2",
"trueBody": {
"id": 3030,
"nodeType": "Block",
"src": "10182:88:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 3021,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10218:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 3022,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3004,
"src": "10227:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3020,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "10201:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 3023,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10201:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3024,
"nodeType": "EmitStatement",
"src": "10196:35:2"
},
{
"expression": {
"arguments": [
{
"id": 3026,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2999,
"src": "10254:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
},
{
"id": 3027,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"src": "10257:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
},
{
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[] memory"
}
],
"id": 3025,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 2917,
"src": "10245:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$",
"typeString": "function (int256[] memory,int256[] memory)"
}
},
"id": 3028,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10245:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3029,
"nodeType": "ExpressionStatement",
"src": "10245:14:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "10039:8:2",
"parameters": {
"id": 3005,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2999,
"mutability": "mutable",
"name": "a",
"nameLocation": "10064:1:2",
"nodeType": "VariableDeclaration",
"scope": 3033,
"src": "10048:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[]"
},
"typeName": {
"baseType": {
"id": 2997,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "10048:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 2998,
"nodeType": "ArrayTypeName",
"src": "10048:8:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
"typeString": "int256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3002,
"mutability": "mutable",
"name": "b",
"nameLocation": "10083:1:2",
"nodeType": "VariableDeclaration",
"scope": 3033,
"src": "10067:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
"typeString": "int256[]"
},
"typeName": {
"baseType": {
"id": 3000,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "10067:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 3001,
"nodeType": "ArrayTypeName",
"src": "10067:8:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
"typeString": "int256[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3004,
"mutability": "mutable",
"name": "err",
"nameLocation": "10100:3:2",
"nodeType": "VariableDeclaration",
"scope": 3033,
"src": "10086:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3003,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10086:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "10047:57:2"
},
"returnParameters": {
"id": 3006,
"nodeType": "ParameterList",
"parameters": [],
"src": "10114:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 3070,
"nodeType": "FunctionDefinition",
"src": "10283:248:2",
"body": {
"id": 3069,
"nodeType": "Block",
"src": "10369:162:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3056,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"arguments": [
{
"id": 3047,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3036,
"src": "10404:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
],
"expression": {
"id": 3045,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "10393:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3046,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "10397:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "10393:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3048,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10393:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3044,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "10383:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3049,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10383:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"arguments": [
{
"arguments": [
{
"id": 3053,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3039,
"src": "10432:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
],
"expression": {
"id": 3051,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "10421:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3052,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "10425:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "10421:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3054,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10421:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3050,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "10411:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3055,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10411:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "10383:52:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3068,
"nodeType": "IfStatement",
"src": "10379:146:2",
"trueBody": {
"id": 3067,
"nodeType": "Block",
"src": "10437:88:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 3058,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10473:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 3059,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3041,
"src": "10482:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3057,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "10456:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 3060,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10456:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3061,
"nodeType": "EmitStatement",
"src": "10451:35:2"
},
{
"expression": {
"arguments": [
{
"id": 3063,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3036,
"src": "10509:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
{
"id": 3064,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3039,
"src": "10512:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
},
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
],
"id": 3062,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 2959,
"src": "10500:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$",
"typeString": "function (address[] memory,address[] memory)"
}
},
"id": 3065,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10500:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3066,
"nodeType": "ExpressionStatement",
"src": "10500:14:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertEq",
"nameLocation": "10292:8:2",
"parameters": {
"id": 3042,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3036,
"mutability": "mutable",
"name": "a",
"nameLocation": "10318:1:2",
"nodeType": "VariableDeclaration",
"scope": 3070,
"src": "10301:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 3034,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10301:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3035,
"nodeType": "ArrayTypeName",
"src": "10301:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3039,
"mutability": "mutable",
"name": "b",
"nameLocation": "10338:1:2",
"nodeType": "VariableDeclaration",
"scope": 3070,
"src": "10321:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 3037,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10321:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3038,
"nodeType": "ArrayTypeName",
"src": "10321:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3041,
"mutability": "mutable",
"name": "err",
"nameLocation": "10355:3:2",
"nodeType": "VariableDeclaration",
"scope": 3070,
"src": "10341:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3040,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10341:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "10300:59:2"
},
"returnParameters": {
"id": 3043,
"nodeType": "ParameterList",
"parameters": [],
"src": "10369:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 3120,
"nodeType": "FunctionDefinition",
"src": "10537:516:2",
"body": {
"id": 3119,
"nodeType": "Block",
"src": "10651:402:2",
"statements": [
{
"assignments": [
3080
],
"declarations": [
{
"constant": false,
"id": 3080,
"mutability": "mutable",
"name": "delta",
"nameLocation": "10669:5:2",
"nodeType": "VariableDeclaration",
"scope": 3119,
"src": "10661:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3079,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10661:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3086,
"initialValue": {
"arguments": [
{
"id": 3083,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3072,
"src": "10691:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3084,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3074,
"src": "10694:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3081,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "10677:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3082,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10685:5:2",
"memberName": "delta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4706,
"src": "10677:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 3085,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10677:19:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "10661:35:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3089,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3087,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3080,
"src": "10711:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3088,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3076,
"src": "10719:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "10711:16:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3118,
"nodeType": "IfStatement",
"src": "10707:340:2",
"trueBody": {
"id": 3117,
"nodeType": "Block",
"src": "10729:318:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d",
"id": 3091,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10764:36:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe",
"typeString": "literal_string \"Error: a ~= b not satisfied [uint]\""
},
"value": "Error: a ~= b not satisfied [uint]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe",
"typeString": "literal_string \"Error: a ~= b not satisfied [uint]\""
}
],
"id": 3090,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "10748:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 3092,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10748:53:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3093,
"nodeType": "EmitStatement",
"src": "10743:58:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20204578706563746564",
"id": 3095,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10836:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"id": 3096,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3074,
"src": "10850:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3094,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "10820:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3097,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10820:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3098,
"nodeType": "EmitStatement",
"src": "10815:37:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202041637475616c",
"id": 3100,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10887:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"id": 3101,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3072,
"src": "10901:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3099,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "10871:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10871:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3103,
"nodeType": "EmitStatement",
"src": "10866:37:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "204d61782044656c7461",
"id": 3105,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10938:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5",
"typeString": "literal_string \" Max Delta\""
},
"value": " Max Delta"
},
{
"id": 3106,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3076,
"src": "10952:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5",
"typeString": "literal_string \" Max Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3104,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "10922:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10922:39:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3108,
"nodeType": "EmitStatement",
"src": "10917:44:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "202020202044656c7461",
"id": 3110,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10996:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f",
"typeString": "literal_string \" Delta\""
},
"value": " Delta"
},
{
"id": 3111,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3080,
"src": "11010:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f",
"typeString": "literal_string \" Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3109,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "10980:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10980:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3113,
"nodeType": "EmitStatement",
"src": "10975:41:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3114,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "11030:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3115,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11030:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3116,
"nodeType": "ExpressionStatement",
"src": "11030:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqAbs",
"nameLocation": "10546:17:2",
"parameters": {
"id": 3077,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3072,
"mutability": "mutable",
"name": "a",
"nameLocation": "10581:1:2",
"nodeType": "VariableDeclaration",
"scope": 3120,
"src": "10573:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3071,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10573:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3074,
"mutability": "mutable",
"name": "b",
"nameLocation": "10600:1:2",
"nodeType": "VariableDeclaration",
"scope": 3120,
"src": "10592:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3073,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10592:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3076,
"mutability": "mutable",
"name": "maxDelta",
"nameLocation": "10619:8:2",
"nodeType": "VariableDeclaration",
"scope": 3120,
"src": "10611:16:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3075,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10611:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "10563:70:2"
},
"returnParameters": {
"id": 3078,
"nodeType": "ParameterList",
"parameters": [],
"src": "10651:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 3156,
"nodeType": "FunctionDefinition",
"src": "11059:335:2",
"body": {
"id": 3155,
"nodeType": "Block",
"src": "11200:194:2",
"statements": [
{
"assignments": [
3132
],
"declarations": [
{
"constant": false,
"id": 3132,
"mutability": "mutable",
"name": "delta",
"nameLocation": "11218:5:2",
"nodeType": "VariableDeclaration",
"scope": 3155,
"src": "11210:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3131,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11210:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3138,
"initialValue": {
"arguments": [
{
"id": 3135,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3122,
"src": "11240:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3136,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3124,
"src": "11243:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3133,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "11226:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3134,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11234:5:2",
"memberName": "delta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4706,
"src": "11226:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 3137,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11226:19:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11210:35:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3141,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3139,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3132,
"src": "11260:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3140,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3126,
"src": "11268:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11260:16:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3154,
"nodeType": "IfStatement",
"src": "11256:132:2",
"trueBody": {
"id": 3153,
"nodeType": "Block",
"src": "11278:110:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 3143,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11317:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 3144,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3128,
"src": "11326:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3142,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "11297:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 3145,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11297:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3146,
"nodeType": "EmitStatement",
"src": "11292:38:2"
},
{
"expression": {
"arguments": [
{
"id": 3148,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3122,
"src": "11362:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3149,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3124,
"src": "11365:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3150,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3126,
"src": "11368:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3147,
"name": "assertApproxEqAbs",
"nodeType": "Identifier",
"overloadedDeclarations": [
3120,
3156,
3206,
3242
],
"referencedDeclaration": 3120,
"src": "11344:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (uint256,uint256,uint256)"
}
},
"id": 3151,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11344:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3152,
"nodeType": "ExpressionStatement",
"src": "11344:33:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqAbs",
"nameLocation": "11068:17:2",
"parameters": {
"id": 3129,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3122,
"mutability": "mutable",
"name": "a",
"nameLocation": "11103:1:2",
"nodeType": "VariableDeclaration",
"scope": 3156,
"src": "11095:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3121,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11095:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3124,
"mutability": "mutable",
"name": "b",
"nameLocation": "11122:1:2",
"nodeType": "VariableDeclaration",
"scope": 3156,
"src": "11114:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3123,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11114:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3126,
"mutability": "mutable",
"name": "maxDelta",
"nameLocation": "11141:8:2",
"nodeType": "VariableDeclaration",
"scope": 3156,
"src": "11133:16:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3125,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11133:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3128,
"mutability": "mutable",
"name": "err",
"nameLocation": "11173:3:2",
"nodeType": "VariableDeclaration",
"scope": 3156,
"src": "11159:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3127,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "11159:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "11085:97:2"
},
"returnParameters": {
"id": 3130,
"nodeType": "ParameterList",
"parameters": [],
"src": "11200:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 3206,
"nodeType": "FunctionDefinition",
"src": "11400:513:2",
"body": {
"id": 3205,
"nodeType": "Block",
"src": "11512:401:2",
"statements": [
{
"assignments": [
3166
],
"declarations": [
{
"constant": false,
"id": 3166,
"mutability": "mutable",
"name": "delta",
"nameLocation": "11530:5:2",
"nodeType": "VariableDeclaration",
"scope": 3205,
"src": "11522:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3165,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11522:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3172,
"initialValue": {
"arguments": [
{
"id": 3169,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3158,
"src": "11552:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3170,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3160,
"src": "11555:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"expression": {
"id": 3167,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "11538:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3168,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11546:5:2",
"memberName": "delta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4742,
"src": "11538:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256,int256) pure returns (uint256)"
}
},
"id": 3171,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11538:19:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11522:35:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3175,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3173,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3166,
"src": "11572:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3174,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3162,
"src": "11580:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11572:16:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3204,
"nodeType": "IfStatement",
"src": "11568:339:2",
"trueBody": {
"id": 3203,
"nodeType": "Block",
"src": "11590:317:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d",
"id": 3177,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11625:35:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d",
"typeString": "literal_string \"Error: a ~= b not satisfied [int]\""
},
"value": "Error: a ~= b not satisfied [int]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d",
"typeString": "literal_string \"Error: a ~= b not satisfied [int]\""
}
],
"id": 3176,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "11609:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 3178,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11609:52:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3179,
"nodeType": "EmitStatement",
"src": "11604:57:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20204578706563746564",
"id": 3181,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11696:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"id": 3182,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3160,
"src": "11710:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 3180,
"name": "log_named_int",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "11680:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$",
"typeString": "function (string memory,int256)"
}
},
"id": 3183,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11680:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3184,
"nodeType": "EmitStatement",
"src": "11675:37:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202041637475616c",
"id": 3186,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11747:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"id": 3187,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3158,
"src": "11761:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 3185,
"name": "log_named_int",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "11731:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$",
"typeString": "function (string memory,int256)"
}
},
"id": 3188,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11731:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3189,
"nodeType": "EmitStatement",
"src": "11726:37:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "204d61782044656c7461",
"id": 3191,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11798:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5",
"typeString": "literal_string \" Max Delta\""
},
"value": " Max Delta"
},
{
"id": 3192,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3162,
"src": "11812:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5",
"typeString": "literal_string \" Max Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3190,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "11782:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3193,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11782:39:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3194,
"nodeType": "EmitStatement",
"src": "11777:44:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "202020202044656c7461",
"id": 3196,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11856:12:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f",
"typeString": "literal_string \" Delta\""
},
"value": " Delta"
},
{
"id": 3197,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3166,
"src": "11870:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f",
"typeString": "literal_string \" Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3195,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "11840:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3198,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11840:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3199,
"nodeType": "EmitStatement",
"src": "11835:41:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3200,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "11890:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3201,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11890:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3202,
"nodeType": "ExpressionStatement",
"src": "11890:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqAbs",
"nameLocation": "11409:17:2",
"parameters": {
"id": 3163,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3158,
"mutability": "mutable",
"name": "a",
"nameLocation": "11443:1:2",
"nodeType": "VariableDeclaration",
"scope": 3206,
"src": "11436:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3157,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "11436:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3160,
"mutability": "mutable",
"name": "b",
"nameLocation": "11461:1:2",
"nodeType": "VariableDeclaration",
"scope": 3206,
"src": "11454:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3159,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "11454:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3162,
"mutability": "mutable",
"name": "maxDelta",
"nameLocation": "11480:8:2",
"nodeType": "VariableDeclaration",
"scope": 3206,
"src": "11472:16:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3161,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11472:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "11426:68:2"
},
"returnParameters": {
"id": 3164,
"nodeType": "ParameterList",
"parameters": [],
"src": "11512:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 3242,
"nodeType": "FunctionDefinition",
"src": "11919:333:2",
"body": {
"id": 3241,
"nodeType": "Block",
"src": "12058:194:2",
"statements": [
{
"assignments": [
3218
],
"declarations": [
{
"constant": false,
"id": 3218,
"mutability": "mutable",
"name": "delta",
"nameLocation": "12076:5:2",
"nodeType": "VariableDeclaration",
"scope": 3241,
"src": "12068:13:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3217,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12068:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3224,
"initialValue": {
"arguments": [
{
"id": 3221,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3208,
"src": "12098:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3222,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3210,
"src": "12101:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"expression": {
"id": 3219,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "12084:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "12092:5:2",
"memberName": "delta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4742,
"src": "12084:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256,int256) pure returns (uint256)"
}
},
"id": 3223,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12084:19:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "12068:35:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3225,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3218,
"src": "12118:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3226,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3212,
"src": "12126:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "12118:16:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3240,
"nodeType": "IfStatement",
"src": "12114:132:2",
"trueBody": {
"id": 3239,
"nodeType": "Block",
"src": "12136:110:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 3229,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12175:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 3230,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3214,
"src": "12184:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3228,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "12155:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 3231,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12155:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3232,
"nodeType": "EmitStatement",
"src": "12150:38:2"
},
{
"expression": {
"arguments": [
{
"id": 3234,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3208,
"src": "12220:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3235,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3210,
"src": "12223:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3236,
"name": "maxDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3212,
"src": "12226:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3233,
"name": "assertApproxEqAbs",
"nodeType": "Identifier",
"overloadedDeclarations": [
3120,
3156,
3206,
3242
],
"referencedDeclaration": 3206,
"src": "12202:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$",
"typeString": "function (int256,int256,uint256)"
}
},
"id": 3237,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12202:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3238,
"nodeType": "ExpressionStatement",
"src": "12202:33:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqAbs",
"nameLocation": "11928:17:2",
"parameters": {
"id": 3215,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3208,
"mutability": "mutable",
"name": "a",
"nameLocation": "11962:1:2",
"nodeType": "VariableDeclaration",
"scope": 3242,
"src": "11955:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3207,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "11955:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3210,
"mutability": "mutable",
"name": "b",
"nameLocation": "11980:1:2",
"nodeType": "VariableDeclaration",
"scope": 3242,
"src": "11973:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3209,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "11973:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3212,
"mutability": "mutable",
"name": "maxDelta",
"nameLocation": "11999:8:2",
"nodeType": "VariableDeclaration",
"scope": 3242,
"src": "11991:16:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3211,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11991:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3214,
"mutability": "mutable",
"name": "err",
"nameLocation": "12031:3:2",
"nodeType": "VariableDeclaration",
"scope": 3242,
"src": "12017:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3213,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "12017:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "11945:95:2"
},
"returnParameters": {
"id": 3216,
"nodeType": "ParameterList",
"parameters": [],
"src": "12058:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 3303,
"nodeType": "FunctionDefinition",
"src": "12258:766:2",
"body": {
"id": 3302,
"nodeType": "Block",
"src": "12435:589:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3253,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3251,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3246,
"src": "12449:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 3252,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12454:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "12449:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3259,
"nodeType": "IfStatement",
"src": "12445:33:2",
"trueBody": {
"expression": {
"arguments": [
{
"id": 3255,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3244,
"src": "12473:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3256,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3246,
"src": "12476:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3254,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 514,
"src": "12464:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (uint256,uint256)"
}
},
"id": 3257,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12464:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"functionReturnParameters": 3250,
"id": 3258,
"nodeType": "Return",
"src": "12457:21:2"
}
},
{
"assignments": [
3261
],
"declarations": [
{
"constant": false,
"id": 3261,
"mutability": "mutable",
"name": "percentDelta",
"nameLocation": "12542:12:2",
"nodeType": "VariableDeclaration",
"scope": 3302,
"src": "12534:20:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3260,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12534:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3267,
"initialValue": {
"arguments": [
{
"id": 3264,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3244,
"src": "12578:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3265,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3246,
"src": "12581:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3262,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "12557:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3263,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "12565:12:2",
"memberName": "percentDelta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4765,
"src": "12557:20:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 3266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12557:26:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "12534:49:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3270,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3268,
"name": "percentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3261,
"src": "12598:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3269,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3248,
"src": "12613:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "12598:30:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3301,
"nodeType": "IfStatement",
"src": "12594:424:2",
"trueBody": {
"id": 3300,
"nodeType": "Block",
"src": "12630:388:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d",
"id": 3272,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12673:36:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe",
"typeString": "literal_string \"Error: a ~= b not satisfied [uint]\""
},
"value": "Error: a ~= b not satisfied [uint]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe",
"typeString": "literal_string \"Error: a ~= b not satisfied [uint]\""
}
],
"id": 3271,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "12649:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 3273,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12649:61:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3274,
"nodeType": "EmitStatement",
"src": "12644:66:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "202020204578706563746564",
"id": 3276,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12753:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"id": 3277,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3246,
"src": "12769:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3275,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "12729:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3278,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12729:42:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3279,
"nodeType": "EmitStatement",
"src": "12724:47:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20202020202041637475616c",
"id": 3281,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12814:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"id": 3282,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3244,
"src": "12830:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3280,
"name": "log_named_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 73,
"src": "12790:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256)"
}
},
"id": 3283,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12790:42:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3284,
"nodeType": "EmitStatement",
"src": "12785:47:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "204d617820252044656c7461",
"id": 3286,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12875:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d",
"typeString": "literal_string \" Max % Delta\""
},
"value": " Max % Delta"
},
{
"id": 3287,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3248,
"src": "12891:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "3138",
"id": 3288,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12908:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d",
"typeString": "literal_string \" Max % Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
}
],
"id": 3285,
"name": "log_named_decimal_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61,
"src": "12851:22:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256,uint256)"
}
},
"id": 3289,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12851:60:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3290,
"nodeType": "EmitStatement",
"src": "12846:65:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202020252044656c7461",
"id": 3292,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12954:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7",
"typeString": "literal_string \" % Delta\""
},
"value": " % Delta"
},
{
"id": 3293,
"name": "percentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3261,
"src": "12970:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "3138",
"id": 3294,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "12984:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7",
"typeString": "literal_string \" % Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
}
],
"id": 3291,
"name": "log_named_decimal_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61,
"src": "12930:22:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256,uint256)"
}
},
"id": 3295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "12930:57:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3296,
"nodeType": "EmitStatement",
"src": "12925:62:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3297,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "13001:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3298,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13001:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3299,
"nodeType": "ExpressionStatement",
"src": "13001:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqRel",
"nameLocation": "12267:17:2",
"parameters": {
"id": 3249,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3244,
"mutability": "mutable",
"name": "a",
"nameLocation": "12302:1:2",
"nodeType": "VariableDeclaration",
"scope": 3303,
"src": "12294:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3243,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12294:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3246,
"mutability": "mutable",
"name": "b",
"nameLocation": "12321:1:2",
"nodeType": "VariableDeclaration",
"scope": 3303,
"src": "12313:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3245,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12313:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3248,
"mutability": "mutable",
"name": "maxPercentDelta",
"nameLocation": "12340:15:2",
"nodeType": "VariableDeclaration",
"scope": 3303,
"src": "12332:23:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3247,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "12332:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "12284:133:2"
},
"returnParameters": {
"id": 3250,
"nodeType": "ParameterList",
"parameters": [],
"src": "12435:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 3349,
"nodeType": "FunctionDefinition",
"src": "13030:531:2",
"body": {
"id": 3348,
"nodeType": "Block",
"src": "13234:327:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3316,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3314,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3307,
"src": "13248:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 3315,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "13253:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "13248:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3323,
"nodeType": "IfStatement",
"src": "13244:38:2",
"trueBody": {
"expression": {
"arguments": [
{
"id": 3318,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3305,
"src": "13272:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3319,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3307,
"src": "13275:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3320,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3311,
"src": "13278:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3317,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 539,
"src": "13263:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,uint256,string memory)"
}
},
"id": 3321,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13263:19:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"functionReturnParameters": 3313,
"id": 3322,
"nodeType": "Return",
"src": "13256:26:2"
}
},
{
"assignments": [
3325
],
"declarations": [
{
"constant": false,
"id": 3325,
"mutability": "mutable",
"name": "percentDelta",
"nameLocation": "13346:12:2",
"nodeType": "VariableDeclaration",
"scope": 3348,
"src": "13338:20:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3324,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13338:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3331,
"initialValue": {
"arguments": [
{
"id": 3328,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3305,
"src": "13382:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3329,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3307,
"src": "13385:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3326,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "13361:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3327,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "13369:12:2",
"memberName": "percentDelta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4765,
"src": "13361:20:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 3330,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13361:26:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "13338:49:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3332,
"name": "percentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3325,
"src": "13402:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3333,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3309,
"src": "13417:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "13402:30:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3347,
"nodeType": "IfStatement",
"src": "13398:157:2",
"trueBody": {
"id": 3346,
"nodeType": "Block",
"src": "13434:121:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 3336,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "13477:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 3337,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3311,
"src": "13486:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3335,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "13453:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 3338,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13453:37:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3339,
"nodeType": "EmitStatement",
"src": "13448:42:2"
},
{
"expression": {
"arguments": [
{
"id": 3341,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3305,
"src": "13522:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3342,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3307,
"src": "13525:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 3343,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3309,
"src": "13528:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3340,
"name": "assertApproxEqRel",
"nodeType": "Identifier",
"overloadedDeclarations": [
3303,
3349,
3410,
3455
],
"referencedDeclaration": 3303,
"src": "13504:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (uint256,uint256,uint256)"
}
},
"id": 3344,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13504:40:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3345,
"nodeType": "ExpressionStatement",
"src": "13504:40:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqRel",
"nameLocation": "13039:17:2",
"parameters": {
"id": 3312,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3305,
"mutability": "mutable",
"name": "a",
"nameLocation": "13074:1:2",
"nodeType": "VariableDeclaration",
"scope": 3349,
"src": "13066:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3304,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13066:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3307,
"mutability": "mutable",
"name": "b",
"nameLocation": "13093:1:2",
"nodeType": "VariableDeclaration",
"scope": 3349,
"src": "13085:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3306,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13085:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3309,
"mutability": "mutable",
"name": "maxPercentDelta",
"nameLocation": "13112:15:2",
"nodeType": "VariableDeclaration",
"scope": 3349,
"src": "13104:23:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3308,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13104:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3311,
"mutability": "mutable",
"name": "err",
"nameLocation": "13207:3:2",
"nodeType": "VariableDeclaration",
"scope": 3349,
"src": "13193:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3310,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "13193:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "13056:160:2"
},
"returnParameters": {
"id": 3313,
"nodeType": "ParameterList",
"parameters": [],
"src": "13234:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 3410,
"nodeType": "FunctionDefinition",
"src": "13567:702:2",
"body": {
"id": 3409,
"nodeType": "Block",
"src": "13686:583:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 3360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3358,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3353,
"src": "13700:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 3359,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "13705:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "13700:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3366,
"nodeType": "IfStatement",
"src": "13696:33:2",
"trueBody": {
"expression": {
"arguments": [
{
"id": 3362,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3351,
"src": "13724:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3363,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3353,
"src": "13727:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 3361,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 459,
"src": "13715:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$",
"typeString": "function (int256,int256)"
}
},
"id": 3364,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13715:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"functionReturnParameters": 3357,
"id": 3365,
"nodeType": "Return",
"src": "13708:21:2"
}
},
{
"assignments": [
3368
],
"declarations": [
{
"constant": false,
"id": 3368,
"mutability": "mutable",
"name": "percentDelta",
"nameLocation": "13793:12:2",
"nodeType": "VariableDeclaration",
"scope": 3409,
"src": "13785:20:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3367,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13785:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3374,
"initialValue": {
"arguments": [
{
"id": 3371,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3351,
"src": "13829:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3372,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3353,
"src": "13832:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"expression": {
"id": 3369,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "13808:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3370,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "13816:12:2",
"memberName": "percentDelta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4794,
"src": "13808:20:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256,int256) pure returns (uint256)"
}
},
"id": 3373,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13808:26:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "13785:49:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3377,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3375,
"name": "percentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3368,
"src": "13849:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3376,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3355,
"src": "13864:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "13849:30:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3408,
"nodeType": "IfStatement",
"src": "13845:418:2",
"trueBody": {
"id": 3407,
"nodeType": "Block",
"src": "13881:382:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d",
"id": 3379,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "13923:35:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d",
"typeString": "literal_string \"Error: a ~= b not satisfied [int]\""
},
"value": "Error: a ~= b not satisfied [int]"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d",
"typeString": "literal_string \"Error: a ~= b not satisfied [int]\""
}
],
"id": 3378,
"name": "log",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "13900:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 3380,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13900:59:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3381,
"nodeType": "EmitStatement",
"src": "13895:64:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "202020204578706563746564",
"id": 3383,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14001:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3",
"typeString": "literal_string \" Expected\""
},
"value": " Expected"
},
{
"id": 3384,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3353,
"src": "14017:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3",
"typeString": "literal_string \" Expected\""
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 3382,
"name": "log_named_int",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "13978:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$",
"typeString": "function (string memory,int256)"
}
},
"id": 3385,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "13978:41:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3386,
"nodeType": "EmitStatement",
"src": "13973:46:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "20202020202041637475616c",
"id": 3388,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14061:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9",
"typeString": "literal_string \" Actual\""
},
"value": " Actual"
},
{
"id": 3389,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3351,
"src": "14077:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9",
"typeString": "literal_string \" Actual\""
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 3387,
"name": "log_named_int",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "14038:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$",
"typeString": "function (string memory,int256)"
}
},
"id": 3390,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14038:41:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3391,
"nodeType": "EmitStatement",
"src": "14033:46:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "204d617820252044656c7461",
"id": 3393,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14121:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d",
"typeString": "literal_string \" Max % Delta\""
},
"value": " Max % Delta"
},
{
"id": 3394,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3355,
"src": "14137:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "3138",
"id": 3395,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14154:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d",
"typeString": "literal_string \" Max % Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
}
],
"id": 3392,
"name": "log_named_decimal_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61,
"src": "14098:22:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256,uint256)"
}
},
"id": 3396,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14098:59:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3397,
"nodeType": "EmitStatement",
"src": "14093:64:2"
},
{
"eventCall": {
"arguments": [
{
"hexValue": "2020202020252044656c7461",
"id": 3399,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14199:14:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7",
"typeString": "literal_string \" % Delta\""
},
"value": " % Delta"
},
{
"id": 3400,
"name": "percentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3368,
"src": "14215:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "3138",
"id": 3401,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14229:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7",
"typeString": "literal_string \" % Delta\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
}
],
"id": 3398,
"name": "log_named_decimal_uint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61,
"src": "14176:22:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (string memory,uint256,uint256)"
}
},
"id": 3402,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14176:56:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3403,
"nodeType": "EmitStatement",
"src": "14171:61:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 3404,
"name": "fail",
"nodeType": "Identifier",
"overloadedDeclarations": [
2718,
216
],
"referencedDeclaration": 216,
"src": "14246:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 3405,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14246:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3406,
"nodeType": "ExpressionStatement",
"src": "14246:6:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqRel",
"nameLocation": "13576:17:2",
"parameters": {
"id": 3356,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3351,
"mutability": "mutable",
"name": "a",
"nameLocation": "13610:1:2",
"nodeType": "VariableDeclaration",
"scope": 3410,
"src": "13603:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3350,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "13603:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3353,
"mutability": "mutable",
"name": "b",
"nameLocation": "13628:1:2",
"nodeType": "VariableDeclaration",
"scope": 3410,
"src": "13621:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3352,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "13621:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3355,
"mutability": "mutable",
"name": "maxPercentDelta",
"nameLocation": "13647:15:2",
"nodeType": "VariableDeclaration",
"scope": 3410,
"src": "13639:23:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3354,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "13639:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "13593:75:2"
},
"returnParameters": {
"id": 3357,
"nodeType": "ParameterList",
"parameters": [],
"src": "13686:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
{
"id": 3455,
"nodeType": "FunctionDefinition",
"src": "14275:467:2",
"body": {
"id": 3454,
"nodeType": "Block",
"src": "14421:321:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 3423,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3421,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3414,
"src": "14435:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 3422,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14440:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "14435:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3429,
"nodeType": "IfStatement",
"src": "14431:33:2",
"trueBody": {
"expression": {
"arguments": [
{
"id": 3425,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3412,
"src": "14459:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3426,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3414,
"src": "14462:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 3424,
"name": "assertEq",
"nodeType": "Identifier",
"overloadedDeclarations": [
2779,
2804,
2817,
2833,
2875,
2917,
2959,
2996,
3033,
3070,
320,
345,
375,
400,
459,
484,
514,
539,
1639,
1674
],
"referencedDeclaration": 459,
"src": "14450:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$",
"typeString": "function (int256,int256)"
}
},
"id": 3427,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14450:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"functionReturnParameters": 3420,
"id": 3428,
"nodeType": "Return",
"src": "14443:21:2"
}
},
{
"assignments": [
3431
],
"declarations": [
{
"constant": false,
"id": 3431,
"mutability": "mutable",
"name": "percentDelta",
"nameLocation": "14528:12:2",
"nodeType": "VariableDeclaration",
"scope": 3454,
"src": "14520:20:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3430,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "14520:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3437,
"initialValue": {
"arguments": [
{
"id": 3434,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3412,
"src": "14564:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3435,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3414,
"src": "14567:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"expression": {
"id": 3432,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4795,
"src": "14543:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdMath_$4795_$",
"typeString": "type(library stdMath)"
}
},
"id": 3433,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "14551:12:2",
"memberName": "percentDelta",
"nodeType": "MemberAccess",
"referencedDeclaration": 4794,
"src": "14543:20:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256,int256) pure returns (uint256)"
}
},
"id": 3436,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14543:26:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "14520:49:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3440,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3438,
"name": "percentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3431,
"src": "14584:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 3439,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3416,
"src": "14599:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "14584:30:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3453,
"nodeType": "IfStatement",
"src": "14580:156:2",
"trueBody": {
"id": 3452,
"nodeType": "Block",
"src": "14616:120:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"hexValue": "4572726f72",
"id": 3442,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "14658:7:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
"value": "Error"
},
{
"id": 3443,
"name": "err",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3418,
"src": "14667:3:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1",
"typeString": "literal_string \"Error\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3441,
"name": "log_named_string",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "14635:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 3444,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14635:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3445,
"nodeType": "EmitStatement",
"src": "14630:41:2"
},
{
"expression": {
"arguments": [
{
"id": 3447,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3412,
"src": "14703:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3448,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3414,
"src": "14706:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 3449,
"name": "maxPercentDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3416,
"src": "14709:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3446,
"name": "assertApproxEqRel",
"nodeType": "Identifier",
"overloadedDeclarations": [
3303,
3349,
3410,
3455
],
"referencedDeclaration": 3410,
"src": "14685:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$",
"typeString": "function (int256,int256,uint256)"
}
},
"id": 3450,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "14685:40:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3451,
"nodeType": "ExpressionStatement",
"src": "14685:40:2"
}
]
}
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "assertApproxEqRel",
"nameLocation": "14284:17:2",
"parameters": {
"id": 3419,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3412,
"mutability": "mutable",
"name": "a",
"nameLocation": "14318:1:2",
"nodeType": "VariableDeclaration",
"scope": 3455,
"src": "14311:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3411,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "14311:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3414,
"mutability": "mutable",
"name": "b",
"nameLocation": "14336:1:2",
"nodeType": "VariableDeclaration",
"scope": 3455,
"src": "14329:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3413,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "14329:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3416,
"mutability": "mutable",
"name": "maxPercentDelta",
"nameLocation": "14355:15:2",
"nodeType": "VariableDeclaration",
"scope": 3455,
"src": "14347:23:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3415,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "14347:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3418,
"mutability": "mutable",
"name": "err",
"nameLocation": "14394:3:2",
"nodeType": "VariableDeclaration",
"scope": 3455,
"src": "14380:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3417,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "14380:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "14301:102:2"
},
"returnParameters": {
"id": 3420,
"nodeType": "ParameterList",
"parameters": [],
"src": "14421:0:2"
},
"scope": 3456,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
}
],
"abstract": true,
"baseContracts": [
{
"baseName": {
"id": 2027,
"name": "DSTest",
"nameLocations": [
"190:6:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 1786,
"src": "190:6:2"
},
"id": 2028,
"nodeType": "InheritanceSpecifier",
"src": "190:6:2"
},
{
"baseName": {
"id": 2029,
"name": "Script",
"nameLocations": [
"198:6:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2022,
"src": "198:6:2"
},
"id": 2030,
"nodeType": "InheritanceSpecifier",
"src": "198:6:2"
}
],
"canonicalName": "Test",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
3456,
2022,
1786
],
"name": "Test",
"nameLocation": "182:4:2",
"scope": 4796,
"usedErrors": []
},
{
"id": 3526,
"nodeType": "ContractDefinition",
"src": "14944:984:2",
"nodes": [
{
"id": 3463,
"nodeType": "VariableDeclaration",
"src": "14967:86:2",
"constant": true,
"functionSelector": "10332977",
"mutability": "constant",
"name": "assertionError",
"nameLocation": "14989:14:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3457,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "14967:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3460,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15030:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783031",
"id": 3461,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15048:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "0x01"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"id": 3458,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15006:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3459,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15010:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15006:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3462,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15006:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3470,
"nodeType": "VariableDeclaration",
"src": "15059:87:2",
"constant": true,
"functionSelector": "8995290f",
"mutability": "constant",
"name": "arithmeticError",
"nameLocation": "15081:15:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3464,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15059:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3467,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15123:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783131",
"id": 3468,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15141:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_17_by_1",
"typeString": "int_const 17"
},
"value": "0x11"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_17_by_1",
"typeString": "int_const 17"
}
],
"expression": {
"id": 3465,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15099:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3466,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15103:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15099:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3469,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15099:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3477,
"nodeType": "VariableDeclaration",
"src": "15152:85:2",
"constant": true,
"functionSelector": "fa784a44",
"mutability": "constant",
"name": "divisionError",
"nameLocation": "15174:13:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3471,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15152:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3474,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15214:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783132",
"id": 3475,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15232:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "0x12"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
}
],
"expression": {
"id": 3472,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15190:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3473,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15194:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15190:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3476,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15190:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3484,
"nodeType": "VariableDeclaration",
"src": "15243:91:2",
"constant": true,
"functionSelector": "1de45560",
"mutability": "constant",
"name": "enumConversionError",
"nameLocation": "15265:19:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3478,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15243:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3481,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15311:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783231",
"id": 3482,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15329:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_33_by_1",
"typeString": "int_const 33"
},
"value": "0x21"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_33_by_1",
"typeString": "int_const 33"
}
],
"expression": {
"id": 3479,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15287:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3480,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15291:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15287:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3483,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15287:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3491,
"nodeType": "VariableDeclaration",
"src": "15340:90:2",
"constant": true,
"functionSelector": "d160e4de",
"mutability": "constant",
"name": "encodeStorageError",
"nameLocation": "15362:18:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3485,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15340:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3488,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15407:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783232",
"id": 3489,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15425:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_34_by_1",
"typeString": "int_const 34"
},
"value": "0x22"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_34_by_1",
"typeString": "int_const 34"
}
],
"expression": {
"id": 3486,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15383:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3487,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15387:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15383:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3490,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15383:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3498,
"nodeType": "VariableDeclaration",
"src": "15436:80:2",
"constant": true,
"functionSelector": "b22dc54d",
"mutability": "constant",
"name": "popError",
"nameLocation": "15458:8:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3492,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15436:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3495,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15493:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783331",
"id": 3496,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15511:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_49_by_1",
"typeString": "int_const 49"
},
"value": "0x31"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_49_by_1",
"typeString": "int_const 49"
}
],
"expression": {
"id": 3493,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15469:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3494,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15473:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15469:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3497,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15469:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3505,
"nodeType": "VariableDeclaration",
"src": "15522:85:2",
"constant": true,
"functionSelector": "05ee8612",
"mutability": "constant",
"name": "indexOOBError",
"nameLocation": "15544:13:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3499,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15522:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3502,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15584:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783332",
"id": 3503,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15602:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
},
"value": "0x32"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
}
],
"expression": {
"id": 3500,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15560:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3501,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15564:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15560:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3504,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15560:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3512,
"nodeType": "VariableDeclaration",
"src": "15613:88:2",
"constant": true,
"functionSelector": "986c5f68",
"mutability": "constant",
"name": "memOverflowError",
"nameLocation": "15635:16:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3506,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15613:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3509,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15678:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783431",
"id": 3510,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15696:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_65_by_1",
"typeString": "int_const 65"
},
"value": "0x41"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_65_by_1",
"typeString": "int_const 65"
}
],
"expression": {
"id": 3507,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15654:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3508,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15658:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15654:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3511,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15654:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3519,
"nodeType": "VariableDeclaration",
"src": "15707:84:2",
"constant": true,
"functionSelector": "b67689da",
"mutability": "constant",
"name": "zeroVarError",
"nameLocation": "15729:12:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3513,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15707:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "50616e69632875696e7432353629",
"id": 3516,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15768:16:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
"value": "Panic(uint256)"
},
{
"hexValue": "30783531",
"id": 3517,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15786:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_81_by_1",
"typeString": "int_const 81"
},
"value": "0x51"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268",
"typeString": "literal_string \"Panic(uint256)\""
},
{
"typeIdentifier": "t_rational_81_by_1",
"typeString": "int_const 81"
}
],
"expression": {
"id": 3514,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "15744:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3515,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "15748:19:2",
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "15744:23:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3518,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15744:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
},
{
"id": 3525,
"nodeType": "VariableDeclaration",
"src": "15870:47:2",
"constant": true,
"functionSelector": "ac3d92c6",
"mutability": "constant",
"name": "lowLevelError",
"nameLocation": "15892:13:2",
"scope": 3526,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3520,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15870:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": {
"arguments": [
{
"hexValue": "",
"id": 3523,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "15914:2:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
}
],
"id": 3522,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "15908:5:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 3521,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "15908:5:2",
"typeDescriptions": {}
}
},
"id": 3524,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "15908:9:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"visibility": "public"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "stdError",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
3526
],
"name": "stdError",
"nameLocation": "14952:8:2",
"scope": 4796,
"usedErrors": []
},
{
"id": 3554,
"nodeType": "StructDefinition",
"src": "16129:275:2",
"canonicalName": "StdStorage",
"members": [
{
"constant": false,
"id": 3534,
"mutability": "mutable",
"name": "slots",
"nameLocation": "16221:5:2",
"nodeType": "VariableDeclaration",
"scope": 3554,
"src": "16153:73:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
},
"typeName": {
"id": 3533,
"keyType": {
"id": 3527,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16162:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "16153:67:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
},
"valueType": {
"id": 3532,
"keyType": {
"id": 3528,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "16181:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "16173:46:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
},
"valueType": {
"id": 3531,
"keyType": {
"id": 3529,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "16199:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "16191:27:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 3530,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16210:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3542,
"mutability": "mutable",
"name": "finds",
"nameLocation": "16298:5:2",
"nodeType": "VariableDeclaration",
"scope": 3554,
"src": "16232:71:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
},
"typeName": {
"id": 3541,
"keyType": {
"id": 3535,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16241:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "16232:65:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
},
"valueType": {
"id": 3540,
"keyType": {
"id": 3536,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "16260:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "16252:44:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
},
"valueType": {
"id": 3539,
"keyType": {
"id": 3537,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "16279:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "16271:24:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"valueType": {
"id": 3538,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "16290:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
}
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3545,
"mutability": "mutable",
"name": "_keys",
"nameLocation": "16320:5:2",
"nodeType": "VariableDeclaration",
"scope": 3554,
"src": "16310:15:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 3543,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "16310:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 3544,
"nodeType": "ArrayTypeName",
"src": "16310:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3547,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "16338:4:2",
"nodeType": "VariableDeclaration",
"scope": 3554,
"src": "16331:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3546,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "16331:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3549,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "16356:6:2",
"nodeType": "VariableDeclaration",
"scope": 3554,
"src": "16348:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3548,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16348:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3551,
"mutability": "mutable",
"name": "_target",
"nameLocation": "16376:7:2",
"nodeType": "VariableDeclaration",
"scope": 3554,
"src": "16368:15:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3550,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16368:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3553,
"mutability": "mutable",
"name": "_set",
"nameLocation": "16397:4:2",
"nodeType": "VariableDeclaration",
"scope": 3554,
"src": "16389:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3552,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "16389:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"name": "StdStorage",
"nameLocation": "16136:10:2",
"scope": 4796,
"visibility": "public"
},
{
"id": 4656,
"nodeType": "ContractDefinition",
"src": "16406:8872:2",
"nodes": [
{
"id": 3564,
"nodeType": "EventDefinition",
"src": "16431:71:2",
"anonymous": false,
"eventSelector": "9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed",
"name": "SlotFound",
"nameLocation": "16437:9:2",
"parameters": {
"id": 3563,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3556,
"indexed": false,
"mutability": "mutable",
"name": "who",
"nameLocation": "16455:3:2",
"nodeType": "VariableDeclaration",
"scope": 3564,
"src": "16447:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3555,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16447:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3558,
"indexed": false,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "16467:4:2",
"nodeType": "VariableDeclaration",
"scope": 3564,
"src": "16460:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3557,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "16460:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3560,
"indexed": false,
"mutability": "mutable",
"name": "keysHash",
"nameLocation": "16481:8:2",
"nodeType": "VariableDeclaration",
"scope": 3564,
"src": "16473:16:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3559,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "16473:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3562,
"indexed": false,
"mutability": "mutable",
"name": "slot",
"nameLocation": "16496:4:2",
"nodeType": "VariableDeclaration",
"scope": 3564,
"src": "16491:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3561,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "16491:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "16446:55:2"
}
},
{
"id": 3570,
"nodeType": "EventDefinition",
"src": "16507:51:2",
"anonymous": false,
"eventSelector": "080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5",
"name": "WARNING_UninitedSlot",
"nameLocation": "16513:20:2",
"parameters": {
"id": 3569,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3566,
"indexed": false,
"mutability": "mutable",
"name": "who",
"nameLocation": "16542:3:2",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "16534:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3565,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16534:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 3568,
"indexed": false,
"mutability": "mutable",
"name": "slot",
"nameLocation": "16552:4:2",
"nodeType": "VariableDeclaration",
"scope": 3570,
"src": "16547:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3567,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "16547:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "16533:24:2"
}
},
{
"id": 3573,
"nodeType": "VariableDeclaration",
"src": "16564:117:2",
"constant": true,
"mutability": "constant",
"name": "UINT256_MAX",
"nameLocation": "16589:11:2",
"scope": 4656,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3571,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16564:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"hexValue": "313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335",
"id": 3572,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "16603:78:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1",
"typeString": "int_const 1157...(70 digits omitted)...9935"
},
"value": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
},
"visibility": "private"
},
{
"id": 3576,
"nodeType": "VariableDeclaration",
"src": "16687:114:2",
"constant": true,
"mutability": "constant",
"name": "INT256_MAX",
"nameLocation": "16711:10:2",
"scope": 4656,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 3574,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "16687:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": {
"hexValue": "3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393637",
"id": 3575,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "16724:77:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1",
"typeString": "int_const 5789...(69 digits omitted)...9967"
},
"value": "57896044618658097711785492504343953926634992332820282019728792003956564819967"
},
"visibility": "private"
},
{
"id": 3593,
"nodeType": "VariableDeclaration",
"src": "16808:94:2",
"constant": true,
"mutability": "constant",
"name": "vm_std_store",
"nameLocation": "16828:12:2",
"scope": 4656,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
},
"typeName": {
"id": 3578,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 3577,
"name": "Vm",
"nameLocations": [
"16808:2:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 5434,
"src": "16808:2:2"
},
"referencedDeclaration": 5434,
"src": "16808:2:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"hexValue": "6865766d20636865617420636f6465",
"id": 3587,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "16880:17:2",
"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": 3586,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "16870:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3588,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16870:28:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3585,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "16862:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3584,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16862:7:2",
"typeDescriptions": {}
}
},
"id": 3589,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16862:37:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3583,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "16854:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 3582,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "16854:7:2",
"typeDescriptions": {}
}
},
"id": 3590,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16854:46:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 3581,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "16846:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3580,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16846:7:2",
"typeDescriptions": {}
}
},
"id": 3591,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16846:55:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3579,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5434,
"src": "16843:2:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Vm_$5434_$",
"typeString": "type(contract Vm)"
}
},
"id": 3592,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "16843:59:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"visibility": "private"
},
{
"id": 3611,
"nodeType": "FunctionDefinition",
"src": "16909:165:2",
"body": {
"id": 3610,
"nodeType": "Block",
"src": "17018:56:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 3605,
"name": "sigStr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3595,
"src": "17058:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 3604,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "17052:5:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 3603,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "17052:5:2",
"typeDescriptions": {}
}
},
"id": 3606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17052:13:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3602,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "17042:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3607,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17042:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3601,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "17035:6:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes4_$",
"typeString": "type(bytes4)"
},
"typeName": {
"id": 3600,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "17035:6:2",
"typeDescriptions": {}
}
},
"id": 3608,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17035:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 3599,
"id": 3609,
"nodeType": "Return",
"src": "17028:39:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sigs",
"nameLocation": "16918:4:2",
"parameters": {
"id": 3596,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3595,
"mutability": "mutable",
"name": "sigStr",
"nameLocation": "16946:6:2",
"nodeType": "VariableDeclaration",
"scope": 3611,
"src": "16932:20:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3594,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "16932:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "16922:36:2"
},
"returnParameters": {
"id": 3599,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3598,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 3611,
"src": "17006:6:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3597,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "17006:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "17005:8:2"
},
"scope": 4656,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 4056,
"nodeType": "FunctionDefinition",
"src": "17588:3214:2",
"body": {
"id": 4055,
"nodeType": "Block",
"src": "17688:3114:2",
"statements": [
{
"assignments": [
3621
],
"declarations": [
{
"constant": false,
"id": 3621,
"mutability": "mutable",
"name": "who",
"nameLocation": "17706:3:2",
"nodeType": "VariableDeclaration",
"scope": 4055,
"src": "17698:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3620,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "17698:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 3624,
"initialValue": {
"expression": {
"id": 3622,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "17712:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3623,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17717:7:2",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 3551,
"src": "17712:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "17698:26:2"
},
{
"assignments": [
3626
],
"declarations": [
{
"constant": false,
"id": 3626,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "17741:4:2",
"nodeType": "VariableDeclaration",
"scope": 4055,
"src": "17734:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 3625,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "17734:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"id": 3629,
"initialValue": {
"expression": {
"id": 3627,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "17748:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3628,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17753:4:2",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 3547,
"src": "17748:9:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "17734:23:2"
},
{
"assignments": [
3631
],
"declarations": [
{
"constant": false,
"id": 3631,
"mutability": "mutable",
"name": "field_depth",
"nameLocation": "17775:11:2",
"nodeType": "VariableDeclaration",
"scope": 4055,
"src": "17767:19:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3630,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17767:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3634,
"initialValue": {
"expression": {
"id": 3632,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "17789:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3633,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17794:6:2",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 3549,
"src": "17789:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "17767:33:2"
},
{
"assignments": [
3639
],
"declarations": [
{
"constant": false,
"id": 3639,
"mutability": "mutable",
"name": "ins",
"nameLocation": "17827:3:2",
"nodeType": "VariableDeclaration",
"scope": 4055,
"src": "17810:20:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 3637,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "17810:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 3638,
"nodeType": "ArrayTypeName",
"src": "17810:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"id": 3642,
"initialValue": {
"expression": {
"id": 3640,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "17833:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3641,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17838:5:2",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 3545,
"src": "17833:10:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "17810:33:2"
},
{
"condition": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 3643,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "17894:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3644,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17899:5:2",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 3542,
"src": "17894:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
}
},
"id": 3646,
"indexExpression": {
"id": 3645,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "17905:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "17894:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 3648,
"indexExpression": {
"id": 3647,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "17910:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "17894:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 3656,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 3652,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "17943:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3653,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "17948:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3650,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "17926:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3651,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "17930:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "17926:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3654,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17926:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3649,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "17916:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3655,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "17916:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "17894:68:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3673,
"nodeType": "IfStatement",
"src": "17890:174:2",
"trueBody": {
"id": 3672,
"nodeType": "Block",
"src": "17964:100:2",
"statements": [
{
"expression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 3657,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "17985:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3658,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "17990:5:2",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 3534,
"src": "17985:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
}
},
"id": 3660,
"indexExpression": {
"id": 3659,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "17996:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "17985:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 3662,
"indexExpression": {
"id": 3661,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "18001:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "17985:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3670,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 3666,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "18034:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3667,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "18039:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3664,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "18017:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3665,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "18021:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "18017:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3668,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18017:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3663,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "18007:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3669,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18007:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "17985:68:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3619,
"id": 3671,
"nodeType": "Return",
"src": "17978:75:2"
}
]
}
},
{
"assignments": [
3675
],
"declarations": [
{
"constant": false,
"id": 3675,
"mutability": "mutable",
"name": "cald",
"nameLocation": "18086:4:2",
"nodeType": "VariableDeclaration",
"scope": 4055,
"src": "18073:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3674,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "18073:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 3683,
"initialValue": {
"arguments": [
{
"id": 3678,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "18110:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"id": 3680,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "18124:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
],
"id": 3679,
"name": "flatten",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4655,
"src": "18116:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (bytes32[] memory) pure returns (bytes memory)"
}
},
"id": 3681,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18116:12:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 3676,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "18093:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3677,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "18097:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "18093:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3682,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18093:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18073:56:2"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 3684,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "18139:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 3686,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "18152:6:2",
"memberName": "record",
"nodeType": "MemberAccess",
"referencedDeclaration": 5072,
"src": "18139:19:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
"typeString": "function () external"
}
},
"id": 3687,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18139:21:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3688,
"nodeType": "ExpressionStatement",
"src": "18139:21:2"
},
{
"assignments": [
3690
],
"declarations": [
{
"constant": false,
"id": 3690,
"mutability": "mutable",
"name": "fdat",
"nameLocation": "18178:4:2",
"nodeType": "VariableDeclaration",
"scope": 4055,
"src": "18170:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3689,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "18170:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 3691,
"nodeType": "VariableDeclarationStatement",
"src": "18170:12:2"
},
{
"id": 3708,
"nodeType": "Block",
"src": "18192:126:2",
"statements": [
{
"assignments": [
null,
3693
],
"declarations": [
null,
{
"constant": false,
"id": 3693,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "18222:4:2",
"nodeType": "VariableDeclaration",
"scope": 3708,
"src": "18209:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3692,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "18209:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 3698,
"initialValue": {
"arguments": [
{
"id": 3696,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "18245:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 3694,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "18230:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3695,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "18234:10:2",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "18230:14:2",
"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": 3697,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18230:20:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18206:44:2"
},
{
"expression": {
"id": 3706,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 3699,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3690,
"src": "18264:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 3701,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3693,
"src": "18286:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3704,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 3702,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18292:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 3703,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "18295:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "18292:14:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3700,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4614,
"src": "18271:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 3705,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18271:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "18264:43:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 3707,
"nodeType": "ExpressionStatement",
"src": "18264:43:2"
}
]
},
{
"assignments": [
3713,
null
],
"declarations": [
{
"constant": false,
"id": 3713,
"mutability": "mutable",
"name": "reads",
"nameLocation": "18346:5:2",
"nodeType": "VariableDeclaration",
"scope": 4055,
"src": "18329:22:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 3711,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "18329:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 3712,
"nodeType": "ArrayTypeName",
"src": "18329:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
null
],
"id": 3721,
"initialValue": {
"arguments": [
{
"arguments": [
{
"id": 3718,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "18387:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 3717,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18379:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 3716,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18379:7:2",
"typeDescriptions": {}
}
},
"id": 3719,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18379:12:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 3714,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "18357:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 3715,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "18370:8:2",
"memberName": "accesses",
"nodeType": "MemberAccess",
"referencedDeclaration": 5083,
"src": "18357:21:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$",
"typeString": "function (address) external returns (bytes32[] memory,bytes32[] memory)"
}
},
"id": 3720,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18357:35:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$",
"typeString": "tuple(bytes32[] memory,bytes32[] memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18328:64:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3725,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 3722,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "18406:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3723,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "18412:6:2",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "18406:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "31",
"id": 3724,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18422:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "18406:17:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3827,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 3824,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "19115:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3825,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19121:6:2",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "19115:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "31",
"id": 3826,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19130:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "19115:16:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 4003,
"nodeType": "Block",
"src": "20353:107:2",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 3999,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "20375:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a204e6f2073746f726167652075736520646574656374656420666f72207461726765742e",
"id": 4000,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "20382:66:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283",
"typeString": "literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""
},
"value": "stdStorage find(StdStorage): No storage use detected for target."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283",
"typeString": "literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""
}
],
"id": 3998,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "20367:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4001,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20367:82:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4002,
"nodeType": "ExpressionStatement",
"src": "20367:82:2"
}
]
},
"id": 4004,
"nodeType": "IfStatement",
"src": "19111:1349:2",
"trueBody": {
"id": 3997,
"nodeType": "Block",
"src": "19133:1214:2",
"statements": [
{
"body": {
"id": 3995,
"nodeType": "Block",
"src": "19190:1147:2",
"statements": [
{
"assignments": [
3840
],
"declarations": [
{
"constant": false,
"id": 3840,
"mutability": "mutable",
"name": "prev",
"nameLocation": "19216:4:2",
"nodeType": "VariableDeclaration",
"scope": 3995,
"src": "19208:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3839,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "19208:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 3848,
"initialValue": {
"arguments": [
{
"id": 3843,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "19241:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 3844,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "19246:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3846,
"indexExpression": {
"id": 3845,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "19252:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19246:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 3841,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "19223:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 3842,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19236:4:2",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 4838,
"src": "19223:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) external returns (bytes32)"
}
},
"id": 3847,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19223:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "19208:47:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3854,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3849,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3840,
"src": "19277:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 3852,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19293:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 3851,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "19285:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3850,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "19285:7:2",
"typeDescriptions": {}
}
},
"id": 3853,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19285:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "19277:18:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3866,
"nodeType": "IfStatement",
"src": "19273:114:2",
"trueBody": {
"id": 3865,
"nodeType": "Block",
"src": "19297:90:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 3856,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "19345:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 3859,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "19358:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3861,
"indexExpression": {
"id": 3860,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "19364:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19358:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3858,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "19350:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3857,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "19350:7:2",
"typeDescriptions": {}
}
},
"id": 3862,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19350:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3855,
"name": "WARNING_UninitedSlot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "19324:20:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 3863,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19324:44:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3864,
"nodeType": "EmitStatement",
"src": "19319:49:2"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 3870,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "19448:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 3871,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "19453:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3873,
"indexExpression": {
"id": 3872,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "19459:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19453:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"hexValue": "1337",
"id": 3876,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "hexString",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19471:9:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
},
"value": "\u00137"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
}
],
"id": 3875,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "19463:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3874,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "19463:7:2",
"typeDescriptions": {}
}
},
"id": 3877,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19463:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 3867,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "19429:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 3869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19442:5:2",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 4847,
"src": "19429:18:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 3878,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19429:53:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3879,
"nodeType": "ExpressionStatement",
"src": "19429:53:2"
},
{
"assignments": [
3881
],
"declarations": [
{
"constant": false,
"id": 3881,
"mutability": "mutable",
"name": "success",
"nameLocation": "19505:7:2",
"nodeType": "VariableDeclaration",
"scope": 3995,
"src": "19500:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3880,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "19500:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"id": 3882,
"nodeType": "VariableDeclarationStatement",
"src": "19500:12:2"
},
{
"assignments": [
3884
],
"declarations": [
{
"constant": false,
"id": 3884,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "19543:4:2",
"nodeType": "VariableDeclaration",
"scope": 3995,
"src": "19530:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3883,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "19530:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 3885,
"nodeType": "VariableDeclarationStatement",
"src": "19530:17:2"
},
{
"id": 3904,
"nodeType": "Block",
"src": "19565:144:2",
"statements": [
{
"expression": {
"id": 3893,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"components": [
{
"id": 3886,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3881,
"src": "19588:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"id": 3887,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3884,
"src": "19597:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"id": 3888,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "19587:15:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 3891,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3675,
"src": "19620:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 3889,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "19605:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3890,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19609:10:2",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "19605:14:2",
"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": 3892,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19605:20:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"src": "19587:38:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3894,
"nodeType": "ExpressionStatement",
"src": "19587:38:2"
},
{
"expression": {
"id": 3902,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 3895,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3690,
"src": "19647:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 3897,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3884,
"src": "19669:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3900,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 3898,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19675:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 3899,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "19678:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "19675:14:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3896,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4614,
"src": "19654:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 3901,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19654:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "19647:43:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 3903,
"nodeType": "ExpressionStatement",
"src": "19647:43:2"
}
]
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 3912,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3905,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3881,
"src": "19731:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3911,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3906,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3690,
"src": "19742:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "1337",
"id": 3909,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "hexString",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19758:9:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
},
"value": "\u00137"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
}
],
"id": 3908,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "19750:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3907,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "19750:7:2",
"typeDescriptions": {}
}
},
"id": 3910,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19750:18:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "19742:26:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "19731:37:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3984,
"nodeType": "IfStatement",
"src": "19727:539:2",
"trueBody": {
"id": 3983,
"nodeType": "Block",
"src": "19770:496:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 3914,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "19876:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 3915,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "19881:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"arguments": [
{
"id": 3919,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "19914:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3920,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "19919:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3917,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "19897:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3918,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "19901:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "19897:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3921,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19897:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3916,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "19887:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3922,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19887:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 3925,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "19942:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3927,
"indexExpression": {
"id": 3926,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "19948:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19942:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3924,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "19934:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3923,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "19934:7:2",
"typeDescriptions": {}
}
},
"id": 3928,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19934:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3913,
"name": "SlotFound",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3564,
"src": "19866:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$",
"typeString": "function (address,bytes4,bytes32,uint256)"
}
},
"id": 3929,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19866:86:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3930,
"nodeType": "EmitStatement",
"src": "19861:91:2"
},
{
"expression": {
"id": 3952,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 3931,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "19974:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3942,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19979:5:2",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 3534,
"src": "19974:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
}
},
"id": 3943,
"indexExpression": {
"id": 3933,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "19985:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19974:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 3944,
"indexExpression": {
"id": 3934,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "19990:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19974:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3945,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 3938,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "20023:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3939,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "20028:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3936,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "20006:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3937,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "20010:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "20006:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3940,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20006:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3935,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "19996:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3941,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19996:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "19974:68:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"baseExpression": {
"id": 3948,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "20053:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3950,
"indexExpression": {
"id": 3949,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "20059:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20053:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3947,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "20045:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3946,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "20045:7:2",
"typeDescriptions": {}
}
},
"id": 3951,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20045:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "19974:88:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3953,
"nodeType": "ExpressionStatement",
"src": "19974:88:2"
},
{
"expression": {
"id": 3970,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 3954,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "20084:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3965,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "20089:5:2",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 3542,
"src": "20084:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
}
},
"id": 3966,
"indexExpression": {
"id": 3956,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "20095:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20084:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 3967,
"indexExpression": {
"id": 3957,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "20100:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20084:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 3968,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 3961,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "20133:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3962,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "20138:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3959,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "20116:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3960,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "20120:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "20116:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3963,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20116:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3958,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "20106:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3964,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20106:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "20084:68:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 3969,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "20155:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "20084:75:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3971,
"nodeType": "ExpressionStatement",
"src": "20084:75:2"
},
{
"expression": {
"arguments": [
{
"id": 3975,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "20200:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 3976,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "20205:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3978,
"indexExpression": {
"id": 3977,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "20211:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20205:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 3979,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3840,
"src": "20215:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 3972,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "20181:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 3974,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "20194:5:2",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 4847,
"src": "20181:18:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 3980,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20181:39:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3981,
"nodeType": "ExpressionStatement",
"src": "20181:39:2"
},
{
"id": 3982,
"nodeType": "Break",
"src": "20242:5:2"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 3988,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "20302:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 3989,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "20307:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3991,
"indexExpression": {
"id": 3990,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "20313:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20307:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 3992,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3840,
"src": "20317:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 3985,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "20283:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 3987,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "20296:5:2",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 4847,
"src": "20283:18:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 3993,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20283:39:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3994,
"nodeType": "ExpressionStatement",
"src": "20283:39:2"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3835,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3832,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "19167:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 3833,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "19171:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3834,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19177:6:2",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "19171:12:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "19167:16:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3996,
"initializationExpression": {
"assignments": [
3829
],
"declarations": [
{
"constant": false,
"id": 3829,
"mutability": "mutable",
"name": "i",
"nameLocation": "19160:1:2",
"nodeType": "VariableDeclaration",
"scope": 3996,
"src": "19152:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3828,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "19152:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 3831,
"initialValue": {
"hexValue": "30",
"id": 3830,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19164:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "19152:13:2"
},
"loopExpression": {
"expression": {
"id": 3837,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "19185:3:2",
"subExpression": {
"id": 3836,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3829,
"src": "19185:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3838,
"nodeType": "ExpressionStatement",
"src": "19185:3:2"
},
"nodeType": "ForStatement",
"src": "19147:1190:2"
}
]
}
},
"id": 4005,
"nodeType": "IfStatement",
"src": "18402:2058:2",
"trueBody": {
"id": 3823,
"nodeType": "Block",
"src": "18425:680:2",
"statements": [
{
"assignments": [
3727
],
"declarations": [
{
"constant": false,
"id": 3727,
"mutability": "mutable",
"name": "curr",
"nameLocation": "18447:4:2",
"nodeType": "VariableDeclaration",
"scope": 3823,
"src": "18439:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 3726,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "18439:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 3735,
"initialValue": {
"arguments": [
{
"id": 3730,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "18472:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 3731,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "18477:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3733,
"indexExpression": {
"hexValue": "30",
"id": 3732,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18483:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18477:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 3728,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "18454:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 3729,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "18467:4:2",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 4838,
"src": "18454:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) external returns (bytes32)"
}
},
"id": 3734,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18454:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "18439:47:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3741,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3736,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3727,
"src": "18504:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 3739,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18520:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 3738,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18512:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 3737,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "18512:7:2",
"typeDescriptions": {}
}
},
"id": 3740,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18512:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "18504:18:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3753,
"nodeType": "IfStatement",
"src": "18500:106:2",
"trueBody": {
"id": 3752,
"nodeType": "Block",
"src": "18524:82:2",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 3743,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "18568:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 3746,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "18581:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3748,
"indexExpression": {
"hexValue": "30",
"id": 3747,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18587:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18581:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3745,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18573:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3744,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18573:7:2",
"typeDescriptions": {}
}
},
"id": 3749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18573:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3742,
"name": "WARNING_UninitedSlot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3570,
"src": "18547:20:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 3750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18547:44:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3751,
"nodeType": "EmitStatement",
"src": "18542:49:2"
}
]
}
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 3756,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 3754,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3690,
"src": "18623:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 3755,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3727,
"src": "18631:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "18623:12:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3763,
"nodeType": "IfStatement",
"src": "18619:180:2",
"trueBody": {
"id": 3762,
"nodeType": "Block",
"src": "18637:162:2",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 3758,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18663:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e",
"id": 3759,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18670:113:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3",
"typeString": "literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""
},
"value": "stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3",
"typeString": "literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""
}
],
"id": 3757,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "18655:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 3760,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18655:129:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3761,
"nodeType": "ExpressionStatement",
"src": "18655:129:2"
}
]
}
},
{
"eventCall": {
"arguments": [
{
"id": 3765,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "18827:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 3766,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "18832:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"arguments": [
{
"id": 3770,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "18865:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3771,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "18870:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3768,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "18848:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3769,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "18852:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "18848:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3772,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18848:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3767,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "18838:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18838:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 3776,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "18893:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3778,
"indexExpression": {
"hexValue": "30",
"id": 3777,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "18899:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18893:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3775,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18885:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3774,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18885:7:2",
"typeDescriptions": {}
}
},
"id": 3779,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18885:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 3764,
"name": "SlotFound",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3564,
"src": "18817:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$",
"typeString": "function (address,bytes4,bytes32,uint256)"
}
},
"id": 3780,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18817:86:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3781,
"nodeType": "EmitStatement",
"src": "18812:91:2"
},
{
"expression": {
"id": 3803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 3782,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "18917:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3793,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "18922:5:2",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 3534,
"src": "18917:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
}
},
"id": 3794,
"indexExpression": {
"id": 3784,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "18928:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18917:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 3795,
"indexExpression": {
"id": 3785,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "18933:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18917:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 3796,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 3789,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "18966:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3790,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "18971:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3787,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "18949:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3788,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "18953:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "18949:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3791,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18949:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3786,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "18939:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3792,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18939:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "18917:68:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"baseExpression": {
"id": 3799,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3713,
"src": "18996:5:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 3801,
"indexExpression": {
"hexValue": "30",
"id": 3800,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19002:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "18996:8:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 3798,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "18988:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 3797,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18988:7:2",
"typeDescriptions": {}
}
},
"id": 3802,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "18988:17:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "18917:88:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 3804,
"nodeType": "ExpressionStatement",
"src": "18917:88:2"
},
{
"expression": {
"id": 3821,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 3805,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "19019:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 3816,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "19024:5:2",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 3542,
"src": "19019:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
}
},
"id": 3817,
"indexExpression": {
"id": 3807,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "19030:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19019:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 3818,
"indexExpression": {
"id": 3808,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "19035:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "19019:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 3819,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 3812,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "19068:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 3813,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "19073:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 3810,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "19051:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3811,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "19055:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "19051:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 3814,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19051:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 3809,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "19041:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 3815,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "19041:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "19019:68:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 3820,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "19090:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "19019:75:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3822,
"nodeType": "ExpressionStatement",
"src": "19019:75:2"
}
]
}
},
{
"expression": {
"arguments": [
{
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 4007,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "20478:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4008,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "20483:5:2",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 3542,
"src": "20478:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
}
},
"id": 4010,
"indexExpression": {
"id": 4009,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "20489:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20478:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 4012,
"indexExpression": {
"id": 4011,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "20494:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20478:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 4020,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 4016,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "20527:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 4017,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "20532:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 4014,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "20510:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4015,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "20514:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "20510:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4018,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20510:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 4013,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "20500:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 4019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20500:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20478:68:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a20536c6f74287329206e6f7420666f756e642e",
"id": 4021,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "20548:49:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8",
"typeString": "literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""
},
"value": "stdStorage find(StdStorage): Slot(s) not found."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8",
"typeString": "literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""
}
],
"id": 4006,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "20470:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4022,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20470:128:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4023,
"nodeType": "ExpressionStatement",
"src": "20470:128:2"
},
{
"expression": {
"id": 4026,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "20609:19:2",
"subExpression": {
"expression": {
"id": 4024,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "20616:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4025,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "20621:7:2",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 3551,
"src": "20616:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4027,
"nodeType": "ExpressionStatement",
"src": "20609:19:2"
},
{
"expression": {
"id": 4030,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "20638:16:2",
"subExpression": {
"expression": {
"id": 4028,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "20645:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4029,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "20650:4:2",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 3547,
"src": "20645:9:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4031,
"nodeType": "ExpressionStatement",
"src": "20638:16:2"
},
{
"expression": {
"id": 4034,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "20664:17:2",
"subExpression": {
"expression": {
"id": 4032,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "20671:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4033,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "20676:5:2",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 3545,
"src": "20671:10:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4035,
"nodeType": "ExpressionStatement",
"src": "20664:17:2"
},
{
"expression": {
"id": 4038,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "20691:18:2",
"subExpression": {
"expression": {
"id": 4036,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "20698:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4037,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "20703:6:2",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 3549,
"src": "20698:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4039,
"nodeType": "ExpressionStatement",
"src": "20691:18:2"
},
{
"expression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 4040,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3615,
"src": "20727:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4041,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "20732:5:2",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 3534,
"src": "20727:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
}
},
"id": 4043,
"indexExpression": {
"id": 4042,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3621,
"src": "20738:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20727:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 4045,
"indexExpression": {
"id": 4044,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3626,
"src": "20743:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20727:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4053,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 4049,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3639,
"src": "20776:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 4050,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3631,
"src": "20781:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 4047,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "20759:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4048,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "20763:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "20759:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4051,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20759:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 4046,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "20749:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 4052,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "20749:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "20727:68:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 3619,
"id": 4054,
"nodeType": "Return",
"src": "20720:75:2"
}
]
},
"documentation": {
"id": 3612,
"nodeType": "StructuredDocumentation",
"src": "17080:129:2",
"text": "@notice find an arbitrary storage slot given a function sig, input data, address of the contract and a value to check against"
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "find",
"nameLocation": "17597:4:2",
"parameters": {
"id": 3616,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3615,
"mutability": "mutable",
"name": "self",
"nameLocation": "17630:4:2",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "17611:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 3614,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 3613,
"name": "StdStorage",
"nameLocations": [
"17611:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "17611:10:2"
},
"referencedDeclaration": 3554,
"src": "17611:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "17601:39:2"
},
"returnParameters": {
"id": 3619,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3618,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "17675:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 3617,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17675:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "17674:9:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4076,
"nodeType": "FunctionDefinition",
"src": "20808:156:2",
"body": {
"id": 4075,
"nodeType": "Block",
"src": "20904:60:2",
"statements": [
{
"expression": {
"id": 4071,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 4067,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4059,
"src": "20914:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4069,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "20919:7:2",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 3551,
"src": "20914:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 4070,
"name": "_target",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4061,
"src": "20929:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "20914:22:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 4072,
"nodeType": "ExpressionStatement",
"src": "20914:22:2"
},
{
"expression": {
"id": 4073,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4059,
"src": "20953:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 4066,
"id": 4074,
"nodeType": "Return",
"src": "20946:11:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "target",
"nameLocation": "20817:6:2",
"parameters": {
"id": 4062,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4059,
"mutability": "mutable",
"name": "self",
"nameLocation": "20843:4:2",
"nodeType": "VariableDeclaration",
"scope": 4076,
"src": "20824:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4058,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4057,
"name": "StdStorage",
"nameLocations": [
"20824:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "20824:10:2"
},
"referencedDeclaration": 3554,
"src": "20824:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4061,
"mutability": "mutable",
"name": "_target",
"nameLocation": "20857:7:2",
"nodeType": "VariableDeclaration",
"scope": 4076,
"src": "20849:15:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4060,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "20849:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "20823:42:2"
},
"returnParameters": {
"id": 4066,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4065,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4076,
"src": "20884:18:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4064,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4063,
"name": "StdStorage",
"nameLocations": [
"20884:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "20884:10:2"
},
"referencedDeclaration": 3554,
"src": "20884:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "20883:20:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4096,
"nodeType": "FunctionDefinition",
"src": "20970:143:2",
"body": {
"id": 4095,
"nodeType": "Block",
"src": "21059:54:2",
"statements": [
{
"expression": {
"id": 4091,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 4087,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4079,
"src": "21069:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4089,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "21074:4:2",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 3547,
"src": "21069:9:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 4090,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4081,
"src": "21081:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "21069:16:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 4092,
"nodeType": "ExpressionStatement",
"src": "21069:16:2"
},
{
"expression": {
"id": 4093,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4079,
"src": "21102:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 4086,
"id": 4094,
"nodeType": "Return",
"src": "21095:11:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "20979:3:2",
"parameters": {
"id": 4082,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4079,
"mutability": "mutable",
"name": "self",
"nameLocation": "21002:4:2",
"nodeType": "VariableDeclaration",
"scope": 4096,
"src": "20983:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4078,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4077,
"name": "StdStorage",
"nameLocations": [
"20983:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "20983:10:2"
},
"referencedDeclaration": 3554,
"src": "20983:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4081,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "21015:4:2",
"nodeType": "VariableDeclaration",
"scope": 4096,
"src": "21008:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 4080,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "21008:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "20982:38:2"
},
"returnParameters": {
"id": 4086,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4085,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4096,
"src": "21039:18:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4084,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4083,
"name": "StdStorage",
"nameLocations": [
"21039:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21039:10:2"
},
"referencedDeclaration": 3554,
"src": "21039:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "21038:20:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4118,
"nodeType": "FunctionDefinition",
"src": "21119:156:2",
"body": {
"id": 4117,
"nodeType": "Block",
"src": "21215:60:2",
"statements": [
{
"expression": {
"id": 4113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 4107,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "21225:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4109,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "21230:4:2",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 3547,
"src": "21225:9:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 4111,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4101,
"src": "21242:4:2",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4110,
"name": "sigs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3611,
"src": "21237:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (string memory) pure returns (bytes4)"
}
},
"id": 4112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21237:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "21225:22:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 4114,
"nodeType": "ExpressionStatement",
"src": "21225:22:2"
},
{
"expression": {
"id": 4115,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "21264:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 4106,
"id": 4116,
"nodeType": "Return",
"src": "21257:11:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "21128:3:2",
"parameters": {
"id": 4102,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4099,
"mutability": "mutable",
"name": "self",
"nameLocation": "21151:4:2",
"nodeType": "VariableDeclaration",
"scope": 4118,
"src": "21132:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4098,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4097,
"name": "StdStorage",
"nameLocations": [
"21132:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21132:10:2"
},
"referencedDeclaration": 3554,
"src": "21132:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4101,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "21171:4:2",
"nodeType": "VariableDeclaration",
"scope": 4118,
"src": "21157:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4100,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "21157:6:2",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "21131:45:2"
},
"returnParameters": {
"id": 4106,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4105,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4118,
"src": "21195:18:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4104,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4103,
"name": "StdStorage",
"nameLocations": [
"21195:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21195:10:2"
},
"referencedDeclaration": 3554,
"src": "21195:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "21194:20:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4149,
"nodeType": "FunctionDefinition",
"src": "21281:179:2",
"body": {
"id": 4148,
"nodeType": "Block",
"src": "21375:85:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 4140,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4123,
"src": "21425:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 4139,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "21417:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 4138,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "21417:7:2",
"typeDescriptions": {}
}
},
"id": 4141,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21417:12:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 4137,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "21409:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 4136,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21409:7:2",
"typeDescriptions": {}
}
},
"id": 4142,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21409:21:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4135,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "21401:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4134,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "21401:7:2",
"typeDescriptions": {}
}
},
"id": 4143,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21401:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 4129,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4121,
"src": "21385:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4132,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21390:5:2",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 3545,
"src": "21385:10:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 4133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21396:4:2",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "21385:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 4144,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21385:47:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4145,
"nodeType": "ExpressionStatement",
"src": "21385:47:2"
},
{
"expression": {
"id": 4146,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4121,
"src": "21449:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 4128,
"id": 4147,
"nodeType": "Return",
"src": "21442:11:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "21290:8:2",
"parameters": {
"id": 4124,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4121,
"mutability": "mutable",
"name": "self",
"nameLocation": "21318:4:2",
"nodeType": "VariableDeclaration",
"scope": 4149,
"src": "21299:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4120,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4119,
"name": "StdStorage",
"nameLocations": [
"21299:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21299:10:2"
},
"referencedDeclaration": 3554,
"src": "21299:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4123,
"mutability": "mutable",
"name": "who",
"nameLocation": "21332:3:2",
"nodeType": "VariableDeclaration",
"scope": 4149,
"src": "21324:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4122,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "21324:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "21298:38:2"
},
"returnParameters": {
"id": 4128,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4127,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4149,
"src": "21355:18:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4126,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4125,
"name": "StdStorage",
"nameLocations": [
"21355:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21355:10:2"
},
"referencedDeclaration": 3554,
"src": "21355:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "21354:20:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4174,
"nodeType": "FunctionDefinition",
"src": "21466:161:2",
"body": {
"id": 4173,
"nodeType": "Block",
"src": "21560:67:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 4167,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4154,
"src": "21594:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4166,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "21586:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4165,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "21586:7:2",
"typeDescriptions": {}
}
},
"id": 4168,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21586:12:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 4160,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4152,
"src": "21570:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4163,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21575:5:2",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 3545,
"src": "21570:10:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 4164,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21581:4:2",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "21570:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 4169,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21570:29:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4170,
"nodeType": "ExpressionStatement",
"src": "21570:29:2"
},
{
"expression": {
"id": 4171,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4152,
"src": "21616:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 4159,
"id": 4172,
"nodeType": "Return",
"src": "21609:11:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "21475:8:2",
"parameters": {
"id": 4155,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4152,
"mutability": "mutable",
"name": "self",
"nameLocation": "21503:4:2",
"nodeType": "VariableDeclaration",
"scope": 4174,
"src": "21484:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4151,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4150,
"name": "StdStorage",
"nameLocations": [
"21484:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21484:10:2"
},
"referencedDeclaration": 3554,
"src": "21484:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4154,
"mutability": "mutable",
"name": "amt",
"nameLocation": "21517:3:2",
"nodeType": "VariableDeclaration",
"scope": 4174,
"src": "21509:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4153,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21509:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "21483:38:2"
},
"returnParameters": {
"id": 4159,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4158,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4174,
"src": "21540:18:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4157,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4156,
"name": "StdStorage",
"nameLocations": [
"21540:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21540:10:2"
},
"referencedDeclaration": 3554,
"src": "21540:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "21539:20:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4196,
"nodeType": "FunctionDefinition",
"src": "21632:152:2",
"body": {
"id": 4195,
"nodeType": "Block",
"src": "21726:58:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 4190,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4179,
"src": "21752:3:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 4185,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4177,
"src": "21736:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4188,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21741:5:2",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 3545,
"src": "21736:10:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 4189,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "21747:4:2",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "21736:15:2",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 4191,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "21736:20:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4192,
"nodeType": "ExpressionStatement",
"src": "21736:20:2"
},
{
"expression": {
"id": 4193,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4177,
"src": "21773:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 4184,
"id": 4194,
"nodeType": "Return",
"src": "21766:11:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "21641:8:2",
"parameters": {
"id": 4180,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4177,
"mutability": "mutable",
"name": "self",
"nameLocation": "21669:4:2",
"nodeType": "VariableDeclaration",
"scope": 4196,
"src": "21650:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4176,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4175,
"name": "StdStorage",
"nameLocations": [
"21650:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21650:10:2"
},
"referencedDeclaration": 3554,
"src": "21650:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4179,
"mutability": "mutable",
"name": "key",
"nameLocation": "21683:3:2",
"nodeType": "VariableDeclaration",
"scope": 4196,
"src": "21675:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4178,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "21675:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "21649:38:2"
},
"returnParameters": {
"id": 4184,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4183,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4196,
"src": "21706:18:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4182,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4181,
"name": "StdStorage",
"nameLocations": [
"21706:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21706:10:2"
},
"referencedDeclaration": 3554,
"src": "21706:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "21705:20:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4216,
"nodeType": "FunctionDefinition",
"src": "21790:152:2",
"body": {
"id": 4215,
"nodeType": "Block",
"src": "21884:58:2",
"statements": [
{
"expression": {
"id": 4211,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 4207,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4199,
"src": "21894:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4209,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "21899:6:2",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 3549,
"src": "21894:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 4210,
"name": "_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4201,
"src": "21908:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "21894:20:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4212,
"nodeType": "ExpressionStatement",
"src": "21894:20:2"
},
{
"expression": {
"id": 4213,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4199,
"src": "21931:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 4206,
"id": 4214,
"nodeType": "Return",
"src": "21924:11:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "depth",
"nameLocation": "21799:5:2",
"parameters": {
"id": 4202,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4199,
"mutability": "mutable",
"name": "self",
"nameLocation": "21824:4:2",
"nodeType": "VariableDeclaration",
"scope": 4216,
"src": "21805:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4198,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4197,
"name": "StdStorage",
"nameLocations": [
"21805:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21805:10:2"
},
"referencedDeclaration": 3554,
"src": "21805:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4201,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "21838:6:2",
"nodeType": "VariableDeclaration",
"scope": 4216,
"src": "21830:14:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4200,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "21830:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "21804:41:2"
},
"returnParameters": {
"id": 4206,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4205,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4216,
"src": "21864:18:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4204,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4203,
"name": "StdStorage",
"nameLocations": [
"21864:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21864:10:2"
},
"referencedDeclaration": 3554,
"src": "21864:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "21863:20:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4239,
"nodeType": "FunctionDefinition",
"src": "21948:138:2",
"body": {
"id": 4238,
"nodeType": "Block",
"src": "22018:68:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 4225,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4219,
"src": "22042:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 4232,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4221,
"src": "22072:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 4231,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "22064:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 4230,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "22064:7:2",
"typeDescriptions": {}
}
},
"id": 4233,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22064:12:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 4229,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "22056:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 4228,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "22056:7:2",
"typeDescriptions": {}
}
},
"id": 4234,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22056:21:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4227,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "22048:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4226,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22048:7:2",
"typeDescriptions": {}
}
},
"id": 4235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22048:30:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4224,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
4239,
4256,
4274,
4419
],
"referencedDeclaration": 4419,
"src": "22028:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 4236,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22028:51:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4237,
"nodeType": "ExpressionStatement",
"src": "22028:51:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "21957:13:2",
"parameters": {
"id": 4222,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4219,
"mutability": "mutable",
"name": "self",
"nameLocation": "21990:4:2",
"nodeType": "VariableDeclaration",
"scope": 4239,
"src": "21971:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4218,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4217,
"name": "StdStorage",
"nameLocations": [
"21971:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "21971:10:2"
},
"referencedDeclaration": 3554,
"src": "21971:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4221,
"mutability": "mutable",
"name": "who",
"nameLocation": "22004:3:2",
"nodeType": "VariableDeclaration",
"scope": 4239,
"src": "21996:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4220,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "21996:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "21970:38:2"
},
"returnParameters": {
"id": 4223,
"nodeType": "ParameterList",
"parameters": [],
"src": "22018:0:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4256,
"nodeType": "FunctionDefinition",
"src": "22092:120:2",
"body": {
"id": 4255,
"nodeType": "Block",
"src": "22162:50:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 4248,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4242,
"src": "22186:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"arguments": [
{
"id": 4251,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4244,
"src": "22200:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4250,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "22192:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4249,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22192:7:2",
"typeDescriptions": {}
}
},
"id": 4252,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22192:12:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4247,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
4239,
4256,
4274,
4419
],
"referencedDeclaration": 4419,
"src": "22172:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 4253,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22172:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4254,
"nodeType": "ExpressionStatement",
"src": "22172:33:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "22101:13:2",
"parameters": {
"id": 4245,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4242,
"mutability": "mutable",
"name": "self",
"nameLocation": "22134:4:2",
"nodeType": "VariableDeclaration",
"scope": 4256,
"src": "22115:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4241,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4240,
"name": "StdStorage",
"nameLocations": [
"22115:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "22115:10:2"
},
"referencedDeclaration": 3554,
"src": "22115:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4244,
"mutability": "mutable",
"name": "amt",
"nameLocation": "22148:3:2",
"nodeType": "VariableDeclaration",
"scope": 4256,
"src": "22140:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4243,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "22140:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "22114:38:2"
},
"returnParameters": {
"id": 4246,
"nodeType": "ParameterList",
"parameters": [],
"src": "22162:0:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4274,
"nodeType": "FunctionDefinition",
"src": "22218:222:2",
"body": {
"id": 4273,
"nodeType": "Block",
"src": "22287:153:2",
"statements": [
{
"assignments": [
4265
],
"declarations": [
{
"constant": false,
"id": 4265,
"mutability": "mutable",
"name": "t",
"nameLocation": "22305:1:2",
"nodeType": "VariableDeclaration",
"scope": 4273,
"src": "22297:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4264,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22297:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 4266,
"nodeType": "VariableDeclarationStatement",
"src": "22297:9:2"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "22368:34:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "22382:10:2",
"value": {
"name": "write",
"nodeType": "YulIdentifier",
"src": "22387:5:2"
},
"variableNames": [
{
"name": "t",
"nodeType": "YulIdentifier",
"src": "22382:1:2"
}
]
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 4265,
"isOffset": false,
"isSlot": false,
"src": "22382:1:2",
"valueSize": 1
},
{
"declaration": 4261,
"isOffset": false,
"isSlot": false,
"src": "22387:5:2",
"valueSize": 1
}
],
"id": 4267,
"nodeType": "InlineAssembly",
"src": "22359:43:2"
},
{
"expression": {
"arguments": [
{
"id": 4269,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4259,
"src": "22425:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 4270,
"name": "t",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4265,
"src": "22431:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4268,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
4239,
4256,
4274,
4419
],
"referencedDeclaration": 4419,
"src": "22411:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 4271,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22411:22:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4272,
"nodeType": "ExpressionStatement",
"src": "22411:22:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "22227:13:2",
"parameters": {
"id": 4262,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4259,
"mutability": "mutable",
"name": "self",
"nameLocation": "22260:4:2",
"nodeType": "VariableDeclaration",
"scope": 4274,
"src": "22241:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4258,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4257,
"name": "StdStorage",
"nameLocations": [
"22241:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "22241:10:2"
},
"referencedDeclaration": 3554,
"src": "22241:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4261,
"mutability": "mutable",
"name": "write",
"nameLocation": "22271:5:2",
"nodeType": "VariableDeclaration",
"scope": 4274,
"src": "22266:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4260,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "22266:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "22240:37:2"
},
"returnParameters": {
"id": 4263,
"nodeType": "ParameterList",
"parameters": [],
"src": "22287:0:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4419,
"nodeType": "FunctionDefinition",
"src": "22446:1089:2",
"body": {
"id": 4418,
"nodeType": "Block",
"src": "22538:997:2",
"statements": [
{
"assignments": [
4283
],
"declarations": [
{
"constant": false,
"id": 4283,
"mutability": "mutable",
"name": "who",
"nameLocation": "22556:3:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "22548:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4282,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22548:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 4286,
"initialValue": {
"expression": {
"id": 4284,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "22562:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4285,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22567:7:2",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 3551,
"src": "22562:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "22548:26:2"
},
{
"assignments": [
4288
],
"declarations": [
{
"constant": false,
"id": 4288,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "22591:4:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "22584:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 4287,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "22584:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"id": 4291,
"initialValue": {
"expression": {
"id": 4289,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "22598:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4290,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22603:4:2",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 3547,
"src": "22598:9:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "22584:23:2"
},
{
"assignments": [
4293
],
"declarations": [
{
"constant": false,
"id": 4293,
"mutability": "mutable",
"name": "field_depth",
"nameLocation": "22625:11:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "22617:19:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4292,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "22617:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4296,
"initialValue": {
"expression": {
"id": 4294,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "22639:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4295,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22644:6:2",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 3549,
"src": "22639:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "22617:33:2"
},
{
"assignments": [
4301
],
"declarations": [
{
"constant": false,
"id": 4301,
"mutability": "mutable",
"name": "ins",
"nameLocation": "22677:3:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "22660:20:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 4299,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22660:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4300,
"nodeType": "ArrayTypeName",
"src": "22660:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"id": 4304,
"initialValue": {
"expression": {
"id": 4302,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "22683:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4303,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22688:5:2",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 3545,
"src": "22683:10:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "22660:33:2"
},
{
"assignments": [
4306
],
"declarations": [
{
"constant": false,
"id": 4306,
"mutability": "mutable",
"name": "cald",
"nameLocation": "22717:4:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "22704:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4305,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "22704:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 4314,
"initialValue": {
"arguments": [
{
"id": 4309,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4288,
"src": "22741:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"id": 4311,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4301,
"src": "22755:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
],
"id": 4310,
"name": "flatten",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4655,
"src": "22747:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (bytes32[] memory) pure returns (bytes memory)"
}
},
"id": 4312,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22747:12:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 4307,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "22724:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4308,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "22728:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "22724:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4313,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22724:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "22704:56:2"
},
{
"condition": {
"id": 4329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "22774:69:2",
"subExpression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 4315,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "22775:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4316,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22780:5:2",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 3542,
"src": "22775:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
}
},
"id": 4318,
"indexExpression": {
"id": 4317,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4283,
"src": "22786:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22775:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 4320,
"indexExpression": {
"id": 4319,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4288,
"src": "22791:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22775:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 4328,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 4324,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4301,
"src": "22824:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 4325,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4293,
"src": "22829:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 4322,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "22807:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4323,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "22811:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "22807:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4326,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22807:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 4321,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "22797:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 4327,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22797:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22775:68:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4335,
"nodeType": "IfStatement",
"src": "22770:110:2",
"trueBody": {
"id": 4334,
"nodeType": "Block",
"src": "22845:35:2",
"statements": [
{
"expression": {
"arguments": [
{
"id": 4331,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "22864:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 4330,
"name": "find",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4056,
"src": "22859:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 4332,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22859:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4333,
"nodeType": "ExpressionStatement",
"src": "22859:10:2"
}
]
}
},
{
"assignments": [
4337
],
"declarations": [
{
"constant": false,
"id": 4337,
"mutability": "mutable",
"name": "slot",
"nameLocation": "22897:4:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "22889:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4336,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22889:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 4355,
"initialValue": {
"arguments": [
{
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 4340,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "22912:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4341,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "22917:5:2",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 3534,
"src": "22912:10:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
}
},
"id": 4343,
"indexExpression": {
"id": 4342,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4283,
"src": "22923:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22912:15:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 4345,
"indexExpression": {
"id": 4344,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4288,
"src": "22928:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22912:21:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4353,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 4349,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4301,
"src": "22961:3:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 4350,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4293,
"src": "22966:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 4347,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "22944:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4348,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "22948:12:2",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "22944:16:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4351,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22944:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 4346,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "22934:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 4352,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22934:45:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "22912:68:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4339,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "22904:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4338,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22904:7:2",
"typeDescriptions": {}
}
},
"id": 4354,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "22904:77:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "22889:92:2"
},
{
"assignments": [
4357
],
"declarations": [
{
"constant": false,
"id": 4357,
"mutability": "mutable",
"name": "fdat",
"nameLocation": "23000:4:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "22992:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4356,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22992:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 4358,
"nodeType": "VariableDeclarationStatement",
"src": "22992:12:2"
},
{
"id": 4375,
"nodeType": "Block",
"src": "23014:126:2",
"statements": [
{
"assignments": [
null,
4360
],
"declarations": [
null,
{
"constant": false,
"id": 4360,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "23044:4:2",
"nodeType": "VariableDeclaration",
"scope": 4375,
"src": "23031:17:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4359,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "23031:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 4365,
"initialValue": {
"arguments": [
{
"id": 4363,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4306,
"src": "23067:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 4361,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4283,
"src": "23052:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 4362,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23056:10:2",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "23052:14:2",
"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": 4364,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23052:20:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "23028:44:2"
},
{
"expression": {
"id": 4373,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 4366,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4357,
"src": "23086:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 4368,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4360,
"src": "23108:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4371,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 4369,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "23114:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 4370,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4293,
"src": "23117:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "23114:14:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4367,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4614,
"src": "23093:14:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 4372,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23093:36:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "23086:43:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4374,
"nodeType": "ExpressionStatement",
"src": "23086:43:2"
}
]
},
{
"assignments": [
4377
],
"declarations": [
{
"constant": false,
"id": 4377,
"mutability": "mutable",
"name": "curr",
"nameLocation": "23157:4:2",
"nodeType": "VariableDeclaration",
"scope": 4418,
"src": "23149:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4376,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "23149:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 4383,
"initialValue": {
"arguments": [
{
"id": 4380,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4283,
"src": "23182:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 4381,
"name": "slot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4337,
"src": "23187:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 4378,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "23164:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 4379,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23177:4:2",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 4838,
"src": "23164:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) external returns (bytes32)"
}
},
"id": 4382,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23164:28:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "23149:43:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4386,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4384,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4357,
"src": "23207:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 4385,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4377,
"src": "23215:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "23207:12:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4393,
"nodeType": "IfStatement",
"src": "23203:172:2",
"trueBody": {
"id": 4392,
"nodeType": "Block",
"src": "23221:154:2",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 4388,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "23243:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e",
"id": 4389,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "23250:113:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3",
"typeString": "literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""
},
"value": "stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3",
"typeString": "literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""
}
],
"id": 4387,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "23235:7:2",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4390,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23235:129:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4391,
"nodeType": "ExpressionStatement",
"src": "23235:129:2"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 4397,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4283,
"src": "23403:3:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 4398,
"name": "slot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4337,
"src": "23408:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 4399,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4279,
"src": "23414:3:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 4394,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "23384:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 4396,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23397:5:2",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 4847,
"src": "23384:18:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 4400,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23384:34:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4401,
"nodeType": "ExpressionStatement",
"src": "23384:34:2"
},
{
"expression": {
"id": 4404,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "23428:19:2",
"subExpression": {
"expression": {
"id": 4402,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "23435:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4403,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "23440:7:2",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 3551,
"src": "23435:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4405,
"nodeType": "ExpressionStatement",
"src": "23428:19:2"
},
{
"expression": {
"id": 4408,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "23457:16:2",
"subExpression": {
"expression": {
"id": 4406,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "23464:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4407,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "23469:4:2",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 3547,
"src": "23464:9:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4409,
"nodeType": "ExpressionStatement",
"src": "23457:16:2"
},
{
"expression": {
"id": 4412,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "23483:17:2",
"subExpression": {
"expression": {
"id": 4410,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "23490:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4411,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "23495:5:2",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 3545,
"src": "23490:10:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4413,
"nodeType": "ExpressionStatement",
"src": "23483:17:2"
},
{
"expression": {
"id": 4416,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "23510:18:2",
"subExpression": {
"expression": {
"id": 4414,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4277,
"src": "23517:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4415,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "23522:6:2",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 3549,
"src": "23517:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4417,
"nodeType": "ExpressionStatement",
"src": "23510:18:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "22455:13:2",
"parameters": {
"id": 4280,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4277,
"mutability": "mutable",
"name": "self",
"nameLocation": "22497:4:2",
"nodeType": "VariableDeclaration",
"scope": 4419,
"src": "22478:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4276,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4275,
"name": "StdStorage",
"nameLocations": [
"22478:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "22478:10:2"
},
"referencedDeclaration": 3554,
"src": "22478:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4279,
"mutability": "mutable",
"name": "set",
"nameLocation": "22519:3:2",
"nodeType": "VariableDeclaration",
"scope": 4419,
"src": "22511:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4278,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "22511:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "22468:60:2"
},
"returnParameters": {
"id": 4281,
"nodeType": "ParameterList",
"parameters": [],
"src": "22538:0:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4451,
"nodeType": "FunctionDefinition",
"src": "23541:204:2",
"body": {
"id": 4450,
"nodeType": "Block",
"src": "23611:134:2",
"statements": [
{
"assignments": [
4428
],
"declarations": [
{
"constant": false,
"id": 4428,
"mutability": "mutable",
"name": "t",
"nameLocation": "23629:1:2",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "23621:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4427,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "23621:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 4431,
"initialValue": {
"expression": {
"id": 4429,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4422,
"src": "23633:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 4430,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23638:7:2",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 3551,
"src": "23633:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "23621:24:2"
},
{
"assignments": [
4433
],
"declarations": [
{
"constant": false,
"id": 4433,
"mutability": "mutable",
"name": "s",
"nameLocation": "23663:1:2",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "23655:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4432,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23655:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4437,
"initialValue": {
"arguments": [
{
"id": 4435,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4422,
"src": "23672:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 4434,
"name": "find",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4056,
"src": "23667:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 4436,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23667:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "23655:22:2"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 4442,
"name": "t",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4428,
"src": "23723:1:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 4445,
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4433,
"src": "23734:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4444,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "23726:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4443,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "23726:7:2",
"typeDescriptions": {}
}
},
"id": 4446,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23726:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 4440,
"name": "vm_std_store",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3593,
"src": "23705:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$5434",
"typeString": "contract Vm"
}
},
"id": 4441,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "23718:4:2",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 4838,
"src": "23705:17:2",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) external returns (bytes32)"
}
},
"id": 4447,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23705:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 4438,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "23694:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4439,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "23698:6:2",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "23694:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4448,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23694:44:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 4426,
"id": 4449,
"nodeType": "Return",
"src": "23687:51:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read",
"nameLocation": "23550:4:2",
"parameters": {
"id": 4423,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4422,
"mutability": "mutable",
"name": "self",
"nameLocation": "23574:4:2",
"nodeType": "VariableDeclaration",
"scope": 4451,
"src": "23555:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4421,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4420,
"name": "StdStorage",
"nameLocations": [
"23555:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "23555:10:2"
},
"referencedDeclaration": 3554,
"src": "23555:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "23554:25:2"
},
"returnParameters": {
"id": 4426,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4425,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4451,
"src": "23597:12:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4424,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "23597:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "23596:14:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"id": 4470,
"nodeType": "FunctionDefinition",
"src": "23751:131:2",
"body": {
"id": 4469,
"nodeType": "Block",
"src": "23825:57:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 4462,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4454,
"src": "23858:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 4461,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4451,
"src": "23853:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 4463,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23853:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 4465,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "23866:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4464,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "23866:7:2",
"typeDescriptions": {}
}
}
],
"id": 4466,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "23865:9:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
}
],
"expression": {
"id": 4459,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "23842:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4460,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "23846:6:2",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "23842:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 4467,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23842:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 4458,
"id": 4468,
"nodeType": "Return",
"src": "23835:40:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bytes32",
"nameLocation": "23760:12:2",
"parameters": {
"id": 4455,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4454,
"mutability": "mutable",
"name": "self",
"nameLocation": "23792:4:2",
"nodeType": "VariableDeclaration",
"scope": 4470,
"src": "23773:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4453,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4452,
"name": "StdStorage",
"nameLocations": [
"23773:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "23773:10:2"
},
"referencedDeclaration": 3554,
"src": "23773:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "23772:25:2"
},
"returnParameters": {
"id": 4458,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4457,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4470,
"src": "23816:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4456,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "23816:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "23815:9:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4501,
"nodeType": "FunctionDefinition",
"src": "23889:279:2",
"body": {
"id": 4500,
"nodeType": "Block",
"src": "23957:211:2",
"statements": [
{
"assignments": [
4479
],
"declarations": [
{
"constant": false,
"id": 4479,
"mutability": "mutable",
"name": "v",
"nameLocation": "23974:1:2",
"nodeType": "VariableDeclaration",
"scope": 4500,
"src": "23967:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4478,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "23967:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"id": 4483,
"initialValue": {
"arguments": [
{
"id": 4481,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4473,
"src": "23987:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 4480,
"name": "read_int",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4558,
"src": "23978:8:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$returns$_t_int256_$",
"typeString": "function (struct StdStorage storage pointer) returns (int256)"
}
},
"id": 4482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "23978:14:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "23967:25:2"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 4486,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4484,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4479,
"src": "24006:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 4485,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24011:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "24006:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4489,
"nodeType": "IfStatement",
"src": "24002:24:2",
"trueBody": {
"expression": {
"hexValue": "66616c7365",
"id": 4487,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24021:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4477,
"id": 4488,
"nodeType": "Return",
"src": "24014:12:2"
}
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 4492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4490,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4479,
"src": "24040:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "31",
"id": 4491,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24045:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "24040:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4495,
"nodeType": "IfStatement",
"src": "24036:23:2",
"trueBody": {
"expression": {
"hexValue": "74727565",
"id": 4493,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24055:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4477,
"id": 4494,
"nodeType": "Return",
"src": "24048:11:2"
}
},
{
"expression": {
"arguments": [
{
"hexValue": "73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f74206465636f64652e204d616b65207375726520796f75206172652072656164696e67206120626f6f6c2e",
"id": 4497,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24076:84:2",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5",
"typeString": "literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""
},
"value": "stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5",
"typeString": "literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""
}
],
"id": 4496,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
"src": "24069:6:2",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 4498,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24069:92:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4499,
"nodeType": "ExpressionStatement",
"src": "24069:92:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bool",
"nameLocation": "23898:9:2",
"parameters": {
"id": 4474,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4473,
"mutability": "mutable",
"name": "self",
"nameLocation": "23927:4:2",
"nodeType": "VariableDeclaration",
"scope": 4501,
"src": "23908:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4472,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4471,
"name": "StdStorage",
"nameLocations": [
"23908:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "23908:10:2"
},
"referencedDeclaration": 3554,
"src": "23908:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "23907:25:2"
},
"returnParameters": {
"id": 4477,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4476,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4501,
"src": "23951:4:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4475,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "23951:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "23950:6:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4520,
"nodeType": "FunctionDefinition",
"src": "24174:131:2",
"body": {
"id": 4519,
"nodeType": "Block",
"src": "24248:57:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 4512,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4504,
"src": "24281:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 4511,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4451,
"src": "24276:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 4513,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24276:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 4515,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "24289:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 4514,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24289:7:2",
"typeDescriptions": {}
}
}
],
"id": 4516,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "24288:9:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
}
],
"expression": {
"id": 4509,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "24265:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4510,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "24269:6:2",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "24265:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 4517,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24265:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 4508,
"id": 4518,
"nodeType": "Return",
"src": "24258:40:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_address",
"nameLocation": "24183:12:2",
"parameters": {
"id": 4505,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4504,
"mutability": "mutable",
"name": "self",
"nameLocation": "24215:4:2",
"nodeType": "VariableDeclaration",
"scope": 4520,
"src": "24196:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4503,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4502,
"name": "StdStorage",
"nameLocations": [
"24196:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "24196:10:2"
},
"referencedDeclaration": 3554,
"src": "24196:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "24195:25:2"
},
"returnParameters": {
"id": 4508,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4507,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4520,
"src": "24239:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4506,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24239:7:2",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "24238:9:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4539,
"nodeType": "FunctionDefinition",
"src": "24311:128:2",
"body": {
"id": 4538,
"nodeType": "Block",
"src": "24382:57:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 4531,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4523,
"src": "24415:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 4530,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4451,
"src": "24410:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 4532,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24410:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 4534,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "24423:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 4533,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24423:7:2",
"typeDescriptions": {}
}
}
],
"id": 4535,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "24422:9:2",
"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": 4528,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "24399:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4529,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "24403:6:2",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "24399:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 4536,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24399:33:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4527,
"id": 4537,
"nodeType": "Return",
"src": "24392:40:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_uint",
"nameLocation": "24320:9:2",
"parameters": {
"id": 4524,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4523,
"mutability": "mutable",
"name": "self",
"nameLocation": "24349:4:2",
"nodeType": "VariableDeclaration",
"scope": 4539,
"src": "24330:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4522,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4521,
"name": "StdStorage",
"nameLocations": [
"24330:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "24330:10:2"
},
"referencedDeclaration": 3554,
"src": "24330:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "24329:25:2"
},
"returnParameters": {
"id": 4527,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4526,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4539,
"src": "24373:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4525,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24373:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "24372:9:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4558,
"nodeType": "FunctionDefinition",
"src": "24445:125:2",
"body": {
"id": 4557,
"nodeType": "Block",
"src": "24514:56:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 4550,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4542,
"src": "24547:4:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 4549,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4451,
"src": "24542:4:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$3554_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 4551,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24542:10:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 4553,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "24555:6:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_int256_$",
"typeString": "type(int256)"
},
"typeName": {
"id": 4552,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "24555:6:2",
"typeDescriptions": {}
}
}
],
"id": 4554,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "24554:8:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_int256_$",
"typeString": "type(int256)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_type$_t_int256_$",
"typeString": "type(int256)"
}
],
"expression": {
"id": 4547,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "24531:3:2",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4548,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "24535:6:2",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "24531:10:2",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 4555,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24531:32:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"functionReturnParameters": 4546,
"id": 4556,
"nodeType": "Return",
"src": "24524:39:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_int",
"nameLocation": "24454:8:2",
"parameters": {
"id": 4543,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4542,
"mutability": "mutable",
"name": "self",
"nameLocation": "24482:4:2",
"nodeType": "VariableDeclaration",
"scope": 4558,
"src": "24463:23:2",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 4541,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 4540,
"name": "StdStorage",
"nameLocations": [
"24463:10:2"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3554,
"src": "24463:10:2"
},
"referencedDeclaration": 3554,
"src": "24463:10:2",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$3554_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "24462:25:2"
},
"returnParameters": {
"id": 4546,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4545,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4558,
"src": "24506:6:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4544,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "24506:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "24505:8:2"
},
"scope": 4656,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 4614,
"nodeType": "FunctionDefinition",
"src": "24576:297:2",
"body": {
"id": 4613,
"nodeType": "Block",
"src": "24659:214:2",
"statements": [
{
"assignments": [
4568
],
"declarations": [
{
"constant": false,
"id": 4568,
"mutability": "mutable",
"name": "out",
"nameLocation": "24677:3:2",
"nodeType": "VariableDeclaration",
"scope": 4613,
"src": "24669:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4567,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "24669:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 4569,
"nodeType": "VariableDeclarationStatement",
"src": "24669:11:2"
},
{
"assignments": [
4571
],
"declarations": [
{
"constant": false,
"id": 4571,
"mutability": "mutable",
"name": "max",
"nameLocation": "24699:3:2",
"nodeType": "VariableDeclaration",
"scope": 4613,
"src": "24691:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4570,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24691:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4580,
"initialValue": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4575,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 4572,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4560,
"src": "24705:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 4573,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24707:6:2",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "24705:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "3332",
"id": 4574,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24716:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "24705:13:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"expression": {
"id": 4577,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4560,
"src": "24726:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 4578,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "24728:6:2",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "24726:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4579,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "24705:29:2",
"trueExpression": {
"hexValue": "3332",
"id": 4576,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24721:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "24691:43:2"
},
{
"body": {
"id": 4609,
"nodeType": "Block",
"src": "24775:72:2",
"statements": [
{
"expression": {
"id": 4607,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 4591,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4568,
"src": "24789:3:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "|=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 4600,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 4594,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4560,
"src": "24804:1:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 4598,
"indexExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4597,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4595,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4562,
"src": "24806:6:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 4596,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4582,
"src": "24815:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "24806:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "24804:13:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "&",
"rightExpression": {
"hexValue": "30784646",
"id": 4599,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24820:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xFF"
},
"src": "24804:20:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"id": 4593,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "24796:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 4592,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "24796:7:2",
"typeDescriptions": {}
}
},
"id": 4601,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24796:29:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4604,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4602,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4582,
"src": "24830:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "38",
"id": 4603,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24834:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "24830:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 4605,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "24829:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "24796:40:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "24789:47:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4608,
"nodeType": "ExpressionStatement",
"src": "24789:47:2"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4587,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4585,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4582,
"src": "24761:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 4586,
"name": "max",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4571,
"src": "24765:3:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "24761:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4610,
"initializationExpression": {
"assignments": [
4582
],
"declarations": [
{
"constant": false,
"id": 4582,
"mutability": "mutable",
"name": "i",
"nameLocation": "24754:1:2",
"nodeType": "VariableDeclaration",
"scope": 4610,
"src": "24749:6:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4581,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "24749:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4584,
"initialValue": {
"hexValue": "30",
"id": 4583,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "24758:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "24749:10:2"
},
"loopExpression": {
"expression": {
"id": 4589,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "24770:3:2",
"subExpression": {
"id": 4588,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4582,
"src": "24770:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4590,
"nodeType": "ExpressionStatement",
"src": "24770:3:2"
},
"nodeType": "ForStatement",
"src": "24744:103:2"
},
{
"expression": {
"id": 4611,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4568,
"src": "24863:3:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 4566,
"id": 4612,
"nodeType": "Return",
"src": "24856:10:2"
}
]
},
"functionSelector": "53584939",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "bytesToBytes32",
"nameLocation": "24585:14:2",
"parameters": {
"id": 4563,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4560,
"mutability": "mutable",
"name": "b",
"nameLocation": "24613:1:2",
"nodeType": "VariableDeclaration",
"scope": 4614,
"src": "24600:14:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4559,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "24600:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4562,
"mutability": "mutable",
"name": "offset",
"nameLocation": "24621:6:2",
"nodeType": "VariableDeclaration",
"scope": 4614,
"src": "24616:11:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4561,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "24616:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "24599:29:2"
},
"returnParameters": {
"id": 4566,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4565,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4614,
"src": "24650:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4564,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "24650:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "24649:9:2"
},
"scope": 4656,
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
},
{
"id": 4655,
"nodeType": "FunctionDefinition",
"src": "24879:397:2",
"body": {
"id": 4654,
"nodeType": "Block",
"src": "24956:320:2",
"statements": [
{
"assignments": [
4623
],
"declarations": [
{
"constant": false,
"id": 4623,
"mutability": "mutable",
"name": "result",
"nameLocation": "24979:6:2",
"nodeType": "VariableDeclaration",
"scope": 4654,
"src": "24966:19:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4622,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "24966:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 4631,
"initialValue": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 4626,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4617,
"src": "24998:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 4627,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "25000:6:2",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "24998:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "3332",
"id": 4628,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "25009:2:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "24998:13:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4625,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "24988:9:2",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 4624,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "24992:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 4630,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "24988:24:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "24966:46:2"
},
{
"body": {
"id": 4650,
"nodeType": "Block",
"src": "25061:185:2",
"statements": [
{
"assignments": [
4644
],
"declarations": [
{
"constant": false,
"id": 4644,
"mutability": "mutable",
"name": "k",
"nameLocation": "25083:1:2",
"nodeType": "VariableDeclaration",
"scope": 4650,
"src": "25075:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4643,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "25075:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 4648,
"initialValue": {
"baseExpression": {
"id": 4645,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4617,
"src": "25087:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 4647,
"indexExpression": {
"id": 4646,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4633,
"src": "25089:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "25087:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "25075:16:2"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "25161:75:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "25190:6:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25202:2:2",
"type": "",
"value": "32"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "25210:2:2",
"type": "",
"value": "32"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "25214:1:2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "25206:3:2"
},
"nodeType": "YulFunctionCall",
"src": "25206:10:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "25198:3:2"
},
"nodeType": "YulFunctionCall",
"src": "25198:19:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "25186:3:2"
},
"nodeType": "YulFunctionCall",
"src": "25186:32:2"
},
{
"name": "k",
"nodeType": "YulIdentifier",
"src": "25220:1:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "25179:6:2"
},
"nodeType": "YulFunctionCall",
"src": "25179:43:2"
},
"nodeType": "YulExpressionStatement",
"src": "25179:43:2"
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 4633,
"isOffset": false,
"isSlot": false,
"src": "25214:1:2",
"valueSize": 1
},
{
"declaration": 4644,
"isOffset": false,
"isSlot": false,
"src": "25220:1:2",
"valueSize": 1
},
{
"declaration": 4623,
"isOffset": false,
"isSlot": false,
"src": "25190:6:2",
"valueSize": 1
}
],
"id": 4649,
"nodeType": "InlineAssembly",
"src": "25152:84:2"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4639,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4636,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4633,
"src": "25042:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 4637,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4617,
"src": "25046:1:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 4638,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "25048:6:2",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "25046:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "25042:12:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4651,
"initializationExpression": {
"assignments": [
4633
],
"declarations": [
{
"constant": false,
"id": 4633,
"mutability": "mutable",
"name": "i",
"nameLocation": "25035:1:2",
"nodeType": "VariableDeclaration",
"scope": 4651,
"src": "25027:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4632,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25027:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4635,
"initialValue": {
"hexValue": "30",
"id": 4634,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "25039:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "25027:13:2"
},
"loopExpression": {
"expression": {
"id": 4641,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "25056:3:2",
"subExpression": {
"id": 4640,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4633,
"src": "25056:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4642,
"nodeType": "ExpressionStatement",
"src": "25056:3:2"
},
"nodeType": "ForStatement",
"src": "25022:224:2"
},
{
"expression": {
"id": 4652,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4623,
"src": "25263:6:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 4621,
"id": 4653,
"nodeType": "Return",
"src": "25256:13:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "flatten",
"nameLocation": "24888:7:2",
"parameters": {
"id": 4618,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4617,
"mutability": "mutable",
"name": "b",
"nameLocation": "24913:1:2",
"nodeType": "VariableDeclaration",
"scope": 4655,
"src": "24896:18:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 4615,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "24896:7:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4616,
"nodeType": "ArrayTypeName",
"src": "24896:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"src": "24895:20:2"
},
"returnParameters": {
"id": 4621,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4620,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4655,
"src": "24938:12:2",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4619,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "24938:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "24937:14:2"
},
"scope": 4656,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "stdStorage",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
4656
],
"name": "stdStorage",
"nameLocation": "16414:10:2",
"scope": 4796,
"usedErrors": []
},
{
"id": 4795,
"nodeType": "ContractDefinition",
"src": "25476:1306:2",
"nodes": [
{
"id": 4660,
"nodeType": "VariableDeclaration",
"src": "25498:115:2",
"constant": true,
"mutability": "constant",
"name": "INT256_MIN",
"nameLocation": "25522:10:2",
"scope": 4795,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4657,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "25498:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": {
"id": 4659,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "25535:78:2",
"subExpression": {
"hexValue": "3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638",
"id": 4658,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "25536:77:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
"typeString": "int_const 5789...(69 digits omitted)...9968"
},
"value": "57896044618658097711785492504343953926634992332820282019728792003956564819968"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
"typeString": "int_const -578...(70 digits omitted)...9968"
}
},
"visibility": "private"
},
{
"id": 4685,
"nodeType": "FunctionDefinition",
"src": "25620:294:2",
"body": {
"id": 4684,
"nodeType": "Block",
"src": "25675:239:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 4669,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4667,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4662,
"src": "25753:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 4668,
"name": "INT256_MIN",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4660,
"src": "25758:10:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "25753:15:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4672,
"nodeType": "IfStatement",
"src": "25749:117:2",
"trueBody": {
"expression": {
"hexValue": "3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638",
"id": 4670,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "25789:77:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
"typeString": "int_const 5789...(69 digits omitted)...9968"
},
"value": "57896044618658097711785492504343953926634992332820282019728792003956564819968"
},
"functionReturnParameters": 4666,
"id": 4671,
"nodeType": "Return",
"src": "25782:84:2"
}
},
{
"expression": {
"arguments": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 4677,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4675,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4662,
"src": "25892:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "30",
"id": 4676,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "25896:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "25892:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"id": 4680,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "25904:2:2",
"subExpression": {
"id": 4679,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4662,
"src": "25905:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 4681,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "25892:14:2",
"trueExpression": {
"id": 4678,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4662,
"src": "25900:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 4674,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "25884:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 4673,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25884:7:2",
"typeDescriptions": {}
}
},
"id": 4682,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "25884:23:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4666,
"id": 4683,
"nodeType": "Return",
"src": "25877:30:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "abs",
"nameLocation": "25629:3:2",
"parameters": {
"id": 4663,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4662,
"mutability": "mutable",
"name": "a",
"nameLocation": "25640:1:2",
"nodeType": "VariableDeclaration",
"scope": 4685,
"src": "25633:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4661,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "25633:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "25632:10:2"
},
"returnParameters": {
"id": 4666,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4665,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4685,
"src": "25666:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4664,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25666:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "25665:9:2"
},
"scope": 4795,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 4706,
"nodeType": "FunctionDefinition",
"src": "25920:138:2",
"body": {
"id": 4705,
"nodeType": "Block",
"src": "25989:69:2",
"statements": [
{
"expression": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4696,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4694,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4687,
"src": "26006:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 4695,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4689,
"src": "26010:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "26006:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4702,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4700,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4689,
"src": "26046:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 4701,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4687,
"src": "26050:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "26046:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4703,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "26006:45:2",
"trueExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4699,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4697,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4687,
"src": "26026:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"id": 4698,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4689,
"src": "26030:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "26026:5:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4693,
"id": 4704,
"nodeType": "Return",
"src": "25999:52:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "delta",
"nameLocation": "25929:5:2",
"parameters": {
"id": 4690,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4687,
"mutability": "mutable",
"name": "a",
"nameLocation": "25943:1:2",
"nodeType": "VariableDeclaration",
"scope": 4706,
"src": "25935:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4686,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25935:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4689,
"mutability": "mutable",
"name": "b",
"nameLocation": "25954:1:2",
"nodeType": "VariableDeclaration",
"scope": 4706,
"src": "25946:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4688,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25946:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "25934:22:2"
},
"returnParameters": {
"id": 4693,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4692,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4706,
"src": "25980:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4691,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "25980:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "25979:9:2"
},
"scope": 4795,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 4742,
"nodeType": "FunctionDefinition",
"src": "26064:352:2",
"body": {
"id": 4741,
"nodeType": "Block",
"src": "26131:285:2",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 4721,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 4717,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4715,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4708,
"src": "26270:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "^",
"rightExpression": {
"id": 4716,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4710,
"src": "26274:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "26270:5:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"id": 4718,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "26269:7:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 4720,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "26279:2:2",
"subExpression": {
"hexValue": "31",
"id": 4719,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "26280:1:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_minus_1_by_1",
"typeString": "int_const -1"
}
},
"src": "26269:12:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4732,
"nodeType": "IfStatement",
"src": "26265:71:2",
"trueBody": {
"id": 4731,
"nodeType": "Block",
"src": "26283:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 4724,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4708,
"src": "26314:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 4723,
"name": "abs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4685,
"src": "26310:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256) pure returns (uint256)"
}
},
"id": 4725,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26310:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"arguments": [
{
"id": 4727,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4710,
"src": "26322:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 4726,
"name": "abs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4685,
"src": "26318:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256) pure returns (uint256)"
}
},
"id": 4728,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26318:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4722,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [
4706,
4742
],
"referencedDeclaration": 4706,
"src": "26304:5:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 4729,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26304:21:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4714,
"id": 4730,
"nodeType": "Return",
"src": "26297:28:2"
}
]
}
},
{
"expression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4739,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"id": 4734,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4708,
"src": "26398:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 4733,
"name": "abs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4685,
"src": "26394:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256) pure returns (uint256)"
}
},
"id": 4735,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26394:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"arguments": [
{
"id": 4737,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4710,
"src": "26407:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 4736,
"name": "abs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4685,
"src": "26403:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256) pure returns (uint256)"
}
},
"id": 4738,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26403:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "26394:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4714,
"id": 4740,
"nodeType": "Return",
"src": "26387:22:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "delta",
"nameLocation": "26073:5:2",
"parameters": {
"id": 4711,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4708,
"mutability": "mutable",
"name": "a",
"nameLocation": "26086:1:2",
"nodeType": "VariableDeclaration",
"scope": 4742,
"src": "26079:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4707,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "26079:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4710,
"mutability": "mutable",
"name": "b",
"nameLocation": "26096:1:2",
"nodeType": "VariableDeclaration",
"scope": 4742,
"src": "26089:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4709,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "26089:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "26078:20:2"
},
"returnParameters": {
"id": 4714,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4713,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4742,
"src": "26122:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4712,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26122:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "26121:9:2"
},
"scope": 4795,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 4765,
"nodeType": "FunctionDefinition",
"src": "26422:160:2",
"body": {
"id": 4764,
"nodeType": "Block",
"src": "26498:84:2",
"statements": [
{
"assignments": [
4752
],
"declarations": [
{
"constant": false,
"id": 4752,
"mutability": "mutable",
"name": "absDelta",
"nameLocation": "26516:8:2",
"nodeType": "VariableDeclaration",
"scope": 4764,
"src": "26508:16:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4751,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26508:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4757,
"initialValue": {
"arguments": [
{
"id": 4754,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4744,
"src": "26533:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 4755,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4746,
"src": "26536:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4753,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [
4706,
4742
],
"referencedDeclaration": 4706,
"src": "26527:5:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 4756,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26527:11:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "26508:30:2"
},
{
"expression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4762,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4760,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4758,
"name": "absDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4752,
"src": "26556:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "31653138",
"id": 4759,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "26567:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"value": "1e18"
},
"src": "26556:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"id": 4761,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4746,
"src": "26574:1:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "26556:19:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4750,
"id": 4763,
"nodeType": "Return",
"src": "26549:26:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "percentDelta",
"nameLocation": "26431:12:2",
"parameters": {
"id": 4747,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4744,
"mutability": "mutable",
"name": "a",
"nameLocation": "26452:1:2",
"nodeType": "VariableDeclaration",
"scope": 4765,
"src": "26444:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4743,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26444:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4746,
"mutability": "mutable",
"name": "b",
"nameLocation": "26463:1:2",
"nodeType": "VariableDeclaration",
"scope": 4765,
"src": "26455:9:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4745,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26455:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "26443:22:2"
},
"returnParameters": {
"id": 4750,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4749,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4765,
"src": "26489:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4748,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26489:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "26488:9:2"
},
"scope": 4795,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 4794,
"nodeType": "FunctionDefinition",
"src": "26588:192:2",
"body": {
"id": 4793,
"nodeType": "Block",
"src": "26662:118:2",
"statements": [
{
"assignments": [
4775
],
"declarations": [
{
"constant": false,
"id": 4775,
"mutability": "mutable",
"name": "absDelta",
"nameLocation": "26680:8:2",
"nodeType": "VariableDeclaration",
"scope": 4793,
"src": "26672:16:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4774,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26672:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4780,
"initialValue": {
"arguments": [
{
"id": 4777,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4767,
"src": "26697:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
{
"id": 4778,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4769,
"src": "26700:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
},
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 4776,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [
4706,
4742
],
"referencedDeclaration": 4742,
"src": "26691:5:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256,int256) pure returns (uint256)"
}
},
"id": 4779,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26691:11:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "26672:30:2"
},
{
"assignments": [
4782
],
"declarations": [
{
"constant": false,
"id": 4782,
"mutability": "mutable",
"name": "absB",
"nameLocation": "26720:4:2",
"nodeType": "VariableDeclaration",
"scope": 4793,
"src": "26712:12:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4781,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26712:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 4786,
"initialValue": {
"arguments": [
{
"id": 4784,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4769,
"src": "26731:1:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 4783,
"name": "abs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4685,
"src": "26727:3:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$",
"typeString": "function (int256) pure returns (uint256)"
}
},
"id": 4785,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "26727:6:2",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "26712:21:2"
},
{
"expression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4791,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4789,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4787,
"name": "absDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4775,
"src": "26751:8:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "31653138",
"id": 4788,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "26762:4:2",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"value": "1e18"
},
"src": "26751:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"id": 4790,
"name": "absB",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4782,
"src": "26769:4:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "26751:22:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4773,
"id": 4792,
"nodeType": "Return",
"src": "26744:29:2"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "percentDelta",
"nameLocation": "26597:12:2",
"parameters": {
"id": 4770,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4767,
"mutability": "mutable",
"name": "a",
"nameLocation": "26617:1:2",
"nodeType": "VariableDeclaration",
"scope": 4794,
"src": "26610:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4766,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "26610:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 4769,
"mutability": "mutable",
"name": "b",
"nameLocation": "26627:1:2",
"nodeType": "VariableDeclaration",
"scope": 4794,
"src": "26620:8:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 4768,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "26620:6:2",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "26609:20:2"
},
"returnParameters": {
"id": 4773,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4772,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 4794,
"src": "26653:7:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4771,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26653:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "26652:9:2"
},
"scope": 4795,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "stdMath",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
4795
],
"name": "stdMath",
"nameLocation": "25484:7:2",
"scope": 4796,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 2
}