{ "abi": [ { "inputs": [], "name": "arithmeticError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "assertionError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "divisionError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "encodeStorageError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enumConversionError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "indexOOBError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lowLevelError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "memOverflowError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "popError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "zeroVarError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" } ], "bytecode": { "object": "0x61027061003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063ac3d92c611610070578063ac3d92c6146100eb578063b22dc54d14610101578063b67689da14610109578063d160e4de14610111578063fa784a441461011957600080fd5b806305ee8612146100ad57806310332977146100cb5780631de45560146100d35780638995290f146100db578063986c5f68146100e3575b600080fd5b6100b5610121565b6040516100c291906101ec565b60405180910390f35b6100b561015c565b6100b561016e565b6100b5610180565b6100b5610192565b6100b56040518060200160405280600081525081565b6100b56101a4565b6100b56101b6565b6100b56101c8565b6100b56101da565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161012f565b6040516021602482015260440161012f565b6040516011602482015260440161012f565b6040516041602482015260440161012f565b6040516031602482015260440161012f565b6040516051602482015260440161012f565b6040516022602482015260440161012f565b6040516012602482015260440161012f565b600060208083528351808285015260005b81811015610219578581018301518582016040015282016101fd565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220767605c3b63728b268026074fb5671be9020d22b924e27a0f02ea5ab0246a96464736f6c63430008100033", "sourceMap": "14944:984:2:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;14944:984:2;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x73000000000000000000000000000000000000000030146080604052600436106100a85760003560e01c8063ac3d92c611610070578063ac3d92c6146100eb578063b22dc54d14610101578063b67689da14610109578063d160e4de14610111578063fa784a441461011957600080fd5b806305ee8612146100ad57806310332977146100cb5780631de45560146100d35780638995290f146100db578063986c5f68146100e3575b600080fd5b6100b5610121565b6040516100c291906101ec565b60405180910390f35b6100b561015c565b6100b561016e565b6100b5610180565b6100b5610192565b6100b56040518060200160405280600081525081565b6100b56101a4565b6100b56101b6565b6100b56101c8565b6100b56101da565b604051603260248201526044015b60408051601f198184030181529190526020810180516001600160e01b0316634e487b7160e01b17905281565b6040516001602482015260440161012f565b6040516021602482015260440161012f565b6040516011602482015260440161012f565b6040516041602482015260440161012f565b6040516031602482015260440161012f565b6040516051602482015260440161012f565b6040516022602482015260440161012f565b6040516012602482015260440161012f565b600060208083528351808285015260005b81811015610219578581018301518582016040015282016101fd565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220767605c3b63728b268026074fb5671be9020d22b924e27a0f02ea5ab0246a96464736f6c63430008100033", "sourceMap": "14944:984:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15522:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14967:86;;;:::i;15243:91::-;;;:::i;15059:87::-;;;:::i;15613:88::-;;;:::i;15870:47::-;;15908:9;;;;;;;;;;;;15870:47;;15436:80;;;:::i;15707:84::-;;;:::i;15340:90::-;;;:::i;15152:85::-;;;:::i;15522:::-;15560:47;;15602:4;15560:47;;;726:36:9;699:18;;15560:47:2;;;;-1:-1:-1;;15560:47:2;;;;;;;;;;;;;;-1:-1:-1;;;;;15560:47:2;-1:-1:-1;;;15560:47:2;;;15522:85;:::o;14967:86::-;15006:47;;15048:4;15006:47;;;726:36:9;699:18;;15006:47:2;573:195:9;15243:91:2;15287:47;;15329:4;15287:47;;;726:36:9;699:18;;15287:47:2;573:195:9;15059:87:2;15099:47;;15141:4;15099:47;;;726:36:9;699:18;;15099:47:2;573:195:9;15613:88:2;15654:47;;15696:4;15654:47;;;726:36:9;699:18;;15654:47:2;573:195:9;15436:80:2;15469:47;;15511:4;15469:47;;;726:36:9;699:18;;15469:47:2;573:195:9;15707:84:2;15744:47;;15786:4;15744:47;;;726:36:9;699:18;;15744:47:2;573:195:9;15340:90:2;15383:47;;15425:4;15383:47;;;726:36:9;699:18;;15383:47:2;573:195:9;15152:85:2;15190:47;;15232:4;15190:47;;;726:36:9;699:18;;15190:47:2;573:195:9;14:554;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;559:2;552;548:7;543:2;535:6;531:15;527:29;516:9;512:45;508:54;500:62;;;;14:554;;;;:::o", "linkReferences": {} }, "methodIdentifiers": { "arithmeticError()": "8995290f", "assertionError()": "10332977", "divisionError()": "fa784a44", "encodeStorageError()": "d160e4de", "enumConversionError()": "1de45560", "indexOOBError()": "05ee8612", "lowLevelError()": "ac3d92c6", "memOverflowError()": "986c5f68", "popError()": "b22dc54d", "zeroVarError()": "b67689da" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lowLevelError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"stdError\"},\"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": [], "stateMutability": "view", "type": "function", "name": "arithmeticError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "assertionError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "divisionError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "encodeStorageError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "enumConversionError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "indexOOBError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "lowLevelError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "memOverflowError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "popError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "zeroVarError", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ] } ], "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": "stdError" }, "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 }