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

19672 lines
859 KiB
JSON

{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "who",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes4",
"name": "fsig",
"type": "bytes4"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "keysHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "slot",
"type": "uint256"
}
],
"name": "SlotFound",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "who",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "slot",
"type": "uint256"
}
],
"name": "WARNING_UninitedSlot",
"type": "event"
}
],
"bytecode": {
"object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1cbbccc7e43b434e2720287464042f60d52fbac45503c4afc8f5a789a31955064736f6c63430008160033",
"sourceMap": "368:6969:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;368:6969:10;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1cbbccc7e43b434e2720287464042f60d52fbac45503c4afc8f5a789a31955064736f6c63430008160033",
"sourceMap": "368:6969:10:-:0;;;;;;;;",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address",
"indexed": false
},
{
"internalType": "bytes4",
"name": "fsig",
"type": "bytes4",
"indexed": false
},
{
"internalType": "bytes32",
"name": "keysHash",
"type": "bytes32",
"indexed": false
},
{
"internalType": "uint256",
"name": "slot",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "SlotFound",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "who",
"type": "address",
"indexed": false
},
{
"internalType": "uint256",
"name": "slot",
"type": "uint256",
"indexed": false
}
],
"type": "event",
"name": "WARNING_UninitedSlot",
"anonymous": false
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
"@uniswap/v3-core/=lib_uniswap/v3-core/",
"@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"v3-core/=lib_uniswap/v3-core/",
"v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
],
"optimizer": {
"runs": 999999999,
"details": {
"peephole": true,
"inliner": true,
"jumpdestRemover": true,
"orderLiterals": true,
"deduplicate": true,
"cse": true,
"constantOptimizer": true,
"yul": true,
"yulDetails": {
"stackAllocation": true,
"optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
}
}
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"lib/forge-std/src/StdStorage.sol": "stdStorageSafe"
},
"libraries": {}
},
"sources": {
"lib/forge-std/src/StdStorage.sol": {
"keccak256": "0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d",
"urls": [
"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26",
"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9"
],
"license": "MIT"
},
"lib/forge-std/src/Vm.sol": {
"keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5",
"urls": [
"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c",
"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib/forge-std/src/StdStorage.sol",
"id": 9828,
"exportedSymbols": {
"StdStorage": [
8374
],
"Vm": [
13464
],
"stdStorage": [
9827
],
"stdStorageSafe": [
9266
]
},
"nodeType": "SourceUnit",
"src": "32:11973:10",
"nodes": [
{
"id": 8344,
"nodeType": "PragmaDirective",
"src": "32:31:10",
"nodes": [],
"literals": [
"solidity",
">=",
"0.6",
".2",
"<",
"0.9",
".0"
]
},
{
"id": 8346,
"nodeType": "ImportDirective",
"src": "65:28:10",
"nodes": [],
"absolutePath": "lib/forge-std/src/Vm.sol",
"file": "./Vm.sol",
"nameLocation": "-1:-1:-1",
"scope": 9828,
"sourceUnit": 13465,
"symbolAliases": [
{
"foreign": {
"id": 8345,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 13464,
"src": "73:2:10",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8374,
"nodeType": "StructDefinition",
"src": "95:271:10",
"nodes": [],
"canonicalName": "StdStorage",
"members": [
{
"constant": false,
"id": 8354,
"mutability": "mutable",
"name": "slots",
"nameLocation": "186:5:10",
"nodeType": "VariableDeclaration",
"scope": 8374,
"src": "119:72:10",
"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": 8353,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 8347,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "127:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "119:66:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 8352,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 8348,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "146:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "138:46:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 8351,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 8349,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "164:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "156:27:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 8350,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "175:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8362,
"mutability": "mutable",
"name": "finds",
"nameLocation": "261:5:10",
"nodeType": "VariableDeclaration",
"scope": 8374,
"src": "197:69:10",
"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": 8361,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 8355,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "205:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "197:63:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$",
"typeString": "mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 8360,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 8356,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "224:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "216:43:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 8359,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 8357,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "242:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "234:24:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 8358,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "253:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
}
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8365,
"mutability": "mutable",
"name": "_keys",
"nameLocation": "282:5:10",
"nodeType": "VariableDeclaration",
"scope": 8374,
"src": "272:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 8363,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "272:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 8364,
"nodeType": "ArrayTypeName",
"src": "272:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8367,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "300:4:10",
"nodeType": "VariableDeclaration",
"scope": 8374,
"src": "293:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 8366,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "293:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8369,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "318:6:10",
"nodeType": "VariableDeclaration",
"scope": 8374,
"src": "310:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8368,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "310:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8371,
"mutability": "mutable",
"name": "_target",
"nameLocation": "338:7:10",
"nodeType": "VariableDeclaration",
"scope": 8374,
"src": "330:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8370,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "330:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8373,
"mutability": "mutable",
"name": "_set",
"nameLocation": "359:4:10",
"nodeType": "VariableDeclaration",
"scope": 8374,
"src": "351:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 8372,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "351:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"name": "StdStorage",
"nameLocation": "102:10:10",
"scope": 9828,
"visibility": "public"
},
{
"id": 9266,
"nodeType": "ContractDefinition",
"src": "368:6969:10",
"nodes": [
{
"id": 8384,
"nodeType": "EventDefinition",
"src": "397:74:10",
"nodes": [],
"anonymous": false,
"eventSelector": "9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed",
"name": "SlotFound",
"nameLocation": "403:9:10",
"parameters": {
"id": 8383,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8376,
"indexed": false,
"mutability": "mutable",
"name": "who",
"nameLocation": "421:3:10",
"nodeType": "VariableDeclaration",
"scope": 8384,
"src": "413:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8375,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "413:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8378,
"indexed": false,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "433:4:10",
"nodeType": "VariableDeclaration",
"scope": 8384,
"src": "426:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 8377,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "426:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8380,
"indexed": false,
"mutability": "mutable",
"name": "keysHash",
"nameLocation": "447:8:10",
"nodeType": "VariableDeclaration",
"scope": 8384,
"src": "439:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 8379,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "439:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8382,
"indexed": false,
"mutability": "mutable",
"name": "slot",
"nameLocation": "465:4:10",
"nodeType": "VariableDeclaration",
"scope": 8384,
"src": "457:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8381,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "457:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "412:58:10"
}
},
{
"id": 8390,
"nodeType": "EventDefinition",
"src": "476:54:10",
"nodes": [],
"anonymous": false,
"eventSelector": "080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5",
"name": "WARNING_UninitedSlot",
"nameLocation": "482:20:10",
"parameters": {
"id": 8389,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8386,
"indexed": false,
"mutability": "mutable",
"name": "who",
"nameLocation": "511:3:10",
"nodeType": "VariableDeclaration",
"scope": 8390,
"src": "503:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8385,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "503:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8388,
"indexed": false,
"mutability": "mutable",
"name": "slot",
"nameLocation": "524:4:10",
"nodeType": "VariableDeclaration",
"scope": 8390,
"src": "516:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8387,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "516:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "502:27:10"
}
},
{
"id": 8407,
"nodeType": "VariableDeclaration",
"src": "536:84:10",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "vm",
"nameLocation": "556:2:10",
"scope": 9266,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
},
"typeName": {
"id": 8392,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8391,
"name": "Vm",
"nameLocations": [
"536:2:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13464,
"src": "536:2:10"
},
"referencedDeclaration": 13464,
"src": "536:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"hexValue": "6865766d20636865617420636f6465",
"id": 8401,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "598:17:10",
"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": 8400,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "588:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8402,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "588:28:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8399,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "580:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8398,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "580:7:10",
"typeDescriptions": {}
}
},
"id": 8403,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "580:37:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8397,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "572:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 8396,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "572:7:10",
"typeDescriptions": {}
}
},
"id": 8404,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "572:46:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 8395,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "564:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 8394,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "564:7:10",
"typeDescriptions": {}
}
},
"id": 8405,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "564:55:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 8393,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 13464,
"src": "561:2:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Vm_$13464_$",
"typeString": "type(contract Vm)"
}
},
"id": 8406,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "561:59:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"visibility": "private"
},
{
"id": 8425,
"nodeType": "FunctionDefinition",
"src": "627:123:10",
"nodes": [],
"body": {
"id": 8424,
"nodeType": "Block",
"src": "694:56:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 8419,
"name": "sigStr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8409,
"src": "734:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 8418,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "728:5:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 8417,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "728:5:10",
"typeDescriptions": {}
}
},
"id": 8420,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "728:13:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8416,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "718:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8421,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "718:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8415,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "711:6:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes4_$",
"typeString": "type(bytes4)"
},
"typeName": {
"id": 8414,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "711:6:10",
"typeDescriptions": {}
}
},
"id": 8422,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "711:32:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 8413,
"id": 8423,
"nodeType": "Return",
"src": "704:39:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sigs",
"nameLocation": "636:4:10",
"parameters": {
"id": 8410,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8409,
"mutability": "mutable",
"name": "sigStr",
"nameLocation": "655:6:10",
"nodeType": "VariableDeclaration",
"scope": 8425,
"src": "641:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 8408,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "641:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "640:22:10"
},
"returnParameters": {
"id": 8413,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8412,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 8425,
"src": "686:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 8411,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "686:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "685:8:10"
},
"scope": 9266,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 8869,
"nodeType": "FunctionDefinition",
"src": "1264:3197:10",
"nodes": [],
"body": {
"id": 8868,
"nodeType": "Block",
"src": "1330:3131:10",
"nodes": [],
"statements": [
{
"assignments": [
8435
],
"declarations": [
{
"constant": false,
"id": 8435,
"mutability": "mutable",
"name": "who",
"nameLocation": "1348:3:10",
"nodeType": "VariableDeclaration",
"scope": 8868,
"src": "1340:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8434,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1340:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 8438,
"initialValue": {
"expression": {
"id": 8436,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "1354:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8437,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1359:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 8371,
"src": "1354:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1340:26:10"
},
{
"assignments": [
8440
],
"declarations": [
{
"constant": false,
"id": 8440,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "1383:4:10",
"nodeType": "VariableDeclaration",
"scope": 8868,
"src": "1376:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 8439,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1376:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"id": 8443,
"initialValue": {
"expression": {
"id": 8441,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "1390:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8442,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1395:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8367,
"src": "1390:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1376:23:10"
},
{
"assignments": [
8445
],
"declarations": [
{
"constant": false,
"id": 8445,
"mutability": "mutable",
"name": "field_depth",
"nameLocation": "1417:11:10",
"nodeType": "VariableDeclaration",
"scope": 8868,
"src": "1409:19:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8444,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1409:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 8448,
"initialValue": {
"expression": {
"id": 8446,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "1431:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8447,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1436:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 8369,
"src": "1431:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1409:33:10"
},
{
"assignments": [
8453
],
"declarations": [
{
"constant": false,
"id": 8453,
"mutability": "mutable",
"name": "ins",
"nameLocation": "1469:3:10",
"nodeType": "VariableDeclaration",
"scope": 8868,
"src": "1452:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 8451,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1452:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 8452,
"nodeType": "ArrayTypeName",
"src": "1452:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"id": 8456,
"initialValue": {
"expression": {
"id": 8454,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "1475:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8455,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1480:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 8365,
"src": "1475:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1452:33:10"
},
{
"condition": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8457,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "1536:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8458,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1541:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 8362,
"src": "1536:10:10",
"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": 8460,
"indexExpression": {
"id": 8459,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "1547:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1536:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 8462,
"indexExpression": {
"id": 8461,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "1552:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1536:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 8470,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8466,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "1585:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8467,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "1590:11:10",
"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": 8464,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1568:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8465,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1572:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "1568:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8468,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1568:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8463,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "1558:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8469,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1558:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1536:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8487,
"nodeType": "IfStatement",
"src": "1532:174:10",
"trueBody": {
"id": 8486,
"nodeType": "Block",
"src": "1606:100:10",
"statements": [
{
"expression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8471,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "1627:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8472,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1632:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 8354,
"src": "1627:10:10",
"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": 8474,
"indexExpression": {
"id": 8473,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "1638:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1627:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 8476,
"indexExpression": {
"id": 8475,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "1643:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1627:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 8484,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8480,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "1676:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8481,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "1681:11:10",
"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": 8478,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1659:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8479,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1663:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "1659:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1659:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8477,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "1649:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8483,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1649:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1627:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8433,
"id": 8485,
"nodeType": "Return",
"src": "1620:75:10"
}
]
}
},
{
"assignments": [
8489
],
"declarations": [
{
"constant": false,
"id": 8489,
"mutability": "mutable",
"name": "cald",
"nameLocation": "1728:4:10",
"nodeType": "VariableDeclaration",
"scope": 8868,
"src": "1715:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 8488,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1715:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 8497,
"initialValue": {
"arguments": [
{
"id": 8492,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "1752:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"id": 8494,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "1766:3:10",
"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": 8493,
"name": "flatten",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9265,
"src": "1758:7:10",
"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": 8495,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1758:12:10",
"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": 8490,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1735:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8491,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1739:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "1735:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8496,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1735:36:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1715:56:10"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 8498,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "1781:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 8500,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1784:6:10",
"memberName": "record",
"nodeType": "MemberAccess",
"referencedDeclaration": 12312,
"src": "1781:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
"typeString": "function () external"
}
},
"id": 8501,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1781:11:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8502,
"nodeType": "ExpressionStatement",
"src": "1781:11:10"
},
{
"assignments": [
8504
],
"declarations": [
{
"constant": false,
"id": 8504,
"mutability": "mutable",
"name": "fdat",
"nameLocation": "1810:4:10",
"nodeType": "VariableDeclaration",
"scope": 8868,
"src": "1802:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 8503,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1802:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 8505,
"nodeType": "VariableDeclarationStatement",
"src": "1802:12:10"
},
{
"id": 8522,
"nodeType": "Block",
"src": "1824:128:10",
"statements": [
{
"assignments": [
null,
8507
],
"declarations": [
null,
{
"constant": false,
"id": 8507,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "1854:4:10",
"nodeType": "VariableDeclaration",
"scope": 8522,
"src": "1841:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 8506,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1841:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 8512,
"initialValue": {
"arguments": [
{
"id": 8510,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8489,
"src": "1877:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 8508,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "1862:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8509,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1866:10:10",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "1862:14:10",
"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": 8511,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1862:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1838:44:10"
},
{
"expression": {
"id": 8520,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8513,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8504,
"src": "1896:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 8515,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8507,
"src": "1918:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8518,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 8516,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1924:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 8517,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "1929:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1924:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8514,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9224,
"src": "1903:14:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 8519,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1903:38:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1896:45:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 8521,
"nodeType": "ExpressionStatement",
"src": "1896:45:10"
}
]
},
{
"assignments": [
8527,
null
],
"declarations": [
{
"constant": false,
"id": 8527,
"mutability": "mutable",
"name": "reads",
"nameLocation": "1980:5:10",
"nodeType": "VariableDeclaration",
"scope": 8868,
"src": "1963:22:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 8525,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1963:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 8526,
"nodeType": "ArrayTypeName",
"src": "1963:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
null
],
"id": 8535,
"initialValue": {
"arguments": [
{
"arguments": [
{
"id": 8532,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "2010:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 8531,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2002:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 8530,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2002:7:10",
"typeDescriptions": {}
}
},
"id": 8533,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2002:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 8528,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "1990:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 8529,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1993:8:10",
"memberName": "accesses",
"nodeType": "MemberAccess",
"referencedDeclaration": 12323,
"src": "1990:11:10",
"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": 8534,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1990:25:10",
"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": "1962:53:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8539,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 8536,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2029:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8537,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2035:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2029:12:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "31",
"id": 8538,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2045:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "2029:17:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8641,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 8638,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2786:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8639,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2792:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2786:12:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "31",
"id": 8640,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2801:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "2786:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 8816,
"nodeType": "Block",
"src": "3986:99:10",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a204e6f2073746f726167652075736520646574656374656420666f72207461726765742e",
"id": 8813,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4007:66:10",
"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_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283",
"typeString": "literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""
}
],
"id": 8812,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
"src": "4000:6:10",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 8814,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4000:74:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8815,
"nodeType": "ExpressionStatement",
"src": "4000:74:10"
}
]
},
"id": 8817,
"nodeType": "IfStatement",
"src": "2782:1303:10",
"trueBody": {
"id": 8811,
"nodeType": "Block",
"src": "2804:1176:10",
"statements": [
{
"body": {
"id": 8809,
"nodeType": "Block",
"src": "2861:1109:10",
"statements": [
{
"assignments": [
8654
],
"declarations": [
{
"constant": false,
"id": 8654,
"mutability": "mutable",
"name": "prev",
"nameLocation": "2887:4:10",
"nodeType": "VariableDeclaration",
"scope": 8809,
"src": "2879:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 8653,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2879:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 8662,
"initialValue": {
"arguments": [
{
"id": 8657,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "2902:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 8658,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2907:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8660,
"indexExpression": {
"id": 8659,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "2913:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2907:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 8655,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "2894:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 8656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2897:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 11994,
"src": "2894:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 8661,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2894:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2879:37:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 8668,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 8663,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8654,
"src": "2938:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 8666,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2954:1:10",
"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": 8665,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2946:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 8664,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2946:7:10",
"typeDescriptions": {}
}
},
"id": 8667,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2946:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2938:18:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8680,
"nodeType": "IfStatement",
"src": "2934:114:10",
"trueBody": {
"id": 8679,
"nodeType": "Block",
"src": "2958:90:10",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 8670,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3006:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 8673,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "3019:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8675,
"indexExpression": {
"id": 8674,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "3025:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3019:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8672,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3011:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8671,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3011:7:10",
"typeDescriptions": {}
}
},
"id": 8676,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3011:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8669,
"name": "WARNING_UninitedSlot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8390,
"src": "2985:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 8677,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2985:44:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8678,
"nodeType": "EmitStatement",
"src": "2980:49:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 8684,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3099:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 8685,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "3104:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8687,
"indexExpression": {
"id": 8686,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "3110:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3104:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"hexValue": "1337",
"id": 8690,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "hexString",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3122:9:10",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
},
"value": "\u00137"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
}
],
"id": 8689,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3114:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 8688,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3114:7:10",
"typeDescriptions": {}
}
},
"id": 8691,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3114:18:10",
"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": 8681,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "3090:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 8683,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3093:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 13038,
"src": "3090:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 8692,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3090:43:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8693,
"nodeType": "ExpressionStatement",
"src": "3090:43:10"
},
{
"assignments": [
8695
],
"declarations": [
{
"constant": false,
"id": 8695,
"mutability": "mutable",
"name": "success",
"nameLocation": "3156:7:10",
"nodeType": "VariableDeclaration",
"scope": 8809,
"src": "3151:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8694,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3151:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"id": 8696,
"nodeType": "VariableDeclarationStatement",
"src": "3151:12:10"
},
{
"assignments": [
8698
],
"declarations": [
{
"constant": false,
"id": 8698,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "3194:4:10",
"nodeType": "VariableDeclaration",
"scope": 8809,
"src": "3181:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 8697,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3181:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 8699,
"nodeType": "VariableDeclarationStatement",
"src": "3181:17:10"
},
{
"id": 8718,
"nodeType": "Block",
"src": "3216:146:10",
"statements": [
{
"expression": {
"id": 8707,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"components": [
{
"id": 8700,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8695,
"src": "3239:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"id": 8701,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8698,
"src": "3248:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"id": 8702,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "3238:15:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 8705,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8489,
"src": "3271:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 8703,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3256:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8704,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3260:10:10",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "3256:14:10",
"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": 8706,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3256:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"src": "3238:38:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8708,
"nodeType": "ExpressionStatement",
"src": "3238:38:10"
},
{
"expression": {
"id": 8716,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8709,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8504,
"src": "3298:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 8711,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8698,
"src": "3320:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8714,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 8712,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3326:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 8713,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "3331:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3326:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8710,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9224,
"src": "3305:14:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 8715,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3305:38:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "3298:45:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 8717,
"nodeType": "ExpressionStatement",
"src": "3298:45:10"
}
]
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 8726,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 8719,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8695,
"src": "3384:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 8725,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 8720,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8504,
"src": "3395:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "1337",
"id": 8723,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "hexString",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3411:9:10",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
},
"value": "\u00137"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc",
"typeString": "literal_string hex\"1337\""
}
],
"id": 8722,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3403:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 8721,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3403:7:10",
"typeDescriptions": {}
}
},
"id": 8724,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3403:18:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "3395:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "3384:37:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8798,
"nodeType": "IfStatement",
"src": "3380:529:10",
"trueBody": {
"id": 8797,
"nodeType": "Block",
"src": "3423:486:10",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 8728,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3529:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 8729,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "3534:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"arguments": [
{
"id": 8733,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "3567:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8734,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "3572:11:10",
"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": 8731,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "3550:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8732,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3554:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "3550:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8735,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3550:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8730,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "3540:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8736,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3540:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 8739,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "3595:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8741,
"indexExpression": {
"id": 8740,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "3601:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3595:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8738,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3587:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8737,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3587:7:10",
"typeDescriptions": {}
}
},
"id": 8742,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3587:17:10",
"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": 8727,
"name": "SlotFound",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8384,
"src": "3519:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$",
"typeString": "function (address,bytes4,bytes32,uint256)"
}
},
"id": 8743,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3519:86:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8744,
"nodeType": "EmitStatement",
"src": "3514:91:10"
},
{
"expression": {
"id": 8766,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8745,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "3627:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8756,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3632:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 8354,
"src": "3627:10:10",
"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": 8757,
"indexExpression": {
"id": 8747,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3638:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3627:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 8758,
"indexExpression": {
"id": 8748,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "3643:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3627:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 8759,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8752,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "3676:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8753,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "3681:11:10",
"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": 8750,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "3659:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8751,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3663:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "3659:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8754,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3659:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8749,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "3649:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8755,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3649:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3627:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"baseExpression": {
"id": 8762,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "3706:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8764,
"indexExpression": {
"id": 8763,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "3712:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3706:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8761,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3698:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8760,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3698:7:10",
"typeDescriptions": {}
}
},
"id": 8765,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3698:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3627:88:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 8767,
"nodeType": "ExpressionStatement",
"src": "3627:88:10"
},
{
"expression": {
"id": 8784,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8768,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "3737:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8779,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3742:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 8362,
"src": "3737:10:10",
"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": 8780,
"indexExpression": {
"id": 8770,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3748:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3737:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 8781,
"indexExpression": {
"id": 8771,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "3753:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3737:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 8782,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8775,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "3786:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8776,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "3791:11:10",
"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": 8773,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "3769:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8774,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3773:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "3769:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8777,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3769:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8772,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "3759:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3759:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3737:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 8783,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3808:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "3737:75:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8785,
"nodeType": "ExpressionStatement",
"src": "3737:75:10"
},
{
"expression": {
"arguments": [
{
"id": 8789,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3843:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 8790,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "3848:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8792,
"indexExpression": {
"id": 8791,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "3854:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3848:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 8793,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8654,
"src": "3858:4:10",
"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": 8786,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "3834:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 8788,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3837:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 13038,
"src": "3834:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 8794,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3834:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8795,
"nodeType": "ExpressionStatement",
"src": "3834:29:10"
},
{
"id": 8796,
"nodeType": "Break",
"src": "3885:5:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 8802,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "3935:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 8803,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "3940:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8805,
"indexExpression": {
"id": 8804,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "3946:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3940:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 8806,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8654,
"src": "3950:4:10",
"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": 8799,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "3926:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 8801,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3929:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 13038,
"src": "3926:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 8807,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3926:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8808,
"nodeType": "ExpressionStatement",
"src": "3926:29:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8649,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 8646,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "2838:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 8647,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2842:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8648,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2848:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2842:12:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2838:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8810,
"initializationExpression": {
"assignments": [
8643
],
"declarations": [
{
"constant": false,
"id": 8643,
"mutability": "mutable",
"name": "i",
"nameLocation": "2831:1:10",
"nodeType": "VariableDeclaration",
"scope": 8810,
"src": "2823:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8642,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2823:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 8645,
"initialValue": {
"hexValue": "30",
"id": 8644,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2835:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2823:13:10"
},
"isSimpleCounterLoop": true,
"loopExpression": {
"expression": {
"id": 8651,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2856:3:10",
"subExpression": {
"id": 8650,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8643,
"src": "2856:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 8652,
"nodeType": "ExpressionStatement",
"src": "2856:3:10"
},
"nodeType": "ForStatement",
"src": "2818:1152:10"
}
]
}
},
"id": 8818,
"nodeType": "IfStatement",
"src": "2025:2060:10",
"trueBody": {
"id": 8637,
"nodeType": "Block",
"src": "2048:728:10",
"statements": [
{
"assignments": [
8541
],
"declarations": [
{
"constant": false,
"id": 8541,
"mutability": "mutable",
"name": "curr",
"nameLocation": "2070:4:10",
"nodeType": "VariableDeclaration",
"scope": 8637,
"src": "2062:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 8540,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2062:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 8549,
"initialValue": {
"arguments": [
{
"id": 8544,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "2085:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 8545,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2090:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8547,
"indexExpression": {
"hexValue": "30",
"id": 8546,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2096:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2090:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 8542,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "2077:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 8543,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2080:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 11994,
"src": "2077:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 8548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2077:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2062:37:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 8555,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 8550,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8541,
"src": "2117:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 8553,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2133:1:10",
"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": 8552,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2125:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 8551,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2125:7:10",
"typeDescriptions": {}
}
},
"id": 8554,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2125:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2117:18:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8567,
"nodeType": "IfStatement",
"src": "2113:106:10",
"trueBody": {
"id": 8566,
"nodeType": "Block",
"src": "2137:82:10",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 8557,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "2181:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 8560,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2194:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8562,
"indexExpression": {
"hexValue": "30",
"id": 8561,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2200:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2194:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8559,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2186:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8558,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2186:7:10",
"typeDescriptions": {}
}
},
"id": 8563,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2186:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8556,
"name": "WARNING_UninitedSlot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8390,
"src": "2160:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 8564,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2160:44:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8565,
"nodeType": "EmitStatement",
"src": "2155:49:10"
}
]
}
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 8570,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 8568,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8504,
"src": "2236:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 8569,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8541,
"src": "2244:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2236:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8577,
"nodeType": "IfStatement",
"src": "2232:238:10",
"trueBody": {
"id": 8576,
"nodeType": "Block",
"src": "2250:220:10",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 8572,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2297:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e",
"id": 8573,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2324:113:10",
"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": 8571,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2268:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 8574,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2268:187:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8575,
"nodeType": "ExpressionStatement",
"src": "2268:187:10"
}
]
}
},
{
"eventCall": {
"arguments": [
{
"id": 8579,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "2498:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 8580,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "2503:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"arguments": [
{
"id": 8584,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "2536:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8585,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "2541:11:10",
"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": 8582,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2519:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8583,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2523:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "2519:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8586,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2519:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8581,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2509:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8587,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2509:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 8590,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2564:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8592,
"indexExpression": {
"hexValue": "30",
"id": 8591,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2570:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2564:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8589,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2556:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8588,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2556:7:10",
"typeDescriptions": {}
}
},
"id": 8593,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2556:17:10",
"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": 8578,
"name": "SlotFound",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8384,
"src": "2488:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$",
"typeString": "function (address,bytes4,bytes32,uint256)"
}
},
"id": 8594,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2488:86:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8595,
"nodeType": "EmitStatement",
"src": "2483:91:10"
},
{
"expression": {
"id": 8617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8596,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "2588:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8607,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2593:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 8354,
"src": "2588:10:10",
"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": 8608,
"indexExpression": {
"id": 8598,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "2599:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2588:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 8609,
"indexExpression": {
"id": 8599,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "2604:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2588:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 8610,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8603,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "2637:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8604,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "2642:11:10",
"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": 8601,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2620:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8602,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2624:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "2620:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8605,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2620:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8600,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2610:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2610:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2588:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"baseExpression": {
"id": 8613,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8527,
"src": "2667:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 8615,
"indexExpression": {
"hexValue": "30",
"id": 8614,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2673:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2667:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 8612,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2659:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8611,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2659:7:10",
"typeDescriptions": {}
}
},
"id": 8616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2659:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2588:88:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 8618,
"nodeType": "ExpressionStatement",
"src": "2588:88:10"
},
{
"expression": {
"id": 8635,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8619,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "2690:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8630,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2695:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 8362,
"src": "2690:10:10",
"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": 8631,
"indexExpression": {
"id": 8621,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "2701:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2690:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 8632,
"indexExpression": {
"id": 8622,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "2706:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2690:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 8633,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8626,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "2739:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8627,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "2744:11:10",
"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": 8624,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2722:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8625,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2726:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "2722:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8628,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2722:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8623,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2712:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2712:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2690:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 8634,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2761:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "2690:75:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8636,
"nodeType": "ExpressionStatement",
"src": "2690:75:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8820,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "4116:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8821,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4121:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 8362,
"src": "4116:10:10",
"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": 8823,
"indexExpression": {
"id": 8822,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "4127:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4116:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 8825,
"indexExpression": {
"id": 8824,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "4132:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4116:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 8833,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8829,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "4165:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8830,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "4170:11:10",
"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": 8827,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4148:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8828,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4152:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "4148:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8831,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4148:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8826,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "4138:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8832,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4138:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4116:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a20536c6f74287329206e6f7420666f756e642e",
"id": 8834,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4198:49:10",
"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": 8819,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "4095:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 8835,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4095:162:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8836,
"nodeType": "ExpressionStatement",
"src": "4095:162:10"
},
{
"expression": {
"id": 8839,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4268:19:10",
"subExpression": {
"expression": {
"id": 8837,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "4275:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8838,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4280:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 8371,
"src": "4275:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8840,
"nodeType": "ExpressionStatement",
"src": "4268:19:10"
},
{
"expression": {
"id": 8843,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4297:16:10",
"subExpression": {
"expression": {
"id": 8841,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "4304:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8842,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4309:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8367,
"src": "4304:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8844,
"nodeType": "ExpressionStatement",
"src": "4297:16:10"
},
{
"expression": {
"id": 8847,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4323:17:10",
"subExpression": {
"expression": {
"id": 8845,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "4330:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8846,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4335:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 8365,
"src": "4330:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8848,
"nodeType": "ExpressionStatement",
"src": "4323:17:10"
},
{
"expression": {
"id": 8851,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4350:18:10",
"subExpression": {
"expression": {
"id": 8849,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "4357:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8850,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4362:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 8369,
"src": "4357:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8852,
"nodeType": "ExpressionStatement",
"src": "4350:18:10"
},
{
"expression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 8853,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8429,
"src": "4386:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8854,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4391:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 8354,
"src": "4386:10:10",
"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": 8856,
"indexExpression": {
"id": 8855,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8435,
"src": "4397:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4386:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 8858,
"indexExpression": {
"id": 8857,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8440,
"src": "4402:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4386:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 8866,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 8862,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8453,
"src": "4435:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 8863,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8445,
"src": "4440:11:10",
"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": 8860,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4418:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8861,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4422:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "4418:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8864,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4418:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 8859,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "4408:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 8865,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4408:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4386:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8433,
"id": 8867,
"nodeType": "Return",
"src": "4379:75:10"
}
]
},
"documentation": {
"id": 8426,
"nodeType": "StructuredDocumentation",
"src": "756:129:10",
"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": "1273:4:10",
"parameters": {
"id": 8430,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8429,
"mutability": "mutable",
"name": "self",
"nameLocation": "1297:4:10",
"nodeType": "VariableDeclaration",
"scope": 8869,
"src": "1278:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8428,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8427,
"name": "StdStorage",
"nameLocations": [
"1278:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "1278:10:10"
},
"referencedDeclaration": 8374,
"src": "1278:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "1277:25:10"
},
"returnParameters": {
"id": 8433,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8432,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 8869,
"src": "1321:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8431,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1321:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1320:9:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 8889,
"nodeType": "FunctionDefinition",
"src": "4467:156:10",
"nodes": [],
"body": {
"id": 8888,
"nodeType": "Block",
"src": "4563:60:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 8884,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 8880,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8872,
"src": "4573:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8882,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4578:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 8371,
"src": "4573:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 8883,
"name": "_target",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8874,
"src": "4588:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4573:22:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8885,
"nodeType": "ExpressionStatement",
"src": "4573:22:10"
},
{
"expression": {
"id": 8886,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8872,
"src": "4612:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 8879,
"id": 8887,
"nodeType": "Return",
"src": "4605:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "target",
"nameLocation": "4476:6:10",
"parameters": {
"id": 8875,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8872,
"mutability": "mutable",
"name": "self",
"nameLocation": "4502:4:10",
"nodeType": "VariableDeclaration",
"scope": 8889,
"src": "4483:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8871,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8870,
"name": "StdStorage",
"nameLocations": [
"4483:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "4483:10:10"
},
"referencedDeclaration": 8374,
"src": "4483:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8874,
"mutability": "mutable",
"name": "_target",
"nameLocation": "4516:7:10",
"nodeType": "VariableDeclaration",
"scope": 8889,
"src": "4508:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8873,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4508:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4482:42:10"
},
"returnParameters": {
"id": 8879,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8878,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 8889,
"src": "4543:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8877,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8876,
"name": "StdStorage",
"nameLocations": [
"4543:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "4543:10:10"
},
"referencedDeclaration": 8374,
"src": "4543:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "4542:20:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 8909,
"nodeType": "FunctionDefinition",
"src": "4629:143:10",
"nodes": [],
"body": {
"id": 8908,
"nodeType": "Block",
"src": "4718:54:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 8904,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 8900,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8892,
"src": "4728:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8902,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4733:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8367,
"src": "4728:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 8903,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8894,
"src": "4740:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4728:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 8905,
"nodeType": "ExpressionStatement",
"src": "4728:16:10"
},
{
"expression": {
"id": 8906,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8892,
"src": "4761:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 8899,
"id": 8907,
"nodeType": "Return",
"src": "4754:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "4638:3:10",
"parameters": {
"id": 8895,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8892,
"mutability": "mutable",
"name": "self",
"nameLocation": "4661:4:10",
"nodeType": "VariableDeclaration",
"scope": 8909,
"src": "4642:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8891,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8890,
"name": "StdStorage",
"nameLocations": [
"4642:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "4642:10:10"
},
"referencedDeclaration": 8374,
"src": "4642:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8894,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "4674:4:10",
"nodeType": "VariableDeclaration",
"scope": 8909,
"src": "4667:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 8893,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4667:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "4641:38:10"
},
"returnParameters": {
"id": 8899,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8898,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 8909,
"src": "4698:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8897,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8896,
"name": "StdStorage",
"nameLocations": [
"4698:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "4698:10:10"
},
"referencedDeclaration": 8374,
"src": "4698:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "4697:20:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 8931,
"nodeType": "FunctionDefinition",
"src": "4778:156:10",
"nodes": [],
"body": {
"id": 8930,
"nodeType": "Block",
"src": "4874:60:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 8926,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 8920,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8912,
"src": "4884:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8922,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4889:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8367,
"src": "4884:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 8924,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8914,
"src": "4901:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 8923,
"name": "sigs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8425,
"src": "4896:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (string memory) pure returns (bytes4)"
}
},
"id": 8925,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4896:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4884:22:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 8927,
"nodeType": "ExpressionStatement",
"src": "4884:22:10"
},
{
"expression": {
"id": 8928,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8912,
"src": "4923:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 8919,
"id": 8929,
"nodeType": "Return",
"src": "4916:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "4787:3:10",
"parameters": {
"id": 8915,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8912,
"mutability": "mutable",
"name": "self",
"nameLocation": "4810:4:10",
"nodeType": "VariableDeclaration",
"scope": 8931,
"src": "4791:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8911,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8910,
"name": "StdStorage",
"nameLocations": [
"4791:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "4791:10:10"
},
"referencedDeclaration": 8374,
"src": "4791:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8914,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "4830:4:10",
"nodeType": "VariableDeclaration",
"scope": 8931,
"src": "4816:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 8913,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4816:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "4790:45:10"
},
"returnParameters": {
"id": 8919,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8918,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 8931,
"src": "4854:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8917,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8916,
"name": "StdStorage",
"nameLocations": [
"4854:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "4854:10:10"
},
"referencedDeclaration": 8374,
"src": "4854:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "4853:20:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 8962,
"nodeType": "FunctionDefinition",
"src": "4940:179:10",
"nodes": [],
"body": {
"id": 8961,
"nodeType": "Block",
"src": "5034:85:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 8953,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8936,
"src": "5084:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 8952,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5076:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 8951,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "5076:7:10",
"typeDescriptions": {}
}
},
"id": 8954,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5076:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 8950,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5068:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 8949,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5068:7:10",
"typeDescriptions": {}
}
},
"id": 8955,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5068:21:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8948,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5060:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 8947,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5060:7:10",
"typeDescriptions": {}
}
},
"id": 8956,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5060:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 8942,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8934,
"src": "5044:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8945,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5049:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 8365,
"src": "5044:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 8946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5055:4:10",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "5044:15:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 8957,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5044:47:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8958,
"nodeType": "ExpressionStatement",
"src": "5044:47:10"
},
{
"expression": {
"id": 8959,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8934,
"src": "5108:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 8941,
"id": 8960,
"nodeType": "Return",
"src": "5101:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "4949:8:10",
"parameters": {
"id": 8937,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8934,
"mutability": "mutable",
"name": "self",
"nameLocation": "4977:4:10",
"nodeType": "VariableDeclaration",
"scope": 8962,
"src": "4958:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8933,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8932,
"name": "StdStorage",
"nameLocations": [
"4958:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "4958:10:10"
},
"referencedDeclaration": 8374,
"src": "4958:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8936,
"mutability": "mutable",
"name": "who",
"nameLocation": "4991:3:10",
"nodeType": "VariableDeclaration",
"scope": 8962,
"src": "4983:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8935,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4983:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4957:38:10"
},
"returnParameters": {
"id": 8941,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8940,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 8962,
"src": "5014:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8939,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8938,
"name": "StdStorage",
"nameLocations": [
"5014:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5014:10:10"
},
"referencedDeclaration": 8374,
"src": "5014:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5013:20:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 8987,
"nodeType": "FunctionDefinition",
"src": "5125:161:10",
"nodes": [],
"body": {
"id": 8986,
"nodeType": "Block",
"src": "5219:67:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 8980,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8967,
"src": "5253:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8979,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5245:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 8978,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5245:7:10",
"typeDescriptions": {}
}
},
"id": 8981,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5245:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 8973,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8965,
"src": "5229:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 8976,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5234:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 8365,
"src": "5229:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 8977,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5240:4:10",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "5229:15:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 8982,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5229:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8983,
"nodeType": "ExpressionStatement",
"src": "5229:29:10"
},
{
"expression": {
"id": 8984,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8965,
"src": "5275:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 8972,
"id": 8985,
"nodeType": "Return",
"src": "5268:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "5134:8:10",
"parameters": {
"id": 8968,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8965,
"mutability": "mutable",
"name": "self",
"nameLocation": "5162:4:10",
"nodeType": "VariableDeclaration",
"scope": 8987,
"src": "5143:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8964,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8963,
"name": "StdStorage",
"nameLocations": [
"5143:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5143:10:10"
},
"referencedDeclaration": 8374,
"src": "5143:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8967,
"mutability": "mutable",
"name": "amt",
"nameLocation": "5176:3:10",
"nodeType": "VariableDeclaration",
"scope": 8987,
"src": "5168:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8966,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5168:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "5142:38:10"
},
"returnParameters": {
"id": 8972,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8971,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 8987,
"src": "5199:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8970,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8969,
"name": "StdStorage",
"nameLocations": [
"5199:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5199:10:10"
},
"referencedDeclaration": 8374,
"src": "5199:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5198:20:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9009,
"nodeType": "FunctionDefinition",
"src": "5292:152:10",
"nodes": [],
"body": {
"id": 9008,
"nodeType": "Block",
"src": "5386:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9003,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8992,
"src": "5412:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 8998,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8990,
"src": "5396:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9001,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5401:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 8365,
"src": "5396:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 9002,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5407:4:10",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "5396:15:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 9004,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5396:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9005,
"nodeType": "ExpressionStatement",
"src": "5396:20:10"
},
{
"expression": {
"id": 9006,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8990,
"src": "5433:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 8997,
"id": 9007,
"nodeType": "Return",
"src": "5426:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "5301:8:10",
"parameters": {
"id": 8993,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8990,
"mutability": "mutable",
"name": "self",
"nameLocation": "5329:4:10",
"nodeType": "VariableDeclaration",
"scope": 9009,
"src": "5310:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8989,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8988,
"name": "StdStorage",
"nameLocations": [
"5310:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5310:10:10"
},
"referencedDeclaration": 8374,
"src": "5310:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8992,
"mutability": "mutable",
"name": "key",
"nameLocation": "5343:3:10",
"nodeType": "VariableDeclaration",
"scope": 9009,
"src": "5335:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 8991,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5335:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "5309:38:10"
},
"returnParameters": {
"id": 8997,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8996,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9009,
"src": "5366:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 8995,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8994,
"name": "StdStorage",
"nameLocations": [
"5366:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5366:10:10"
},
"referencedDeclaration": 8374,
"src": "5366:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5365:20:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9029,
"nodeType": "FunctionDefinition",
"src": "5450:152:10",
"nodes": [],
"body": {
"id": 9028,
"nodeType": "Block",
"src": "5544:58:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 9024,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 9020,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9012,
"src": "5554:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9022,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "5559:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 8369,
"src": "5554:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 9023,
"name": "_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9014,
"src": "5568:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5554:20:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9025,
"nodeType": "ExpressionStatement",
"src": "5554:20:10"
},
{
"expression": {
"id": 9026,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9012,
"src": "5591:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9019,
"id": 9027,
"nodeType": "Return",
"src": "5584:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "depth",
"nameLocation": "5459:5:10",
"parameters": {
"id": 9015,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9012,
"mutability": "mutable",
"name": "self",
"nameLocation": "5484:4:10",
"nodeType": "VariableDeclaration",
"scope": 9029,
"src": "5465:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9011,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9010,
"name": "StdStorage",
"nameLocations": [
"5465:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5465:10:10"
},
"referencedDeclaration": 8374,
"src": "5465:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9014,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "5498:6:10",
"nodeType": "VariableDeclaration",
"scope": 9029,
"src": "5490:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9013,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5490:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "5464:41:10"
},
"returnParameters": {
"id": 9019,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9018,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9029,
"src": "5524:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9017,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9016,
"name": "StdStorage",
"nameLocations": [
"5524:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5524:10:10"
},
"referencedDeclaration": 8374,
"src": "5524:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5523:20:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9061,
"nodeType": "FunctionDefinition",
"src": "5608:194:10",
"nodes": [],
"body": {
"id": 9060,
"nodeType": "Block",
"src": "5678:124:10",
"nodes": [],
"statements": [
{
"assignments": [
9038
],
"declarations": [
{
"constant": false,
"id": 9038,
"mutability": "mutable",
"name": "t",
"nameLocation": "5696:1:10",
"nodeType": "VariableDeclaration",
"scope": 9060,
"src": "5688:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9037,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5688:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 9041,
"initialValue": {
"expression": {
"id": 9039,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9032,
"src": "5700:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9040,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5705:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 8371,
"src": "5700:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5688:24:10"
},
{
"assignments": [
9043
],
"declarations": [
{
"constant": false,
"id": 9043,
"mutability": "mutable",
"name": "s",
"nameLocation": "5730:1:10",
"nodeType": "VariableDeclaration",
"scope": 9060,
"src": "5722:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9042,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5722:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9047,
"initialValue": {
"arguments": [
{
"id": 9045,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9032,
"src": "5739:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 9044,
"name": "find",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8869,
"src": "5734:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 9046,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5734:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5722:22:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 9052,
"name": "t",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9038,
"src": "5780:1:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 9055,
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9043,
"src": "5791:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9054,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5783:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9053,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5783:7:10",
"typeDescriptions": {}
}
},
"id": 9056,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5783:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 9050,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8407,
"src": "5772:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 9051,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5775:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 11994,
"src": "5772:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 9057,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5772:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 9048,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "5761:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9049,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "5765:6:10",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "5761:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 9058,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5761:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 9036,
"id": 9059,
"nodeType": "Return",
"src": "5754:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read",
"nameLocation": "5617:4:10",
"parameters": {
"id": 9033,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9032,
"mutability": "mutable",
"name": "self",
"nameLocation": "5641:4:10",
"nodeType": "VariableDeclaration",
"scope": 9061,
"src": "5622:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9031,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9030,
"name": "StdStorage",
"nameLocations": [
"5622:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5622:10:10"
},
"referencedDeclaration": 8374,
"src": "5622:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5621:25:10"
},
"returnParameters": {
"id": 9036,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9035,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9061,
"src": "5664:12:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9034,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5664:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "5663:14:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"id": 9080,
"nodeType": "FunctionDefinition",
"src": "5808:131:10",
"nodes": [],
"body": {
"id": 9079,
"nodeType": "Block",
"src": "5882:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 9072,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9064,
"src": "5915:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 9071,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9061,
"src": "5910:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 9073,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5910:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 9075,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5923:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9074,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5923:7:10",
"typeDescriptions": {}
}
}
],
"id": 9076,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5922:9:10",
"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": 9069,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "5899:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9070,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "5903:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "5899:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 9077,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5899:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 9068,
"id": 9078,
"nodeType": "Return",
"src": "5892:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bytes32",
"nameLocation": "5817:12:10",
"parameters": {
"id": 9065,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9064,
"mutability": "mutable",
"name": "self",
"nameLocation": "5849:4:10",
"nodeType": "VariableDeclaration",
"scope": 9080,
"src": "5830:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9063,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9062,
"name": "StdStorage",
"nameLocations": [
"5830:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5830:10:10"
},
"referencedDeclaration": 8374,
"src": "5830:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5829:25:10"
},
"returnParameters": {
"id": 9068,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9067,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9080,
"src": "5873:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9066,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5873:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "5872:9:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9111,
"nodeType": "FunctionDefinition",
"src": "5945:279:10",
"nodes": [],
"body": {
"id": 9110,
"nodeType": "Block",
"src": "6013:211:10",
"nodes": [],
"statements": [
{
"assignments": [
9089
],
"declarations": [
{
"constant": false,
"id": 9089,
"mutability": "mutable",
"name": "v",
"nameLocation": "6030:1:10",
"nodeType": "VariableDeclaration",
"scope": 9110,
"src": "6023:8:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 9088,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "6023:6:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"id": 9093,
"initialValue": {
"arguments": [
{
"id": 9091,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9083,
"src": "6043:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 9090,
"name": "read_int",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9168,
"src": "6034:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_int256_$",
"typeString": "function (struct StdStorage storage pointer) returns (int256)"
}
},
"id": 9092,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6034:14:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6023:25:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 9096,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9094,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9089,
"src": "6062:1:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 9095,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6067:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6062:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9099,
"nodeType": "IfStatement",
"src": "6058:24:10",
"trueBody": {
"expression": {
"hexValue": "66616c7365",
"id": 9097,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6077:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 9087,
"id": 9098,
"nodeType": "Return",
"src": "6070:12:10"
}
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 9102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9100,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9089,
"src": "6096:1:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "31",
"id": 9101,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6101:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "6096:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9105,
"nodeType": "IfStatement",
"src": "6092:23:10",
"trueBody": {
"expression": {
"hexValue": "74727565",
"id": 9103,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6111:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 9087,
"id": 9104,
"nodeType": "Return",
"src": "6104:11:10"
}
},
{
"expression": {
"arguments": [
{
"hexValue": "73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f74206465636f64652e204d616b65207375726520796f75206172652072656164696e67206120626f6f6c2e",
"id": 9107,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6132:84:10",
"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": 9106,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
"src": "6125:6:10",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 9108,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6125:92:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9109,
"nodeType": "ExpressionStatement",
"src": "6125:92:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bool",
"nameLocation": "5954:9:10",
"parameters": {
"id": 9084,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9083,
"mutability": "mutable",
"name": "self",
"nameLocation": "5983:4:10",
"nodeType": "VariableDeclaration",
"scope": 9111,
"src": "5964:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9082,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9081,
"name": "StdStorage",
"nameLocations": [
"5964:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "5964:10:10"
},
"referencedDeclaration": 8374,
"src": "5964:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5963:25:10"
},
"returnParameters": {
"id": 9087,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9086,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9111,
"src": "6007:4:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 9085,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6007:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "6006:6:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9130,
"nodeType": "FunctionDefinition",
"src": "6230:131:10",
"nodes": [],
"body": {
"id": 9129,
"nodeType": "Block",
"src": "6304:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 9122,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9114,
"src": "6337:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 9121,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9061,
"src": "6332:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 9123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6332:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 9125,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6345:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 9124,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6345:7:10",
"typeDescriptions": {}
}
}
],
"id": 9126,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6344:9:10",
"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": 9119,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6321:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9120,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6325:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "6321:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 9127,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6321:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 9118,
"id": 9128,
"nodeType": "Return",
"src": "6314:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_address",
"nameLocation": "6239:12:10",
"parameters": {
"id": 9115,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9114,
"mutability": "mutable",
"name": "self",
"nameLocation": "6271:4:10",
"nodeType": "VariableDeclaration",
"scope": 9130,
"src": "6252:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9113,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9112,
"name": "StdStorage",
"nameLocations": [
"6252:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "6252:10:10"
},
"referencedDeclaration": 8374,
"src": "6252:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "6251:25:10"
},
"returnParameters": {
"id": 9118,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9117,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9130,
"src": "6295:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9116,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6295:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6294:9:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9149,
"nodeType": "FunctionDefinition",
"src": "6367:128:10",
"nodes": [],
"body": {
"id": 9148,
"nodeType": "Block",
"src": "6438:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 9141,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9133,
"src": "6471:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 9140,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9061,
"src": "6466:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 9142,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6466:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 9144,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6479:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 9143,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6479:7:10",
"typeDescriptions": {}
}
}
],
"id": 9145,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6478:9:10",
"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": 9138,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6455:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9139,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6459:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "6455:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 9146,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6455:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 9137,
"id": 9147,
"nodeType": "Return",
"src": "6448:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_uint",
"nameLocation": "6376:9:10",
"parameters": {
"id": 9134,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9133,
"mutability": "mutable",
"name": "self",
"nameLocation": "6405:4:10",
"nodeType": "VariableDeclaration",
"scope": 9149,
"src": "6386:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9132,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9131,
"name": "StdStorage",
"nameLocations": [
"6386:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "6386:10:10"
},
"referencedDeclaration": 8374,
"src": "6386:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "6385:25:10"
},
"returnParameters": {
"id": 9137,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9136,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9149,
"src": "6429:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9135,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6429:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "6428:9:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9168,
"nodeType": "FunctionDefinition",
"src": "6501:125:10",
"nodes": [],
"body": {
"id": 9167,
"nodeType": "Block",
"src": "6570:56:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 9160,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9152,
"src": "6603:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 9159,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9061,
"src": "6598:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 9161,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6598:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 9163,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6611:6:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_int256_$",
"typeString": "type(int256)"
},
"typeName": {
"id": 9162,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "6611:6:10",
"typeDescriptions": {}
}
}
],
"id": 9164,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6610:8:10",
"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": 9157,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6587:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9158,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6591:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "6587:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 9165,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6587:32:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"functionReturnParameters": 9156,
"id": 9166,
"nodeType": "Return",
"src": "6580:39:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_int",
"nameLocation": "6510:8:10",
"parameters": {
"id": 9153,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9152,
"mutability": "mutable",
"name": "self",
"nameLocation": "6538:4:10",
"nodeType": "VariableDeclaration",
"scope": 9168,
"src": "6519:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9151,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9150,
"name": "StdStorage",
"nameLocations": [
"6519:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "6519:10:10"
},
"referencedDeclaration": 8374,
"src": "6519:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "6518:25:10"
},
"returnParameters": {
"id": 9156,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9155,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9168,
"src": "6562:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 9154,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "6562:6:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "6561:8:10"
},
"scope": 9266,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9224,
"nodeType": "FunctionDefinition",
"src": "6632:304:10",
"nodes": [],
"body": {
"id": 9223,
"nodeType": "Block",
"src": "6719:217:10",
"nodes": [],
"statements": [
{
"assignments": [
9178
],
"declarations": [
{
"constant": false,
"id": 9178,
"mutability": "mutable",
"name": "out",
"nameLocation": "6737:3:10",
"nodeType": "VariableDeclaration",
"scope": 9223,
"src": "6729:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9177,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6729:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9179,
"nodeType": "VariableDeclarationStatement",
"src": "6729:11:10"
},
{
"assignments": [
9181
],
"declarations": [
{
"constant": false,
"id": 9181,
"mutability": "mutable",
"name": "max",
"nameLocation": "6759:3:10",
"nodeType": "VariableDeclaration",
"scope": 9223,
"src": "6751:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9180,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6751:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9190,
"initialValue": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9185,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 9182,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9170,
"src": "6765:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 9183,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6767:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "6765:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "3332",
"id": 9184,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6776:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "6765:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"expression": {
"id": 9187,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9170,
"src": "6786:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 9188,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6788:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "6786:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9189,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "6765:29:10",
"trueExpression": {
"hexValue": "3332",
"id": 9186,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6781:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6751:43:10"
},
{
"body": {
"id": 9219,
"nodeType": "Block",
"src": "6838:72:10",
"statements": [
{
"expression": {
"id": 9217,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 9201,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9178,
"src": "6852:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "|=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 9216,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 9210,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 9204,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9170,
"src": "6867:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 9208,
"indexExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9207,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9205,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9172,
"src": "6869:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 9206,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9192,
"src": "6878:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6869:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6867:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "&",
"rightExpression": {
"hexValue": "30784646",
"id": 9209,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6883:4:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xFF"
},
"src": "6867:20:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"id": 9203,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6859:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9202,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6859:7:10",
"typeDescriptions": {}
}
},
"id": 9211,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6859:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9212,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9192,
"src": "6893:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "38",
"id": 9213,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6897:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "6893:5:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 9215,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6892:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6859:40:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "6852:47:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 9218,
"nodeType": "ExpressionStatement",
"src": "6852:47:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9197,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9195,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9192,
"src": "6824:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 9196,
"name": "max",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9181,
"src": "6828:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6824:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9220,
"initializationExpression": {
"assignments": [
9192
],
"declarations": [
{
"constant": false,
"id": 9192,
"mutability": "mutable",
"name": "i",
"nameLocation": "6817:1:10",
"nodeType": "VariableDeclaration",
"scope": 9220,
"src": "6809:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9191,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6809:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9194,
"initialValue": {
"hexValue": "30",
"id": 9193,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6821:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "6809:13:10"
},
"isSimpleCounterLoop": true,
"loopExpression": {
"expression": {
"id": 9199,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "6833:3:10",
"subExpression": {
"id": 9198,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9192,
"src": "6833:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9200,
"nodeType": "ExpressionStatement",
"src": "6833:3:10"
},
"nodeType": "ForStatement",
"src": "6804:106:10"
},
{
"expression": {
"id": 9221,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9178,
"src": "6926:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 9176,
"id": 9222,
"nodeType": "Return",
"src": "6919:10:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "bytesToBytes32",
"nameLocation": "6641:14:10",
"parameters": {
"id": 9173,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9170,
"mutability": "mutable",
"name": "b",
"nameLocation": "6669:1:10",
"nodeType": "VariableDeclaration",
"scope": 9224,
"src": "6656:14:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9169,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6656:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9172,
"mutability": "mutable",
"name": "offset",
"nameLocation": "6680:6:10",
"nodeType": "VariableDeclaration",
"scope": 9224,
"src": "6672:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9171,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6672:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "6655:32:10"
},
"returnParameters": {
"id": 9176,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9175,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9224,
"src": "6710:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9174,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6710:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "6709:9:10"
},
"scope": 9266,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
},
{
"id": 9265,
"nodeType": "FunctionDefinition",
"src": "6942:393:10",
"nodes": [],
"body": {
"id": 9264,
"nodeType": "Block",
"src": "7015:320:10",
"nodes": [],
"statements": [
{
"assignments": [
9233
],
"declarations": [
{
"constant": false,
"id": 9233,
"mutability": "mutable",
"name": "result",
"nameLocation": "7038:6:10",
"nodeType": "VariableDeclaration",
"scope": 9264,
"src": "7025:19:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9232,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7025:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 9241,
"initialValue": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9239,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 9236,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9227,
"src": "7057:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 9237,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7059:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "7057:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "3332",
"id": 9238,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7068:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "7057:13:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9235,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "7047:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 9234,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7051:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 9240,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7047:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7025:46:10"
},
{
"body": {
"id": 9260,
"nodeType": "Block",
"src": "7120:185:10",
"statements": [
{
"assignments": [
9254
],
"declarations": [
{
"constant": false,
"id": 9254,
"mutability": "mutable",
"name": "k",
"nameLocation": "7142:1:10",
"nodeType": "VariableDeclaration",
"scope": 9260,
"src": "7134:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9253,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7134:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9258,
"initialValue": {
"baseExpression": {
"id": 9255,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9227,
"src": "7146:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 9257,
"indexExpression": {
"id": 9256,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9243,
"src": "7148:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7146:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7134:16:10"
},
{
"AST": {
"nativeSrc": "7220:75:10",
"nodeType": "YulBlock",
"src": "7220:75:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "result",
"nativeSrc": "7249:6:10",
"nodeType": "YulIdentifier",
"src": "7249:6:10"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7261:2:10",
"nodeType": "YulLiteral",
"src": "7261:2:10",
"type": "",
"value": "32"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7269:2:10",
"nodeType": "YulLiteral",
"src": "7269:2:10",
"type": "",
"value": "32"
},
{
"name": "i",
"nativeSrc": "7273:1:10",
"nodeType": "YulIdentifier",
"src": "7273:1:10"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7265:3:10",
"nodeType": "YulIdentifier",
"src": "7265:3:10"
},
"nativeSrc": "7265:10:10",
"nodeType": "YulFunctionCall",
"src": "7265:10:10"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7257:3:10",
"nodeType": "YulIdentifier",
"src": "7257:3:10"
},
"nativeSrc": "7257:19:10",
"nodeType": "YulFunctionCall",
"src": "7257:19:10"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7245:3:10",
"nodeType": "YulIdentifier",
"src": "7245:3:10"
},
"nativeSrc": "7245:32:10",
"nodeType": "YulFunctionCall",
"src": "7245:32:10"
},
{
"name": "k",
"nativeSrc": "7279:1:10",
"nodeType": "YulIdentifier",
"src": "7279:1:10"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7238:6:10",
"nodeType": "YulIdentifier",
"src": "7238:6:10"
},
"nativeSrc": "7238:43:10",
"nodeType": "YulFunctionCall",
"src": "7238:43:10"
},
"nativeSrc": "7238:43:10",
"nodeType": "YulExpressionStatement",
"src": "7238:43:10"
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "paris",
"externalReferences": [
{
"declaration": 9243,
"isOffset": false,
"isSlot": false,
"src": "7273:1:10",
"valueSize": 1
},
{
"declaration": 9254,
"isOffset": false,
"isSlot": false,
"src": "7279:1:10",
"valueSize": 1
},
{
"declaration": 9233,
"isOffset": false,
"isSlot": false,
"src": "7249:6:10",
"valueSize": 1
}
],
"id": 9259,
"nodeType": "InlineAssembly",
"src": "7211:84:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9249,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9246,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9243,
"src": "7101:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 9247,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9227,
"src": "7105:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 9248,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7107:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "7105:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7101:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9261,
"initializationExpression": {
"assignments": [
9243
],
"declarations": [
{
"constant": false,
"id": 9243,
"mutability": "mutable",
"name": "i",
"nameLocation": "7094:1:10",
"nodeType": "VariableDeclaration",
"scope": 9261,
"src": "7086:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9242,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7086:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9245,
"initialValue": {
"hexValue": "30",
"id": 9244,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7098:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "7086:13:10"
},
"isSimpleCounterLoop": true,
"loopExpression": {
"expression": {
"id": 9251,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7115:3:10",
"subExpression": {
"id": 9250,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9243,
"src": "7115:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9252,
"nodeType": "ExpressionStatement",
"src": "7115:3:10"
},
"nodeType": "ForStatement",
"src": "7081:224:10"
},
{
"expression": {
"id": 9262,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9233,
"src": "7322:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 9231,
"id": 9263,
"nodeType": "Return",
"src": "7315:13:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "flatten",
"nameLocation": "6951:7:10",
"parameters": {
"id": 9228,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9227,
"mutability": "mutable",
"name": "b",
"nameLocation": "6976:1:10",
"nodeType": "VariableDeclaration",
"scope": 9265,
"src": "6959:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 9225,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6959:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 9226,
"nodeType": "ArrayTypeName",
"src": "6959:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"src": "6958:20:10"
},
"returnParameters": {
"id": 9231,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9230,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9265,
"src": "7001:12:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9229,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7001:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "7000:14:10"
},
"scope": 9266,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "stdStorageSafe",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
9266
],
"name": "stdStorageSafe",
"nameLocation": "376:14:10",
"scope": 9828,
"usedErrors": [],
"usedEvents": [
8384,
8390
]
},
{
"id": 9827,
"nodeType": "ContractDefinition",
"src": "7339:4665:10",
"nodes": [
{
"id": 9283,
"nodeType": "VariableDeclaration",
"src": "7364:84:10",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "vm",
"nameLocation": "7384:2:10",
"scope": 9827,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
},
"typeName": {
"id": 9268,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9267,
"name": "Vm",
"nameLocations": [
"7364:2:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13464,
"src": "7364:2:10"
},
"referencedDeclaration": 13464,
"src": "7364:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"hexValue": "6865766d20636865617420636f6465",
"id": 9277,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7426:17:10",
"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": 9276,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "7416:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 9278,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7416:28:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 9275,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7408:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 9274,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7408:7:10",
"typeDescriptions": {}
}
},
"id": 9279,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7408:37:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9273,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7400:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 9272,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "7400:7:10",
"typeDescriptions": {}
}
},
"id": 9280,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7400:46:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 9271,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7392:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 9270,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7392:7:10",
"typeDescriptions": {}
}
},
"id": 9281,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7392:55:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 9269,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 13464,
"src": "7389:2:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Vm_$13464_$",
"typeString": "type(contract Vm)"
}
},
"id": 9282,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7389:59:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"visibility": "private"
},
{
"id": 9296,
"nodeType": "FunctionDefinition",
"src": "7455:118:10",
"nodes": [],
"body": {
"id": 9295,
"nodeType": "Block",
"src": "7522:51:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9292,
"name": "sigStr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9285,
"src": "7559:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 9290,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "7539:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9291,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7554:4:10",
"memberName": "sigs",
"nodeType": "MemberAccess",
"referencedDeclaration": 8425,
"src": "7539:19:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (string memory) pure returns (bytes4)"
}
},
"id": 9293,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7539:27:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 9289,
"id": 9294,
"nodeType": "Return",
"src": "7532:34:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sigs",
"nameLocation": "7464:4:10",
"parameters": {
"id": 9286,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9285,
"mutability": "mutable",
"name": "sigStr",
"nameLocation": "7483:6:10",
"nodeType": "VariableDeclaration",
"scope": 9296,
"src": "7469:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 9284,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7469:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "7468:22:10"
},
"returnParameters": {
"id": 9289,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9288,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9296,
"src": "7514:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 9287,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "7514:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "7513:8:10"
},
"scope": 9827,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 9310,
"nodeType": "FunctionDefinition",
"src": "7579:115:10",
"nodes": [],
"body": {
"id": 9309,
"nodeType": "Block",
"src": "7645:49:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9306,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9299,
"src": "7682:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 9304,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "7662:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9305,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7677:4:10",
"memberName": "find",
"nodeType": "MemberAccess",
"referencedDeclaration": 8869,
"src": "7662:19:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 9307,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7662:25:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 9303,
"id": 9308,
"nodeType": "Return",
"src": "7655:32:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "find",
"nameLocation": "7588:4:10",
"parameters": {
"id": 9300,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9299,
"mutability": "mutable",
"name": "self",
"nameLocation": "7612:4:10",
"nodeType": "VariableDeclaration",
"scope": 9310,
"src": "7593:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9298,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9297,
"name": "StdStorage",
"nameLocations": [
"7593:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "7593:10:10"
},
"referencedDeclaration": 8374,
"src": "7593:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "7592:25:10"
},
"returnParameters": {
"id": 9303,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9302,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9310,
"src": "7636:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9301,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7636:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "7635:9:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9328,
"nodeType": "FunctionDefinition",
"src": "7700:156:10",
"nodes": [],
"body": {
"id": 9327,
"nodeType": "Block",
"src": "7796:60:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9323,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9313,
"src": "7835:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9324,
"name": "_target",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9315,
"src": "7841:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 9321,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "7813:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9322,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7828:6:10",
"memberName": "target",
"nodeType": "MemberAccess",
"referencedDeclaration": 8889,
"src": "7813:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$8374_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 9325,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7813:36:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9320,
"id": 9326,
"nodeType": "Return",
"src": "7806:43:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "target",
"nameLocation": "7709:6:10",
"parameters": {
"id": 9316,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9313,
"mutability": "mutable",
"name": "self",
"nameLocation": "7735:4:10",
"nodeType": "VariableDeclaration",
"scope": 9328,
"src": "7716:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9312,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9311,
"name": "StdStorage",
"nameLocations": [
"7716:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "7716:10:10"
},
"referencedDeclaration": 8374,
"src": "7716:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9315,
"mutability": "mutable",
"name": "_target",
"nameLocation": "7749:7:10",
"nodeType": "VariableDeclaration",
"scope": 9328,
"src": "7741:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9314,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7741:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7715:42:10"
},
"returnParameters": {
"id": 9320,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9319,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9328,
"src": "7776:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9318,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9317,
"name": "StdStorage",
"nameLocations": [
"7776:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "7776:10:10"
},
"referencedDeclaration": 8374,
"src": "7776:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "7775:20:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9346,
"nodeType": "FunctionDefinition",
"src": "7862:143:10",
"nodes": [],
"body": {
"id": 9345,
"nodeType": "Block",
"src": "7951:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9341,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9331,
"src": "7987:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9342,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9333,
"src": "7993:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"id": 9339,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "7968:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9340,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7983:3:10",
"memberName": "sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8909,
"src": "7968:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$8374_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"
}
},
"id": 9343,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7968:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9338,
"id": 9344,
"nodeType": "Return",
"src": "7961:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "7871:3:10",
"parameters": {
"id": 9334,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9331,
"mutability": "mutable",
"name": "self",
"nameLocation": "7894:4:10",
"nodeType": "VariableDeclaration",
"scope": 9346,
"src": "7875:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9330,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9329,
"name": "StdStorage",
"nameLocations": [
"7875:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "7875:10:10"
},
"referencedDeclaration": 8374,
"src": "7875:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9333,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "7907:4:10",
"nodeType": "VariableDeclaration",
"scope": 9346,
"src": "7900:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 9332,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "7900:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "7874:38:10"
},
"returnParameters": {
"id": 9338,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9337,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9346,
"src": "7931:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9336,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9335,
"name": "StdStorage",
"nameLocations": [
"7931:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "7931:10:10"
},
"referencedDeclaration": 8374,
"src": "7931:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "7930:20:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9364,
"nodeType": "FunctionDefinition",
"src": "8011:150:10",
"nodes": [],
"body": {
"id": 9363,
"nodeType": "Block",
"src": "8107:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9359,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9349,
"src": "8143:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9360,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9351,
"src": "8149:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 9357,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "8124:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9358,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8139:3:10",
"memberName": "sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8931,
"src": "8124:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_string_memory_ptr_$returns$_t_struct$_StdStorage_$8374_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,string memory) returns (struct StdStorage storage pointer)"
}
},
"id": 9361,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8124:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9356,
"id": 9362,
"nodeType": "Return",
"src": "8117:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "8020:3:10",
"parameters": {
"id": 9352,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9349,
"mutability": "mutable",
"name": "self",
"nameLocation": "8043:4:10",
"nodeType": "VariableDeclaration",
"scope": 9364,
"src": "8024:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9348,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9347,
"name": "StdStorage",
"nameLocations": [
"8024:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8024:10:10"
},
"referencedDeclaration": 8374,
"src": "8024:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9351,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "8063:4:10",
"nodeType": "VariableDeclaration",
"scope": 9364,
"src": "8049:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 9350,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "8049:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "8023:45:10"
},
"returnParameters": {
"id": 9356,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9355,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9364,
"src": "8087:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9354,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9353,
"name": "StdStorage",
"nameLocations": [
"8087:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8087:10:10"
},
"referencedDeclaration": 8374,
"src": "8087:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8086:20:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9382,
"nodeType": "FunctionDefinition",
"src": "8167:152:10",
"nodes": [],
"body": {
"id": 9381,
"nodeType": "Block",
"src": "8261:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9377,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9367,
"src": "8302:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9378,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9369,
"src": "8308:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 9375,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "8278:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9376,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8293:8:10",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 8962,
"src": "8278:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$8374_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 9379,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8278:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9374,
"id": 9380,
"nodeType": "Return",
"src": "8271:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "8176:8:10",
"parameters": {
"id": 9370,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9367,
"mutability": "mutable",
"name": "self",
"nameLocation": "8204:4:10",
"nodeType": "VariableDeclaration",
"scope": 9382,
"src": "8185:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9366,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9365,
"name": "StdStorage",
"nameLocations": [
"8185:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8185:10:10"
},
"referencedDeclaration": 8374,
"src": "8185:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9369,
"mutability": "mutable",
"name": "who",
"nameLocation": "8218:3:10",
"nodeType": "VariableDeclaration",
"scope": 9382,
"src": "8210:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9368,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8210:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "8184:38:10"
},
"returnParameters": {
"id": 9374,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9373,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9382,
"src": "8241:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9372,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9371,
"name": "StdStorage",
"nameLocations": [
"8241:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8241:10:10"
},
"referencedDeclaration": 8374,
"src": "8241:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8240:20:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9400,
"nodeType": "FunctionDefinition",
"src": "8325:152:10",
"nodes": [],
"body": {
"id": 9399,
"nodeType": "Block",
"src": "8419:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9395,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9385,
"src": "8460:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9396,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9387,
"src": "8466:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 9393,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "8436:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9394,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8451:8:10",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 8987,
"src": "8436:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$8374_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"
}
},
"id": 9397,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8436:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9392,
"id": 9398,
"nodeType": "Return",
"src": "8429:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "8334:8:10",
"parameters": {
"id": 9388,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9385,
"mutability": "mutable",
"name": "self",
"nameLocation": "8362:4:10",
"nodeType": "VariableDeclaration",
"scope": 9400,
"src": "8343:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9384,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9383,
"name": "StdStorage",
"nameLocations": [
"8343:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8343:10:10"
},
"referencedDeclaration": 8374,
"src": "8343:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9387,
"mutability": "mutable",
"name": "amt",
"nameLocation": "8376:3:10",
"nodeType": "VariableDeclaration",
"scope": 9400,
"src": "8368:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9386,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8368:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "8342:38:10"
},
"returnParameters": {
"id": 9392,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9391,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9400,
"src": "8399:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9390,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9389,
"name": "StdStorage",
"nameLocations": [
"8399:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8399:10:10"
},
"referencedDeclaration": 8374,
"src": "8399:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8398:20:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9418,
"nodeType": "FunctionDefinition",
"src": "8483:152:10",
"nodes": [],
"body": {
"id": 9417,
"nodeType": "Block",
"src": "8577:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9413,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9403,
"src": "8618:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9414,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9405,
"src": "8624:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 9411,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "8594:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9412,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8609:8:10",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 9009,
"src": "8594:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_bytes32_$returns$_t_struct$_StdStorage_$8374_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,bytes32) returns (struct StdStorage storage pointer)"
}
},
"id": 9415,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8594:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9410,
"id": 9416,
"nodeType": "Return",
"src": "8587:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "8492:8:10",
"parameters": {
"id": 9406,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9403,
"mutability": "mutable",
"name": "self",
"nameLocation": "8520:4:10",
"nodeType": "VariableDeclaration",
"scope": 9418,
"src": "8501:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9402,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9401,
"name": "StdStorage",
"nameLocations": [
"8501:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8501:10:10"
},
"referencedDeclaration": 8374,
"src": "8501:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9405,
"mutability": "mutable",
"name": "key",
"nameLocation": "8534:3:10",
"nodeType": "VariableDeclaration",
"scope": 9418,
"src": "8526:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9404,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "8526:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "8500:38:10"
},
"returnParameters": {
"id": 9410,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9409,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9418,
"src": "8557:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9408,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9407,
"name": "StdStorage",
"nameLocations": [
"8557:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8557:10:10"
},
"referencedDeclaration": 8374,
"src": "8557:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8556:20:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9436,
"nodeType": "FunctionDefinition",
"src": "8641:152:10",
"nodes": [],
"body": {
"id": 9435,
"nodeType": "Block",
"src": "8735:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9431,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9421,
"src": "8773:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9432,
"name": "_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9423,
"src": "8779:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 9429,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "8752:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8767:5:10",
"memberName": "depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 9029,
"src": "8752:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$8374_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"
}
},
"id": 9433,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8752:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 9428,
"id": 9434,
"nodeType": "Return",
"src": "8745:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "depth",
"nameLocation": "8650:5:10",
"parameters": {
"id": 9424,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9421,
"mutability": "mutable",
"name": "self",
"nameLocation": "8675:4:10",
"nodeType": "VariableDeclaration",
"scope": 9436,
"src": "8656:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9420,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9419,
"name": "StdStorage",
"nameLocations": [
"8656:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8656:10:10"
},
"referencedDeclaration": 8374,
"src": "8656:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9423,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "8689:6:10",
"nodeType": "VariableDeclaration",
"scope": 9436,
"src": "8681:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9422,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8681:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "8655:41:10"
},
"returnParameters": {
"id": 9428,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9427,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9436,
"src": "8715:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9426,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9425,
"name": "StdStorage",
"nameLocations": [
"8715:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8715:10:10"
},
"referencedDeclaration": 8374,
"src": "8715:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8714:20:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9459,
"nodeType": "FunctionDefinition",
"src": "8799:138:10",
"nodes": [],
"body": {
"id": 9458,
"nodeType": "Block",
"src": "8869:68:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9445,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9439,
"src": "8893:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 9452,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9441,
"src": "8923:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 9451,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8915:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 9450,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "8915:7:10",
"typeDescriptions": {}
}
},
"id": 9453,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8915:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 9449,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8907:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 9448,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8907:7:10",
"typeDescriptions": {}
}
},
"id": 9454,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8907:21:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9447,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8899:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9446,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "8899:7:10",
"typeDescriptions": {}
}
},
"id": 9455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8899:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 9444,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
9459,
9476,
9514,
9659
],
"referencedDeclaration": 9659,
"src": "8879:13:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 9456,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8879:51:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9457,
"nodeType": "ExpressionStatement",
"src": "8879:51:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "8808:13:10",
"parameters": {
"id": 9442,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9439,
"mutability": "mutable",
"name": "self",
"nameLocation": "8841:4:10",
"nodeType": "VariableDeclaration",
"scope": 9459,
"src": "8822:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9438,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9437,
"name": "StdStorage",
"nameLocations": [
"8822:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8822:10:10"
},
"referencedDeclaration": 8374,
"src": "8822:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9441,
"mutability": "mutable",
"name": "who",
"nameLocation": "8855:3:10",
"nodeType": "VariableDeclaration",
"scope": 9459,
"src": "8847:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9440,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8847:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "8821:38:10"
},
"returnParameters": {
"id": 9443,
"nodeType": "ParameterList",
"parameters": [],
"src": "8869:0:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9476,
"nodeType": "FunctionDefinition",
"src": "8943:120:10",
"nodes": [],
"body": {
"id": 9475,
"nodeType": "Block",
"src": "9013:50:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9468,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9462,
"src": "9037:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"arguments": [
{
"id": 9471,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9464,
"src": "9051:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9470,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "9043:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9469,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9043:7:10",
"typeDescriptions": {}
}
},
"id": 9472,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9043:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 9467,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
9459,
9476,
9514,
9659
],
"referencedDeclaration": 9659,
"src": "9023:13:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 9473,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9023:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9474,
"nodeType": "ExpressionStatement",
"src": "9023:33:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "8952:13:10",
"parameters": {
"id": 9465,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9462,
"mutability": "mutable",
"name": "self",
"nameLocation": "8985:4:10",
"nodeType": "VariableDeclaration",
"scope": 9476,
"src": "8966:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9461,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9460,
"name": "StdStorage",
"nameLocations": [
"8966:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "8966:10:10"
},
"referencedDeclaration": 8374,
"src": "8966:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9464,
"mutability": "mutable",
"name": "amt",
"nameLocation": "8999:3:10",
"nodeType": "VariableDeclaration",
"scope": 9476,
"src": "8991:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9463,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8991:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "8965:38:10"
},
"returnParameters": {
"id": 9466,
"nodeType": "ParameterList",
"parameters": [],
"src": "9013:0:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9496,
"nodeType": "FunctionDefinition",
"src": "9069:132:10",
"nodes": [],
"body": {
"id": 9495,
"nodeType": "Block",
"src": "9142:59:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9485,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9479,
"src": "9166:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"arguments": [
{
"arguments": [
{
"id": 9490,
"name": "val",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9481,
"src": "9188:3:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int256",
"typeString": "int256"
}
],
"id": 9489,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "9180:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 9488,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9180:7:10",
"typeDescriptions": {}
}
},
"id": 9491,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9180:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9487,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "9172:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9486,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9172:7:10",
"typeDescriptions": {}
}
},
"id": 9492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9172:21:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 9484,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
9459,
9476,
9514,
9659
],
"referencedDeclaration": 9659,
"src": "9152:13:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 9493,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9152:42:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9494,
"nodeType": "ExpressionStatement",
"src": "9152:42:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write_int",
"nameLocation": "9078:17:10",
"parameters": {
"id": 9482,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9479,
"mutability": "mutable",
"name": "self",
"nameLocation": "9115:4:10",
"nodeType": "VariableDeclaration",
"scope": 9496,
"src": "9096:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9478,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9477,
"name": "StdStorage",
"nameLocations": [
"9096:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "9096:10:10"
},
"referencedDeclaration": 8374,
"src": "9096:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9481,
"mutability": "mutable",
"name": "val",
"nameLocation": "9128:3:10",
"nodeType": "VariableDeclaration",
"scope": 9496,
"src": "9121:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 9480,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "9121:6:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "9095:37:10"
},
"returnParameters": {
"id": 9483,
"nodeType": "ParameterList",
"parameters": [],
"src": "9142:0:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9514,
"nodeType": "FunctionDefinition",
"src": "9207:222:10",
"nodes": [],
"body": {
"id": 9513,
"nodeType": "Block",
"src": "9276:153:10",
"nodes": [],
"statements": [
{
"assignments": [
9505
],
"declarations": [
{
"constant": false,
"id": 9505,
"mutability": "mutable",
"name": "t",
"nameLocation": "9294:1:10",
"nodeType": "VariableDeclaration",
"scope": 9513,
"src": "9286:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9504,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9286:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9506,
"nodeType": "VariableDeclarationStatement",
"src": "9286:9:10"
},
{
"AST": {
"nativeSrc": "9357:34:10",
"nodeType": "YulBlock",
"src": "9357:34:10",
"statements": [
{
"nativeSrc": "9371:10:10",
"nodeType": "YulAssignment",
"src": "9371:10:10",
"value": {
"name": "write",
"nativeSrc": "9376:5:10",
"nodeType": "YulIdentifier",
"src": "9376:5:10"
},
"variableNames": [
{
"name": "t",
"nativeSrc": "9371:1:10",
"nodeType": "YulIdentifier",
"src": "9371:1:10"
}
]
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "paris",
"externalReferences": [
{
"declaration": 9505,
"isOffset": false,
"isSlot": false,
"src": "9371:1:10",
"valueSize": 1
},
{
"declaration": 9501,
"isOffset": false,
"isSlot": false,
"src": "9376:5:10",
"valueSize": 1
}
],
"id": 9507,
"nodeType": "InlineAssembly",
"src": "9348:43:10"
},
{
"expression": {
"arguments": [
{
"id": 9509,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9499,
"src": "9414:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 9510,
"name": "t",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9505,
"src": "9420:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 9508,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
9459,
9476,
9514,
9659
],
"referencedDeclaration": 9659,
"src": "9400:13:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 9511,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9400:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9512,
"nodeType": "ExpressionStatement",
"src": "9400:22:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "9216:13:10",
"parameters": {
"id": 9502,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9499,
"mutability": "mutable",
"name": "self",
"nameLocation": "9249:4:10",
"nodeType": "VariableDeclaration",
"scope": 9514,
"src": "9230:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9498,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9497,
"name": "StdStorage",
"nameLocations": [
"9230:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "9230:10:10"
},
"referencedDeclaration": 8374,
"src": "9230:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9501,
"mutability": "mutable",
"name": "write",
"nameLocation": "9260:5:10",
"nodeType": "VariableDeclaration",
"scope": 9514,
"src": "9255:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 9500,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9255:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "9229:37:10"
},
"returnParameters": {
"id": 9503,
"nodeType": "ParameterList",
"parameters": [],
"src": "9276:0:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9659,
"nodeType": "FunctionDefinition",
"src": "9435:1095:10",
"nodes": [],
"body": {
"id": 9658,
"nodeType": "Block",
"src": "9505:1025:10",
"nodes": [],
"statements": [
{
"assignments": [
9523
],
"declarations": [
{
"constant": false,
"id": 9523,
"mutability": "mutable",
"name": "who",
"nameLocation": "9523:3:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "9515:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9522,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9515:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 9526,
"initialValue": {
"expression": {
"id": 9524,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "9529:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9525,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9534:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 8371,
"src": "9529:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9515:26:10"
},
{
"assignments": [
9528
],
"declarations": [
{
"constant": false,
"id": 9528,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "9558:4:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "9551:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 9527,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "9551:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"id": 9531,
"initialValue": {
"expression": {
"id": 9529,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "9565:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9530,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9570:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8367,
"src": "9565:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9551:23:10"
},
{
"assignments": [
9533
],
"declarations": [
{
"constant": false,
"id": 9533,
"mutability": "mutable",
"name": "field_depth",
"nameLocation": "9592:11:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "9584:19:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9532,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9584:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9536,
"initialValue": {
"expression": {
"id": 9534,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "9606:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9535,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9611:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 8369,
"src": "9606:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9584:33:10"
},
{
"assignments": [
9541
],
"declarations": [
{
"constant": false,
"id": 9541,
"mutability": "mutable",
"name": "ins",
"nameLocation": "9644:3:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "9627:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 9539,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9627:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 9540,
"nodeType": "ArrayTypeName",
"src": "9627:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"id": 9544,
"initialValue": {
"expression": {
"id": 9542,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "9650:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9543,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9655:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 8365,
"src": "9650:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9627:33:10"
},
{
"assignments": [
9546
],
"declarations": [
{
"constant": false,
"id": 9546,
"mutability": "mutable",
"name": "cald",
"nameLocation": "9684:4:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "9671:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9545,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "9671:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 9554,
"initialValue": {
"arguments": [
{
"id": 9549,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9528,
"src": "9708:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"id": 9551,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9541,
"src": "9722:3:10",
"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": 9550,
"name": "flatten",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9826,
"src": "9714:7:10",
"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": 9552,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9714:12:10",
"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": 9547,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9691:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9548,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9695:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "9691:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 9553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9691:36:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9671:56:10"
},
{
"condition": {
"id": 9569,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "9741:69:10",
"subExpression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 9555,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "9742:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9556,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9747:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 8362,
"src": "9742:10:10",
"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": 9558,
"indexExpression": {
"id": 9557,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9523,
"src": "9753:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9742:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 9560,
"indexExpression": {
"id": 9559,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9528,
"src": "9758:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9742:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 9568,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 9564,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9541,
"src": "9791:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 9565,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9533,
"src": "9796:11:10",
"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": 9562,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9774:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9563,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9778:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "9774:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 9566,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9774:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 9561,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9764:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 9567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9764:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9742:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9575,
"nodeType": "IfStatement",
"src": "9737:110:10",
"trueBody": {
"id": 9574,
"nodeType": "Block",
"src": "9812:35:10",
"statements": [
{
"expression": {
"arguments": [
{
"id": 9571,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "9831:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 9570,
"name": "find",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9310,
"src": "9826:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 9572,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9826:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9573,
"nodeType": "ExpressionStatement",
"src": "9826:10:10"
}
]
}
},
{
"assignments": [
9577
],
"declarations": [
{
"constant": false,
"id": 9577,
"mutability": "mutable",
"name": "slot",
"nameLocation": "9864:4:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "9856:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9576,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9856:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9595,
"initialValue": {
"arguments": [
{
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 9580,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "9879:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9581,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9884:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 8354,
"src": "9879:10:10",
"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": 9583,
"indexExpression": {
"id": 9582,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9523,
"src": "9890:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9879:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 9585,
"indexExpression": {
"id": 9584,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9528,
"src": "9895:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9879:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 9593,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 9589,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9541,
"src": "9928:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 9590,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9533,
"src": "9933:11:10",
"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": 9587,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9911:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9588,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9915:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "9911:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 9591,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9911:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 9586,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9901:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 9592,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9901:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9879:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9579,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "9871:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9578,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9871:7:10",
"typeDescriptions": {}
}
},
"id": 9594,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9871:77:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9856:92:10"
},
{
"assignments": [
9597
],
"declarations": [
{
"constant": false,
"id": 9597,
"mutability": "mutable",
"name": "fdat",
"nameLocation": "9967:4:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "9959:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9596,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9959:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9598,
"nodeType": "VariableDeclarationStatement",
"src": "9959:12:10"
},
{
"id": 9615,
"nodeType": "Block",
"src": "9981:128:10",
"statements": [
{
"assignments": [
null,
9600
],
"declarations": [
null,
{
"constant": false,
"id": 9600,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "10011:4:10",
"nodeType": "VariableDeclaration",
"scope": 9615,
"src": "9998:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9599,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "9998:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 9605,
"initialValue": {
"arguments": [
{
"id": 9603,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9546,
"src": "10034:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 9601,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9523,
"src": "10019:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 9602,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10023:10:10",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "10019:14:10",
"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": 9604,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10019:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9995:44:10"
},
{
"expression": {
"id": 9613,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 9606,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9597,
"src": "10053:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 9608,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9600,
"src": "10075:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9611,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 9609,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10081:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 9610,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9533,
"src": "10086:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "10081:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9607,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9785,
"src": "10060:14:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 9612,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10060:38:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "10053:45:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 9614,
"nodeType": "ExpressionStatement",
"src": "10053:45:10"
}
]
},
{
"assignments": [
9617
],
"declarations": [
{
"constant": false,
"id": 9617,
"mutability": "mutable",
"name": "curr",
"nameLocation": "10126:4:10",
"nodeType": "VariableDeclaration",
"scope": 9658,
"src": "10118:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9616,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "10118:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9623,
"initialValue": {
"arguments": [
{
"id": 9620,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9523,
"src": "10141:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 9621,
"name": "slot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9577,
"src": "10146:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 9618,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9283,
"src": "10133:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 9619,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10136:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 11994,
"src": "10133:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 9622,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10133:18:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "10118:33:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 9626,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9624,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9597,
"src": "10166:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 9625,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9617,
"src": "10174:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "10166:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9633,
"nodeType": "IfStatement",
"src": "10162:218:10",
"trueBody": {
"id": 9632,
"nodeType": "Block",
"src": "10180:200:10",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 9628,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10219:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e",
"id": 9629,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10242:113:10",
"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": 9627,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "10194:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 9630,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10194:175:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9631,
"nodeType": "ExpressionStatement",
"src": "10194:175:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 9637,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9523,
"src": "10398:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 9638,
"name": "slot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9577,
"src": "10403:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 9639,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9519,
"src": "10409:3:10",
"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": 9634,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9283,
"src": "10389:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$13464",
"typeString": "contract Vm"
}
},
"id": 9636,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10392:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 13038,
"src": "10389:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 9640,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10389:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9641,
"nodeType": "ExpressionStatement",
"src": "10389:24:10"
},
{
"expression": {
"id": 9644,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10423:19:10",
"subExpression": {
"expression": {
"id": 9642,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "10430:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9643,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10435:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 8371,
"src": "10430:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9645,
"nodeType": "ExpressionStatement",
"src": "10423:19:10"
},
{
"expression": {
"id": 9648,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10452:16:10",
"subExpression": {
"expression": {
"id": 9646,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "10459:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9647,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10464:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 8367,
"src": "10459:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9649,
"nodeType": "ExpressionStatement",
"src": "10452:16:10"
},
{
"expression": {
"id": 9652,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10478:17:10",
"subExpression": {
"expression": {
"id": 9650,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "10485:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9651,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10490:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 8365,
"src": "10485:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9653,
"nodeType": "ExpressionStatement",
"src": "10478:17:10"
},
{
"expression": {
"id": 9656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10505:18:10",
"subExpression": {
"expression": {
"id": 9654,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9517,
"src": "10512:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 9655,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10517:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 8369,
"src": "10512:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9657,
"nodeType": "ExpressionStatement",
"src": "10505:18:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "9444:13:10",
"parameters": {
"id": 9520,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9517,
"mutability": "mutable",
"name": "self",
"nameLocation": "9477:4:10",
"nodeType": "VariableDeclaration",
"scope": 9659,
"src": "9458:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9516,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9515,
"name": "StdStorage",
"nameLocations": [
"9458:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "9458:10:10"
},
"referencedDeclaration": 8374,
"src": "9458:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9519,
"mutability": "mutable",
"name": "set",
"nameLocation": "9491:3:10",
"nodeType": "VariableDeclaration",
"scope": 9659,
"src": "9483:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9518,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9483:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "9457:38:10"
},
"returnParameters": {
"id": 9521,
"nodeType": "ParameterList",
"parameters": [],
"src": "9505:0:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9673,
"nodeType": "FunctionDefinition",
"src": "10536:131:10",
"nodes": [],
"body": {
"id": 9672,
"nodeType": "Block",
"src": "10610:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9669,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9662,
"src": "10655:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 9667,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "10627:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9668,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10642:12:10",
"memberName": "read_bytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 9080,
"src": "10627:27:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_bytes32_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes32)"
}
},
"id": 9670,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10627:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 9666,
"id": 9671,
"nodeType": "Return",
"src": "10620:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bytes32",
"nameLocation": "10545:12:10",
"parameters": {
"id": 9663,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9662,
"mutability": "mutable",
"name": "self",
"nameLocation": "10577:4:10",
"nodeType": "VariableDeclaration",
"scope": 9673,
"src": "10558:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9661,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9660,
"name": "StdStorage",
"nameLocations": [
"10558:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "10558:10:10"
},
"referencedDeclaration": 8374,
"src": "10558:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10557:25:10"
},
"returnParameters": {
"id": 9666,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9665,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9673,
"src": "10601:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9664,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "10601:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "10600:9:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9687,
"nodeType": "FunctionDefinition",
"src": "10673:122:10",
"nodes": [],
"body": {
"id": 9686,
"nodeType": "Block",
"src": "10741:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9683,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9676,
"src": "10783:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 9681,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "10758:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9682,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10773:9:10",
"memberName": "read_bool",
"nodeType": "MemberAccess",
"referencedDeclaration": 9111,
"src": "10758:24:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_bool_$",
"typeString": "function (struct StdStorage storage pointer) returns (bool)"
}
},
"id": 9684,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10758:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 9680,
"id": 9685,
"nodeType": "Return",
"src": "10751:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bool",
"nameLocation": "10682:9:10",
"parameters": {
"id": 9677,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9676,
"mutability": "mutable",
"name": "self",
"nameLocation": "10711:4:10",
"nodeType": "VariableDeclaration",
"scope": 9687,
"src": "10692:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9675,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9674,
"name": "StdStorage",
"nameLocations": [
"10692:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "10692:10:10"
},
"referencedDeclaration": 8374,
"src": "10692:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10691:25:10"
},
"returnParameters": {
"id": 9680,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9679,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9687,
"src": "10735:4:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 9678,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "10735:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "10734:6:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9701,
"nodeType": "FunctionDefinition",
"src": "10801:131:10",
"nodes": [],
"body": {
"id": 9700,
"nodeType": "Block",
"src": "10875:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9697,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9690,
"src": "10920:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 9695,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "10892:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9696,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10907:12:10",
"memberName": "read_address",
"nodeType": "MemberAccess",
"referencedDeclaration": 9130,
"src": "10892:27:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_address_$",
"typeString": "function (struct StdStorage storage pointer) returns (address)"
}
},
"id": 9698,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10892:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 9694,
"id": 9699,
"nodeType": "Return",
"src": "10885:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_address",
"nameLocation": "10810:12:10",
"parameters": {
"id": 9691,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9690,
"mutability": "mutable",
"name": "self",
"nameLocation": "10842:4:10",
"nodeType": "VariableDeclaration",
"scope": 9701,
"src": "10823:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9689,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9688,
"name": "StdStorage",
"nameLocations": [
"10823:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "10823:10:10"
},
"referencedDeclaration": 8374,
"src": "10823:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10822:25:10"
},
"returnParameters": {
"id": 9694,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9693,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9701,
"src": "10866:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9692,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10866:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "10865:9:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9715,
"nodeType": "FunctionDefinition",
"src": "10938:125:10",
"nodes": [],
"body": {
"id": 9714,
"nodeType": "Block",
"src": "11009:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9711,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9704,
"src": "11051:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 9709,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "11026:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9710,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11041:9:10",
"memberName": "read_uint",
"nodeType": "MemberAccess",
"referencedDeclaration": 9149,
"src": "11026:24:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 9712,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11026:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 9708,
"id": 9713,
"nodeType": "Return",
"src": "11019:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_uint",
"nameLocation": "10947:9:10",
"parameters": {
"id": 9705,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9704,
"mutability": "mutable",
"name": "self",
"nameLocation": "10976:4:10",
"nodeType": "VariableDeclaration",
"scope": 9715,
"src": "10957:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9703,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9702,
"name": "StdStorage",
"nameLocations": [
"10957:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "10957:10:10"
},
"referencedDeclaration": 8374,
"src": "10957:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10956:25:10"
},
"returnParameters": {
"id": 9708,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9707,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9715,
"src": "11000:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9706,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11000:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "10999:9:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9729,
"nodeType": "FunctionDefinition",
"src": "11069:122:10",
"nodes": [],
"body": {
"id": 9728,
"nodeType": "Block",
"src": "11138:53:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 9725,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9718,
"src": "11179:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 9723,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9266,
"src": "11155:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$9266_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 9724,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11170:8:10",
"memberName": "read_int",
"nodeType": "MemberAccess",
"referencedDeclaration": 9168,
"src": "11155:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$8374_storage_ptr_$returns$_t_int256_$",
"typeString": "function (struct StdStorage storage pointer) returns (int256)"
}
},
"id": 9726,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11155:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"functionReturnParameters": 9722,
"id": 9727,
"nodeType": "Return",
"src": "11148:36:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_int",
"nameLocation": "11078:8:10",
"parameters": {
"id": 9719,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9718,
"mutability": "mutable",
"name": "self",
"nameLocation": "11106:4:10",
"nodeType": "VariableDeclaration",
"scope": 9729,
"src": "11087:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 9717,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9716,
"name": "StdStorage",
"nameLocations": [
"11087:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8374,
"src": "11087:10:10"
},
"referencedDeclaration": 8374,
"src": "11087:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$8374_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "11086:25:10"
},
"returnParameters": {
"id": 9722,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9721,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9729,
"src": "11130:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 9720,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "11130:6:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "11129:8:10"
},
"scope": 9827,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 9785,
"nodeType": "FunctionDefinition",
"src": "11248:304:10",
"nodes": [],
"body": {
"id": 9784,
"nodeType": "Block",
"src": "11335:217:10",
"nodes": [],
"statements": [
{
"assignments": [
9739
],
"declarations": [
{
"constant": false,
"id": 9739,
"mutability": "mutable",
"name": "out",
"nameLocation": "11353:3:10",
"nodeType": "VariableDeclaration",
"scope": 9784,
"src": "11345:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9738,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11345:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9740,
"nodeType": "VariableDeclarationStatement",
"src": "11345:11:10"
},
{
"assignments": [
9742
],
"declarations": [
{
"constant": false,
"id": 9742,
"mutability": "mutable",
"name": "max",
"nameLocation": "11375:3:10",
"nodeType": "VariableDeclaration",
"scope": 9784,
"src": "11367:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9741,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11367:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9751,
"initialValue": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9746,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 9743,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9731,
"src": "11381:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 9744,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11383:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11381:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "3332",
"id": 9745,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11392:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "11381:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"expression": {
"id": 9748,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9731,
"src": "11402:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 9749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11404:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11402:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "11381:29:10",
"trueExpression": {
"hexValue": "3332",
"id": 9747,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11397:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11367:43:10"
},
{
"body": {
"id": 9780,
"nodeType": "Block",
"src": "11454:72:10",
"statements": [
{
"expression": {
"id": 9778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 9762,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9739,
"src": "11468:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "|=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 9777,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 9771,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 9765,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9731,
"src": "11483:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 9769,
"indexExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9766,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9733,
"src": "11485:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 9767,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9753,
"src": "11494:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11485:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11483:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "&",
"rightExpression": {
"hexValue": "30784646",
"id": 9770,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11499:4:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xFF"
},
"src": "11483:20:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"id": 9764,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "11475:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 9763,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11475:7:10",
"typeDescriptions": {}
}
},
"id": 9772,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11475:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9775,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9773,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9753,
"src": "11509:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "38",
"id": 9774,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11513:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "11509:5:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 9776,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "11508:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11475:40:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "11468:47:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 9779,
"nodeType": "ExpressionStatement",
"src": "11468:47:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9758,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9756,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9753,
"src": "11440:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 9757,
"name": "max",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9742,
"src": "11444:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11440:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9781,
"initializationExpression": {
"assignments": [
9753
],
"declarations": [
{
"constant": false,
"id": 9753,
"mutability": "mutable",
"name": "i",
"nameLocation": "11433:1:10",
"nodeType": "VariableDeclaration",
"scope": 9781,
"src": "11425:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9752,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11425:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9755,
"initialValue": {
"hexValue": "30",
"id": 9754,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11437:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "11425:13:10"
},
"isSimpleCounterLoop": true,
"loopExpression": {
"expression": {
"id": 9760,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "11449:3:10",
"subExpression": {
"id": 9759,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9753,
"src": "11449:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9761,
"nodeType": "ExpressionStatement",
"src": "11449:3:10"
},
"nodeType": "ForStatement",
"src": "11420:106:10"
},
{
"expression": {
"id": 9782,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9739,
"src": "11542:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 9737,
"id": 9783,
"nodeType": "Return",
"src": "11535:10:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "bytesToBytes32",
"nameLocation": "11257:14:10",
"parameters": {
"id": 9734,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9731,
"mutability": "mutable",
"name": "b",
"nameLocation": "11285:1:10",
"nodeType": "VariableDeclaration",
"scope": 9785,
"src": "11272:14:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9730,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11272:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9733,
"mutability": "mutable",
"name": "offset",
"nameLocation": "11296:6:10",
"nodeType": "VariableDeclaration",
"scope": 9785,
"src": "11288:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9732,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11288:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "11271:32:10"
},
"returnParameters": {
"id": 9737,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9736,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9785,
"src": "11326:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9735,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11326:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "11325:9:10"
},
"scope": 9827,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
},
{
"id": 9826,
"nodeType": "FunctionDefinition",
"src": "11609:393:10",
"nodes": [],
"body": {
"id": 9825,
"nodeType": "Block",
"src": "11682:320:10",
"nodes": [],
"statements": [
{
"assignments": [
9794
],
"declarations": [
{
"constant": false,
"id": 9794,
"mutability": "mutable",
"name": "result",
"nameLocation": "11705:6:10",
"nodeType": "VariableDeclaration",
"scope": 9825,
"src": "11692:19:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9793,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11692:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 9802,
"initialValue": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9800,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 9797,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9788,
"src": "11724:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 9798,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11726:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11724:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "3332",
"id": 9799,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11735:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "11724:13:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 9796,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "11714:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 9795,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11718:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 9801,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11714:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11692:46:10"
},
{
"body": {
"id": 9821,
"nodeType": "Block",
"src": "11787:185:10",
"statements": [
{
"assignments": [
9815
],
"declarations": [
{
"constant": false,
"id": 9815,
"mutability": "mutable",
"name": "k",
"nameLocation": "11809:1:10",
"nodeType": "VariableDeclaration",
"scope": 9821,
"src": "11801:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9814,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11801:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 9819,
"initialValue": {
"baseExpression": {
"id": 9816,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9788,
"src": "11813:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 9818,
"indexExpression": {
"id": 9817,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9804,
"src": "11815:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11813:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11801:16:10"
},
{
"AST": {
"nativeSrc": "11887:75:10",
"nodeType": "YulBlock",
"src": "11887:75:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "result",
"nativeSrc": "11916:6:10",
"nodeType": "YulIdentifier",
"src": "11916:6:10"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "11928:2:10",
"nodeType": "YulLiteral",
"src": "11928:2:10",
"type": "",
"value": "32"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "11936:2:10",
"nodeType": "YulLiteral",
"src": "11936:2:10",
"type": "",
"value": "32"
},
{
"name": "i",
"nativeSrc": "11940:1:10",
"nodeType": "YulIdentifier",
"src": "11940:1:10"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "11932:3:10",
"nodeType": "YulIdentifier",
"src": "11932:3:10"
},
"nativeSrc": "11932:10:10",
"nodeType": "YulFunctionCall",
"src": "11932:10:10"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11924:3:10",
"nodeType": "YulIdentifier",
"src": "11924:3:10"
},
"nativeSrc": "11924:19:10",
"nodeType": "YulFunctionCall",
"src": "11924:19:10"
}
],
"functionName": {
"name": "add",
"nativeSrc": "11912:3:10",
"nodeType": "YulIdentifier",
"src": "11912:3:10"
},
"nativeSrc": "11912:32:10",
"nodeType": "YulFunctionCall",
"src": "11912:32:10"
},
{
"name": "k",
"nativeSrc": "11946:1:10",
"nodeType": "YulIdentifier",
"src": "11946:1:10"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "11905:6:10",
"nodeType": "YulIdentifier",
"src": "11905:6:10"
},
"nativeSrc": "11905:43:10",
"nodeType": "YulFunctionCall",
"src": "11905:43:10"
},
"nativeSrc": "11905:43:10",
"nodeType": "YulExpressionStatement",
"src": "11905:43:10"
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "paris",
"externalReferences": [
{
"declaration": 9804,
"isOffset": false,
"isSlot": false,
"src": "11940:1:10",
"valueSize": 1
},
{
"declaration": 9815,
"isOffset": false,
"isSlot": false,
"src": "11946:1:10",
"valueSize": 1
},
{
"declaration": 9794,
"isOffset": false,
"isSlot": false,
"src": "11916:6:10",
"valueSize": 1
}
],
"id": 9820,
"nodeType": "InlineAssembly",
"src": "11878:84:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9810,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9807,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9804,
"src": "11768:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 9808,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9788,
"src": "11772:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 9809,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11774:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11772:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11768:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9822,
"initializationExpression": {
"assignments": [
9804
],
"declarations": [
{
"constant": false,
"id": 9804,
"mutability": "mutable",
"name": "i",
"nameLocation": "11761:1:10",
"nodeType": "VariableDeclaration",
"scope": 9822,
"src": "11753:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9803,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11753:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9806,
"initialValue": {
"hexValue": "30",
"id": 9805,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11765:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "11753:13:10"
},
"isSimpleCounterLoop": true,
"loopExpression": {
"expression": {
"id": 9812,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "11782:3:10",
"subExpression": {
"id": 9811,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9804,
"src": "11782:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9813,
"nodeType": "ExpressionStatement",
"src": "11782:3:10"
},
"nodeType": "ForStatement",
"src": "11748:224:10"
},
{
"expression": {
"id": 9823,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9794,
"src": "11989:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 9792,
"id": 9824,
"nodeType": "Return",
"src": "11982:13:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "flatten",
"nameLocation": "11618:7:10",
"parameters": {
"id": 9789,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9788,
"mutability": "mutable",
"name": "b",
"nameLocation": "11643:1:10",
"nodeType": "VariableDeclaration",
"scope": 9826,
"src": "11626:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 9786,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11626:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 9787,
"nodeType": "ArrayTypeName",
"src": "11626:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"src": "11625:20:10"
},
"returnParameters": {
"id": 9792,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 9791,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 9826,
"src": "11668:12:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 9790,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11668:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "11667:14:10"
},
"scope": 9827,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "stdStorage",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
9827
],
"name": "stdStorage",
"nameLocation": "7347:10:10",
"scope": 9828,
"usedErrors": [],
"usedEvents": []
}
],
"license": "MIT"
},
"id": 10
}