non-fungible-apps/out/StdStorage.sol/stdStorageSafe.json

19336 lines
845 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": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212209640656d885d6dbc4825aa064108a665df056715bda25211a99fb7d6fc936fed64736f6c63430008110033",
"sourceMap": "358:6977:10:-:0;;;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x600080fdfea26469706673582212209640656d885d6dbc4825aa064108a665df056715bda25211a99fb7d6fc936fed64736f6c63430008110033",
"sourceMap": "358:6977:10:-:0;;",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a\",\"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xf4442ded918d167635adc30ba3c451d45666c89b38e0eec2adaf0857b49a72f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4cb181bd626fe852a36f9b1cf2d79ef0fa9d2bf2cbf0ec86f33f5bf492c0b69\",\"dweb:/ipfs/QmaZKevWdZbjoTB7qtzKjP3dZhiUGymJc4Wb9qkNMewxjB\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"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": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"lib/forge-std/src/StdStorage.sol": "stdStorageSafe"
},
"libraries": {},
"viaIR": true
},
"sources": {
"lib/forge-std/src/StdStorage.sol": {
"keccak256": "0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5",
"urls": [
"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a",
"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn"
],
"license": "MIT"
},
"lib/forge-std/src/Vm.sol": {
"keccak256": "0xf4442ded918d167635adc30ba3c451d45666c89b38e0eec2adaf0857b49a72f7",
"urls": [
"bzz-raw://b4cb181bd626fe852a36f9b1cf2d79ef0fa9d2bf2cbf0ec86f33f5bf492c0b69",
"dweb:/ipfs/QmaZKevWdZbjoTB7qtzKjP3dZhiUGymJc4Wb9qkNMewxjB"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib/forge-std/src/StdStorage.sol",
"id": 7823,
"exportedSymbols": {
"StdStorage": [
6388
],
"Vm": [
9256
],
"VmSafe": [
8931
],
"stdStorage": [
7822
],
"stdStorageSafe": [
7281
]
},
"nodeType": "SourceUnit",
"src": "32:11833:10",
"nodes": [
{
"id": 6359,
"nodeType": "PragmaDirective",
"src": "32:31:10",
"nodes": [],
"literals": [
"solidity",
">=",
"0.6",
".2",
"<",
"0.9",
".0"
]
},
{
"id": 6360,
"nodeType": "ImportDirective",
"src": "65:18:10",
"nodes": [],
"absolutePath": "lib/forge-std/src/Vm.sol",
"file": "./Vm.sol",
"nameLocation": "-1:-1:-1",
"scope": 7823,
"sourceUnit": 9257,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 6388,
"nodeType": "StructDefinition",
"src": "85:271:10",
"nodes": [],
"canonicalName": "StdStorage",
"members": [
{
"constant": false,
"id": 6368,
"mutability": "mutable",
"name": "slots",
"nameLocation": "176:5:10",
"nodeType": "VariableDeclaration",
"scope": 6388,
"src": "109: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": 6367,
"keyType": {
"id": 6361,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "117:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "109: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)))"
},
"valueType": {
"id": 6366,
"keyType": {
"id": 6362,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "136:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "128:46:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
},
"valueType": {
"id": 6365,
"keyType": {
"id": 6363,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "154:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "146:27:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 6364,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "165:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6376,
"mutability": "mutable",
"name": "finds",
"nameLocation": "251:5:10",
"nodeType": "VariableDeclaration",
"scope": 6388,
"src": "187: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": 6375,
"keyType": {
"id": 6369,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "195:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "187: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)))"
},
"valueType": {
"id": 6374,
"keyType": {
"id": 6370,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "214:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "206:43:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
},
"valueType": {
"id": 6373,
"keyType": {
"id": 6371,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "232:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "224:24:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"valueType": {
"id": 6372,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "243:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
}
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6379,
"mutability": "mutable",
"name": "_keys",
"nameLocation": "272:5:10",
"nodeType": "VariableDeclaration",
"scope": 6388,
"src": "262:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 6377,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "262:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 6378,
"nodeType": "ArrayTypeName",
"src": "262:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6381,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "290:4:10",
"nodeType": "VariableDeclaration",
"scope": 6388,
"src": "283:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 6380,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "283:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6383,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "308:6:10",
"nodeType": "VariableDeclaration",
"scope": 6388,
"src": "300:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6382,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "300:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6385,
"mutability": "mutable",
"name": "_target",
"nameLocation": "328:7:10",
"nodeType": "VariableDeclaration",
"scope": 6388,
"src": "320:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6384,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "320:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6387,
"mutability": "mutable",
"name": "_set",
"nameLocation": "349:4:10",
"nodeType": "VariableDeclaration",
"scope": 6388,
"src": "341:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 6386,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "341:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"name": "StdStorage",
"nameLocation": "92:10:10",
"scope": 7823,
"visibility": "public"
},
{
"id": 7281,
"nodeType": "ContractDefinition",
"src": "358:6977:10",
"nodes": [
{
"id": 6398,
"nodeType": "EventDefinition",
"src": "387:74:10",
"nodes": [],
"anonymous": false,
"eventSelector": "9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed",
"name": "SlotFound",
"nameLocation": "393:9:10",
"parameters": {
"id": 6397,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6390,
"indexed": false,
"mutability": "mutable",
"name": "who",
"nameLocation": "411:3:10",
"nodeType": "VariableDeclaration",
"scope": 6398,
"src": "403:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6389,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "403:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6392,
"indexed": false,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "423:4:10",
"nodeType": "VariableDeclaration",
"scope": 6398,
"src": "416:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 6391,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "416:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6394,
"indexed": false,
"mutability": "mutable",
"name": "keysHash",
"nameLocation": "437:8:10",
"nodeType": "VariableDeclaration",
"scope": 6398,
"src": "429:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 6393,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "429:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6396,
"indexed": false,
"mutability": "mutable",
"name": "slot",
"nameLocation": "455:4:10",
"nodeType": "VariableDeclaration",
"scope": 6398,
"src": "447:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6395,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "447:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "402:58:10"
}
},
{
"id": 6404,
"nodeType": "EventDefinition",
"src": "466:54:10",
"nodes": [],
"anonymous": false,
"eventSelector": "080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5",
"name": "WARNING_UninitedSlot",
"nameLocation": "472:20:10",
"parameters": {
"id": 6403,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6400,
"indexed": false,
"mutability": "mutable",
"name": "who",
"nameLocation": "501:3:10",
"nodeType": "VariableDeclaration",
"scope": 6404,
"src": "493:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6399,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "493:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6402,
"indexed": false,
"mutability": "mutable",
"name": "slot",
"nameLocation": "514:4:10",
"nodeType": "VariableDeclaration",
"scope": 6404,
"src": "506:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6401,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "506:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "492:27:10"
}
},
{
"id": 6421,
"nodeType": "VariableDeclaration",
"src": "526:84:10",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "vm",
"nameLocation": "546:2:10",
"scope": 7281,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
},
"typeName": {
"id": 6406,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6405,
"name": "Vm",
"nameLocations": [
"526:2:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 9256,
"src": "526:2:10"
},
"referencedDeclaration": 9256,
"src": "526:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"hexValue": "6865766d20636865617420636f6465",
"id": 6415,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "588: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": 6414,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "578:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6416,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "578:28:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6413,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "570:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6412,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "570:7:10",
"typeDescriptions": {}
}
},
"id": 6417,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "570:37:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6411,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "562:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 6410,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "562:7:10",
"typeDescriptions": {}
}
},
"id": 6418,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "562:46:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 6409,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "554:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 6408,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "554:7:10",
"typeDescriptions": {}
}
},
"id": 6419,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "554:55:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6407,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9256,
"src": "551:2:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Vm_$9256_$",
"typeString": "type(contract Vm)"
}
},
"id": 6420,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "551:59:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"visibility": "private"
},
{
"id": 6439,
"nodeType": "FunctionDefinition",
"src": "617:123:10",
"nodes": [],
"body": {
"id": 6438,
"nodeType": "Block",
"src": "684:56:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 6433,
"name": "sigStr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6423,
"src": "724:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 6432,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "718:5:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 6431,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "718:5:10",
"typeDescriptions": {}
}
},
"id": 6434,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "718:13:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6430,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "708:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6435,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "708:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6429,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "701:6:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes4_$",
"typeString": "type(bytes4)"
},
"typeName": {
"id": 6428,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "701:6:10",
"typeDescriptions": {}
}
},
"id": 6436,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "701:32:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 6427,
"id": 6437,
"nodeType": "Return",
"src": "694:39:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sigs",
"nameLocation": "626:4:10",
"parameters": {
"id": 6424,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6423,
"mutability": "mutable",
"name": "sigStr",
"nameLocation": "645:6:10",
"nodeType": "VariableDeclaration",
"scope": 6439,
"src": "631:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6422,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "631:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "630:22:10"
},
"returnParameters": {
"id": 6427,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6426,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 6439,
"src": "676:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 6425,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "676:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "675:8:10"
},
"scope": 7281,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 6884,
"nodeType": "FunctionDefinition",
"src": "1254:3205:10",
"nodes": [],
"body": {
"id": 6883,
"nodeType": "Block",
"src": "1320:3139:10",
"nodes": [],
"statements": [
{
"assignments": [
6449
],
"declarations": [
{
"constant": false,
"id": 6449,
"mutability": "mutable",
"name": "who",
"nameLocation": "1338:3:10",
"nodeType": "VariableDeclaration",
"scope": 6883,
"src": "1330:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6448,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1330:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 6452,
"initialValue": {
"expression": {
"id": 6450,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "1344:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6451,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1349:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 6385,
"src": "1344:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1330:26:10"
},
{
"assignments": [
6454
],
"declarations": [
{
"constant": false,
"id": 6454,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "1373:4:10",
"nodeType": "VariableDeclaration",
"scope": 6883,
"src": "1366:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 6453,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1366:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"id": 6457,
"initialValue": {
"expression": {
"id": 6455,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "1380:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6456,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1385:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6381,
"src": "1380:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1366:23:10"
},
{
"assignments": [
6459
],
"declarations": [
{
"constant": false,
"id": 6459,
"mutability": "mutable",
"name": "field_depth",
"nameLocation": "1407:11:10",
"nodeType": "VariableDeclaration",
"scope": 6883,
"src": "1399:19:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6458,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1399:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 6462,
"initialValue": {
"expression": {
"id": 6460,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "1421:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6461,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1426:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 6383,
"src": "1421:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1399:33:10"
},
{
"assignments": [
6467
],
"declarations": [
{
"constant": false,
"id": 6467,
"mutability": "mutable",
"name": "ins",
"nameLocation": "1459:3:10",
"nodeType": "VariableDeclaration",
"scope": 6883,
"src": "1442:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 6465,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1442:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 6466,
"nodeType": "ArrayTypeName",
"src": "1442:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"id": 6470,
"initialValue": {
"expression": {
"id": 6468,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "1465:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6469,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1470:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 6379,
"src": "1465:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1442:33:10"
},
{
"condition": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6471,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "1526:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6472,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1531:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 6376,
"src": "1526: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": 6474,
"indexExpression": {
"id": 6473,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "1537:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1526:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 6476,
"indexExpression": {
"id": 6475,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "1542:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1526:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 6484,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6480,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "1575:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6481,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "1580: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": 6478,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1558:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6479,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1562:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "1558:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1558:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6477,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "1548:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6483,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1548:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1526:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6501,
"nodeType": "IfStatement",
"src": "1522:174:10",
"trueBody": {
"id": 6500,
"nodeType": "Block",
"src": "1596:100:10",
"statements": [
{
"expression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6485,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "1617:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6486,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1622:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 6368,
"src": "1617: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": 6488,
"indexExpression": {
"id": 6487,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "1628:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1617:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 6490,
"indexExpression": {
"id": 6489,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "1633:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1617:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 6498,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6494,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "1666:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6495,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "1671: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": 6492,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1649:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6493,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1653:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "1649:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6496,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1649:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6491,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "1639:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6497,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1639:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1617:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6447,
"id": 6499,
"nodeType": "Return",
"src": "1610:75:10"
}
]
}
},
{
"assignments": [
6503
],
"declarations": [
{
"constant": false,
"id": 6503,
"mutability": "mutable",
"name": "cald",
"nameLocation": "1718:4:10",
"nodeType": "VariableDeclaration",
"scope": 6883,
"src": "1705:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 6502,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1705:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 6511,
"initialValue": {
"arguments": [
{
"id": 6506,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "1742:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"id": 6508,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "1756: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": 6507,
"name": "flatten",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7280,
"src": "1748: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": 6509,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1748: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": 6504,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1725:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6505,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1729:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "1725:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6510,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1725:36:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1705:56:10"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 6512,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "1771:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 6514,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1774:6:10",
"memberName": "record",
"nodeType": "MemberAccess",
"referencedDeclaration": 8471,
"src": "1771:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
"typeString": "function () external"
}
},
"id": 6515,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1771:11:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6516,
"nodeType": "ExpressionStatement",
"src": "1771:11:10"
},
{
"assignments": [
6518
],
"declarations": [
{
"constant": false,
"id": 6518,
"mutability": "mutable",
"name": "fdat",
"nameLocation": "1800:4:10",
"nodeType": "VariableDeclaration",
"scope": 6883,
"src": "1792:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 6517,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1792:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 6519,
"nodeType": "VariableDeclarationStatement",
"src": "1792:12:10"
},
{
"id": 6536,
"nodeType": "Block",
"src": "1814:128:10",
"statements": [
{
"assignments": [
null,
6521
],
"declarations": [
null,
{
"constant": false,
"id": 6521,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "1844:4:10",
"nodeType": "VariableDeclaration",
"scope": 6536,
"src": "1831:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 6520,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1831:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 6526,
"initialValue": {
"arguments": [
{
"id": 6524,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6503,
"src": "1867:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 6522,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "1852:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 6523,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1856:10:10",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "1852: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": 6525,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1852:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1828:44:10"
},
{
"expression": {
"id": 6534,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 6527,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "1886:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 6529,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6521,
"src": "1908:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6532,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 6530,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1914:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 6531,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "1919:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1914:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6528,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7239,
"src": "1893: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": 6533,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1893:38:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1886:45:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 6535,
"nodeType": "ExpressionStatement",
"src": "1886:45:10"
}
]
},
{
"assignments": [
6541,
null
],
"declarations": [
{
"constant": false,
"id": 6541,
"mutability": "mutable",
"name": "reads",
"nameLocation": "1970:5:10",
"nodeType": "VariableDeclaration",
"scope": 6883,
"src": "1953:22:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 6539,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1953:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 6540,
"nodeType": "ArrayTypeName",
"src": "1953:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
},
null
],
"id": 6549,
"initialValue": {
"arguments": [
{
"arguments": [
{
"id": 6546,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2000:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6545,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1992:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 6544,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1992:7:10",
"typeDescriptions": {}
}
},
"id": 6547,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1992:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 6542,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "1980:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 6543,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1983:8:10",
"memberName": "accesses",
"nodeType": "MemberAccess",
"referencedDeclaration": 8482,
"src": "1980: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": 6548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1980: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": "1952:53:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 6550,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2019:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6551,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2025:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2019:12:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "31",
"id": 6552,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2035:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "2019:17:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6655,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 6652,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2776:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6653,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2782:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2776:12:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "31",
"id": 6654,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2791:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "2776:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 6831,
"nodeType": "Block",
"src": "3976:107:10",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 6827,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3998:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a204e6f2073746f726167652075736520646574656374656420666f72207461726765742e",
"id": 6828,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4005: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_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283",
"typeString": "literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""
}
],
"id": 6826,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3990:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6829,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3990:82:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6830,
"nodeType": "ExpressionStatement",
"src": "3990:82:10"
}
]
},
"id": 6832,
"nodeType": "IfStatement",
"src": "2772:1311:10",
"trueBody": {
"id": 6825,
"nodeType": "Block",
"src": "2794:1176:10",
"statements": [
{
"body": {
"id": 6823,
"nodeType": "Block",
"src": "2851:1109:10",
"statements": [
{
"assignments": [
6668
],
"declarations": [
{
"constant": false,
"id": 6668,
"mutability": "mutable",
"name": "prev",
"nameLocation": "2877:4:10",
"nodeType": "VariableDeclaration",
"scope": 6823,
"src": "2869:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 6667,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2869:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 6676,
"initialValue": {
"arguments": [
{
"id": 6671,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2892:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 6672,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2897:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6674,
"indexExpression": {
"id": 6673,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "2903:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2897:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 6669,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "2884:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 6670,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2887:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 8307,
"src": "2884:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 6675,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2884:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2869:37:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 6682,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 6677,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6668,
"src": "2928:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 6680,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2944: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": 6679,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2936:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 6678,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2936:7:10",
"typeDescriptions": {}
}
},
"id": 6681,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2936:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2928:18:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6694,
"nodeType": "IfStatement",
"src": "2924:114:10",
"trueBody": {
"id": 6693,
"nodeType": "Block",
"src": "2948:90:10",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 6684,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2996:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 6687,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "3009:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6689,
"indexExpression": {
"id": 6688,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "3015:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3009:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6686,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3001:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6685,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3001:7:10",
"typeDescriptions": {}
}
},
"id": 6690,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3001:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6683,
"name": "WARNING_UninitedSlot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6404,
"src": "2975:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 6691,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2975:44:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6692,
"nodeType": "EmitStatement",
"src": "2970:49:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 6698,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "3089:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 6699,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "3094:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6701,
"indexExpression": {
"id": 6700,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "3100:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3094:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"hexValue": "1337",
"id": 6704,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "hexString",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3112: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": 6703,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3104:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 6702,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3104:7:10",
"typeDescriptions": {}
}
},
"id": 6705,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3104: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": 6695,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "3080:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 6697,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3083:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 8967,
"src": "3080:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 6706,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3080:43:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6707,
"nodeType": "ExpressionStatement",
"src": "3080:43:10"
},
{
"assignments": [
6709
],
"declarations": [
{
"constant": false,
"id": 6709,
"mutability": "mutable",
"name": "success",
"nameLocation": "3146:7:10",
"nodeType": "VariableDeclaration",
"scope": 6823,
"src": "3141:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6708,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3141:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"id": 6710,
"nodeType": "VariableDeclarationStatement",
"src": "3141:12:10"
},
{
"assignments": [
6712
],
"declarations": [
{
"constant": false,
"id": 6712,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "3184:4:10",
"nodeType": "VariableDeclaration",
"scope": 6823,
"src": "3171:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 6711,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3171:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 6713,
"nodeType": "VariableDeclarationStatement",
"src": "3171:17:10"
},
{
"id": 6732,
"nodeType": "Block",
"src": "3206:146:10",
"statements": [
{
"expression": {
"id": 6721,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"components": [
{
"id": 6714,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6709,
"src": "3229:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"id": 6715,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6712,
"src": "3238:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"id": 6716,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "3228:15:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 6719,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6503,
"src": "3261:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 6717,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "3246:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 6718,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3250:10:10",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "3246: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": 6720,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3246:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"src": "3228:38:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6722,
"nodeType": "ExpressionStatement",
"src": "3228:38:10"
},
{
"expression": {
"id": 6730,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 6723,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "3288:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 6725,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6712,
"src": "3310:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6728,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 6726,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3316:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 6727,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "3321:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3316:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6724,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7239,
"src": "3295: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": 6729,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3295:38:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "3288:45:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 6731,
"nodeType": "ExpressionStatement",
"src": "3288:45:10"
}
]
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6740,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 6733,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6709,
"src": "3374:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 6739,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 6734,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "3385:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "1337",
"id": 6737,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "hexString",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3401: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": 6736,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3393:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 6735,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3393:7:10",
"typeDescriptions": {}
}
},
"id": 6738,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3393:18:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "3385:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "3374:37:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6812,
"nodeType": "IfStatement",
"src": "3370:529:10",
"trueBody": {
"id": 6811,
"nodeType": "Block",
"src": "3413:486:10",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 6742,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "3519:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 6743,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "3524:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"arguments": [
{
"id": 6747,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "3557:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6748,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "3562: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": 6745,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "3540:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6746,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3544:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "3540:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3540:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6744,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "3530:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3530:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 6753,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "3585:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6755,
"indexExpression": {
"id": 6754,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "3591:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3585:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6752,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3577:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6751,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3577:7:10",
"typeDescriptions": {}
}
},
"id": 6756,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3577: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": 6741,
"name": "SlotFound",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "3509:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$",
"typeString": "function (address,bytes4,bytes32,uint256)"
}
},
"id": 6757,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3509:86:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6758,
"nodeType": "EmitStatement",
"src": "3504:91:10"
},
{
"expression": {
"id": 6780,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6759,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "3617:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6770,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3622:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 6368,
"src": "3617: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": 6771,
"indexExpression": {
"id": 6761,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "3628:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3617:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 6772,
"indexExpression": {
"id": 6762,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "3633:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3617:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 6773,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6766,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "3666:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6767,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "3671: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": 6764,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "3649:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6765,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3653:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "3649:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3649:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6763,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "3639:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6769,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3639:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3617:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"baseExpression": {
"id": 6776,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "3696:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6778,
"indexExpression": {
"id": 6777,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "3702:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3696:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6775,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3688:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6774,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3688:7:10",
"typeDescriptions": {}
}
},
"id": 6779,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3688:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3617:88:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6781,
"nodeType": "ExpressionStatement",
"src": "3617:88:10"
},
{
"expression": {
"id": 6798,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6782,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "3727:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6793,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3732:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 6376,
"src": "3727: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": 6794,
"indexExpression": {
"id": 6784,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "3738:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3727:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 6795,
"indexExpression": {
"id": 6785,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "3743:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3727:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 6796,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6789,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "3776:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6790,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "3781: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": 6787,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "3759:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6788,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3763:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "3759:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6791,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3759:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6786,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "3749:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6792,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3749:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3727:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 6797,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3798:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "3727:75:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6799,
"nodeType": "ExpressionStatement",
"src": "3727:75:10"
},
{
"expression": {
"arguments": [
{
"id": 6803,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "3833:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 6804,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "3838:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6806,
"indexExpression": {
"id": 6805,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "3844:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3838:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 6807,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6668,
"src": "3848: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": 6800,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "3824:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 6802,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3827:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 8967,
"src": "3824:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 6808,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3824:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6809,
"nodeType": "ExpressionStatement",
"src": "3824:29:10"
},
{
"id": 6810,
"nodeType": "Break",
"src": "3875:5:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 6816,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "3925:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 6817,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "3930:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6819,
"indexExpression": {
"id": 6818,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "3936:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3930:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 6820,
"name": "prev",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6668,
"src": "3940: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": 6813,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "3916:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 6815,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3919:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 8967,
"src": "3916:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 6821,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3916:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6822,
"nodeType": "ExpressionStatement",
"src": "3916:29:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6663,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 6660,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "2828:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 6661,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2832:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6662,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2838:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2832:12:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2828:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6824,
"initializationExpression": {
"assignments": [
6657
],
"declarations": [
{
"constant": false,
"id": 6657,
"mutability": "mutable",
"name": "i",
"nameLocation": "2821:1:10",
"nodeType": "VariableDeclaration",
"scope": 6824,
"src": "2813:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6656,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2813:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 6659,
"initialValue": {
"hexValue": "30",
"id": 6658,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2825:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2813:13:10"
},
"loopExpression": {
"expression": {
"id": 6665,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2846:3:10",
"subExpression": {
"id": 6664,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6657,
"src": "2846:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6666,
"nodeType": "ExpressionStatement",
"src": "2846:3:10"
},
"nodeType": "ForStatement",
"src": "2808:1152:10"
}
]
}
},
"id": 6833,
"nodeType": "IfStatement",
"src": "2015:2068:10",
"trueBody": {
"id": 6651,
"nodeType": "Block",
"src": "2038:728:10",
"statements": [
{
"assignments": [
6555
],
"declarations": [
{
"constant": false,
"id": 6555,
"mutability": "mutable",
"name": "curr",
"nameLocation": "2060:4:10",
"nodeType": "VariableDeclaration",
"scope": 6651,
"src": "2052:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 6554,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2052:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 6563,
"initialValue": {
"arguments": [
{
"id": 6558,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2075:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 6559,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2080:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6561,
"indexExpression": {
"hexValue": "30",
"id": 6560,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2086: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": "2080:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 6556,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "2067:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 6557,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2070:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 8307,
"src": "2067:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 6562,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2067:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2052:37:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 6569,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 6564,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6555,
"src": "2107:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "30",
"id": 6567,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2123: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": 6566,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2115:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 6565,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2115:7:10",
"typeDescriptions": {}
}
},
"id": 6568,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2115:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2107:18:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6581,
"nodeType": "IfStatement",
"src": "2103:106:10",
"trueBody": {
"id": 6580,
"nodeType": "Block",
"src": "2127:82:10",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 6571,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2171:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 6574,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2184:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6576,
"indexExpression": {
"hexValue": "30",
"id": 6575,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2190: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": "2184:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6573,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2176:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6572,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2176:7:10",
"typeDescriptions": {}
}
},
"id": 6577,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2176:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6570,
"name": "WARNING_UninitedSlot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6404,
"src": "2150:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 6578,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2150:44:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6579,
"nodeType": "EmitStatement",
"src": "2145:49:10"
}
]
}
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 6584,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 6582,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "2226:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 6583,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6555,
"src": "2234:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2226:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6591,
"nodeType": "IfStatement",
"src": "2222:238:10",
"trueBody": {
"id": 6590,
"nodeType": "Block",
"src": "2240:220:10",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 6586,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2287:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e",
"id": 6587,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2314: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": 6585,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2258:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6588,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2258:187:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6589,
"nodeType": "ExpressionStatement",
"src": "2258:187:10"
}
]
}
},
{
"eventCall": {
"arguments": [
{
"id": 6593,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2488:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 6594,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "2493:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"arguments": [
{
"id": 6598,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "2526:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6599,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "2531: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": 6596,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2509:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6597,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2513:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "2509:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6600,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2509:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6595,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2499:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6601,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2499:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"baseExpression": {
"id": 6604,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2554:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6606,
"indexExpression": {
"hexValue": "30",
"id": 6605,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2560: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": "2554:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6603,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2546:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6602,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2546:7:10",
"typeDescriptions": {}
}
},
"id": 6607,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2546: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": 6592,
"name": "SlotFound",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "2478:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$",
"typeString": "function (address,bytes4,bytes32,uint256)"
}
},
"id": 6608,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2478:86:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6609,
"nodeType": "EmitStatement",
"src": "2473:91:10"
},
{
"expression": {
"id": 6631,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6610,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "2578:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6621,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2583:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 6368,
"src": "2578: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": 6622,
"indexExpression": {
"id": 6612,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2589:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2578:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 6623,
"indexExpression": {
"id": 6613,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "2594:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2578:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 6624,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6617,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "2627:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6618,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "2632: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": 6615,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2610:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6616,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2614:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "2610:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6619,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2610:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6614,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2600:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6620,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2600:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2578:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"baseExpression": {
"id": 6627,
"name": "reads",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6541,
"src": "2657:5:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 6629,
"indexExpression": {
"hexValue": "30",
"id": 6628,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2663: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": "2657:8:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 6626,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2649:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6625,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2649:7:10",
"typeDescriptions": {}
}
},
"id": 6630,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2649:17:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2578:88:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6632,
"nodeType": "ExpressionStatement",
"src": "2578:88:10"
},
{
"expression": {
"id": 6649,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6633,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "2680:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6644,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2685:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 6376,
"src": "2680: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": 6645,
"indexExpression": {
"id": 6635,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "2691:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2680:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 6646,
"indexExpression": {
"id": 6636,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "2696:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2680:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 6647,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6640,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "2729:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6641,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "2734: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": 6638,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2712:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6639,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2716:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "2712:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6642,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2712:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6637,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2702:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6643,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2702:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2680:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 6648,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2751:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "2680:75:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 6650,
"nodeType": "ExpressionStatement",
"src": "2680:75:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6835,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "4114:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6836,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4119:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 6376,
"src": "4114: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": 6838,
"indexExpression": {
"id": 6837,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "4125:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4114:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 6840,
"indexExpression": {
"id": 6839,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "4130:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4114:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 6848,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6844,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "4163:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6845,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "4168: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": 6842,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4146:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6843,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4150:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "4146:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6846,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4146:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6841,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "4136:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6847,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4136:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4114:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a20536c6f74287329206e6f7420666f756e642e",
"id": 6849,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4196: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": 6834,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "4093:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6850,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4093:162:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6851,
"nodeType": "ExpressionStatement",
"src": "4093:162:10"
},
{
"expression": {
"id": 6854,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4266:19:10",
"subExpression": {
"expression": {
"id": 6852,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "4273:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6853,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4278:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 6385,
"src": "4273:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6855,
"nodeType": "ExpressionStatement",
"src": "4266:19:10"
},
{
"expression": {
"id": 6858,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4295:16:10",
"subExpression": {
"expression": {
"id": 6856,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "4302:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6857,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4307:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6381,
"src": "4302:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6859,
"nodeType": "ExpressionStatement",
"src": "4295:16:10"
},
{
"expression": {
"id": 6862,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4321:17:10",
"subExpression": {
"expression": {
"id": 6860,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "4328:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6861,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4333:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 6379,
"src": "4328:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6863,
"nodeType": "ExpressionStatement",
"src": "4321:17:10"
},
{
"expression": {
"id": 6866,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "4348:18:10",
"subExpression": {
"expression": {
"id": 6864,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "4355:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6865,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4360:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 6383,
"src": "4355:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6867,
"nodeType": "ExpressionStatement",
"src": "4348:18:10"
},
{
"expression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 6868,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6443,
"src": "4384:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6869,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4389:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 6368,
"src": "4384: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": 6871,
"indexExpression": {
"id": 6870,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6449,
"src": "4395:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4384:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 6873,
"indexExpression": {
"id": 6872,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6454,
"src": "4400:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4384:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 6881,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 6877,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6467,
"src": "4433:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 6878,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6459,
"src": "4438: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": 6875,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4416:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 6876,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4420:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "4416:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 6879,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4416:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 6874,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "4406:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 6880,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4406:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4384:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6447,
"id": 6882,
"nodeType": "Return",
"src": "4377:75:10"
}
]
},
"documentation": {
"id": 6440,
"nodeType": "StructuredDocumentation",
"src": "746: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": "1263:4:10",
"parameters": {
"id": 6444,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6443,
"mutability": "mutable",
"name": "self",
"nameLocation": "1287:4:10",
"nodeType": "VariableDeclaration",
"scope": 6884,
"src": "1268:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6442,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6441,
"name": "StdStorage",
"nameLocations": [
"1268:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "1268:10:10"
},
"referencedDeclaration": 6388,
"src": "1268:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "1267:25:10"
},
"returnParameters": {
"id": 6447,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6446,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 6884,
"src": "1311:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6445,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1311:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1310:9:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 6904,
"nodeType": "FunctionDefinition",
"src": "4465:156:10",
"nodes": [],
"body": {
"id": 6903,
"nodeType": "Block",
"src": "4561:60:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 6899,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 6895,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6887,
"src": "4571:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6897,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4576:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 6385,
"src": "4571:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 6898,
"name": "_target",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6889,
"src": "4586:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4571:22:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 6900,
"nodeType": "ExpressionStatement",
"src": "4571:22:10"
},
{
"expression": {
"id": 6901,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6887,
"src": "4610:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 6894,
"id": 6902,
"nodeType": "Return",
"src": "4603:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "target",
"nameLocation": "4474:6:10",
"parameters": {
"id": 6890,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6887,
"mutability": "mutable",
"name": "self",
"nameLocation": "4500:4:10",
"nodeType": "VariableDeclaration",
"scope": 6904,
"src": "4481:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6886,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6885,
"name": "StdStorage",
"nameLocations": [
"4481:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "4481:10:10"
},
"referencedDeclaration": 6388,
"src": "4481:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6889,
"mutability": "mutable",
"name": "_target",
"nameLocation": "4514:7:10",
"nodeType": "VariableDeclaration",
"scope": 6904,
"src": "4506:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6888,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4506:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4480:42:10"
},
"returnParameters": {
"id": 6894,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6893,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 6904,
"src": "4541:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6892,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6891,
"name": "StdStorage",
"nameLocations": [
"4541:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "4541:10:10"
},
"referencedDeclaration": 6388,
"src": "4541:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "4540:20:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 6924,
"nodeType": "FunctionDefinition",
"src": "4627:143:10",
"nodes": [],
"body": {
"id": 6923,
"nodeType": "Block",
"src": "4716:54:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 6919,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 6915,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6907,
"src": "4726:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6917,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4731:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6381,
"src": "4726:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 6918,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6909,
"src": "4738:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4726:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 6920,
"nodeType": "ExpressionStatement",
"src": "4726:16:10"
},
{
"expression": {
"id": 6921,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6907,
"src": "4759:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 6914,
"id": 6922,
"nodeType": "Return",
"src": "4752:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "4636:3:10",
"parameters": {
"id": 6910,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6907,
"mutability": "mutable",
"name": "self",
"nameLocation": "4659:4:10",
"nodeType": "VariableDeclaration",
"scope": 6924,
"src": "4640:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6906,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6905,
"name": "StdStorage",
"nameLocations": [
"4640:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "4640:10:10"
},
"referencedDeclaration": 6388,
"src": "4640:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6909,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "4672:4:10",
"nodeType": "VariableDeclaration",
"scope": 6924,
"src": "4665:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 6908,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "4665:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "4639:38:10"
},
"returnParameters": {
"id": 6914,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6913,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 6924,
"src": "4696:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6912,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6911,
"name": "StdStorage",
"nameLocations": [
"4696:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "4696:10:10"
},
"referencedDeclaration": 6388,
"src": "4696:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "4695:20:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 6946,
"nodeType": "FunctionDefinition",
"src": "4776:156:10",
"nodes": [],
"body": {
"id": 6945,
"nodeType": "Block",
"src": "4872:60:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 6941,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 6935,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6927,
"src": "4882:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6937,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "4887:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6381,
"src": "4882:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 6939,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6929,
"src": "4899:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 6938,
"name": "sigs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6439,
"src": "4894:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (string memory) pure returns (bytes4)"
}
},
"id": 6940,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4894:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "4882:22:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"id": 6942,
"nodeType": "ExpressionStatement",
"src": "4882:22:10"
},
{
"expression": {
"id": 6943,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6927,
"src": "4921:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 6934,
"id": 6944,
"nodeType": "Return",
"src": "4914:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "4785:3:10",
"parameters": {
"id": 6930,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6927,
"mutability": "mutable",
"name": "self",
"nameLocation": "4808:4:10",
"nodeType": "VariableDeclaration",
"scope": 6946,
"src": "4789:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6926,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6925,
"name": "StdStorage",
"nameLocations": [
"4789:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "4789:10:10"
},
"referencedDeclaration": 6388,
"src": "4789:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6929,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "4828:4:10",
"nodeType": "VariableDeclaration",
"scope": 6946,
"src": "4814:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6928,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4814:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "4788:45:10"
},
"returnParameters": {
"id": 6934,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6933,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 6946,
"src": "4852:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6932,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6931,
"name": "StdStorage",
"nameLocations": [
"4852:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "4852:10:10"
},
"referencedDeclaration": 6388,
"src": "4852:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "4851:20:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 6977,
"nodeType": "FunctionDefinition",
"src": "4938:179:10",
"nodes": [],
"body": {
"id": 6976,
"nodeType": "Block",
"src": "5032:85:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 6968,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6951,
"src": "5082:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6967,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5074:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 6966,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "5074:7:10",
"typeDescriptions": {}
}
},
"id": 6969,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5074:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 6965,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5066:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 6964,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5066:7:10",
"typeDescriptions": {}
}
},
"id": 6970,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5066:21:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6963,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5058:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 6962,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5058:7:10",
"typeDescriptions": {}
}
},
"id": 6971,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5058:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 6957,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6949,
"src": "5042:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6960,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5047:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 6379,
"src": "5042:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 6961,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5053:4:10",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "5042:15:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 6972,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5042:47:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6973,
"nodeType": "ExpressionStatement",
"src": "5042:47:10"
},
{
"expression": {
"id": 6974,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6949,
"src": "5106:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 6956,
"id": 6975,
"nodeType": "Return",
"src": "5099:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "4947:8:10",
"parameters": {
"id": 6952,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6949,
"mutability": "mutable",
"name": "self",
"nameLocation": "4975:4:10",
"nodeType": "VariableDeclaration",
"scope": 6977,
"src": "4956:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6948,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6947,
"name": "StdStorage",
"nameLocations": [
"4956:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "4956:10:10"
},
"referencedDeclaration": 6388,
"src": "4956:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6951,
"mutability": "mutable",
"name": "who",
"nameLocation": "4989:3:10",
"nodeType": "VariableDeclaration",
"scope": 6977,
"src": "4981:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6950,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4981:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4955:38:10"
},
"returnParameters": {
"id": 6956,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6955,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 6977,
"src": "5012:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6954,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6953,
"name": "StdStorage",
"nameLocations": [
"5012:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5012:10:10"
},
"referencedDeclaration": 6388,
"src": "5012:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5011:20:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7002,
"nodeType": "FunctionDefinition",
"src": "5123:161:10",
"nodes": [],
"body": {
"id": 7001,
"nodeType": "Block",
"src": "5217:67:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 6995,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6982,
"src": "5251:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6994,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5243:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 6993,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5243:7:10",
"typeDescriptions": {}
}
},
"id": 6996,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5243:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 6988,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6980,
"src": "5227:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 6991,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5232:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 6379,
"src": "5227:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 6992,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5238:4:10",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "5227:15:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 6997,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5227:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6998,
"nodeType": "ExpressionStatement",
"src": "5227:29:10"
},
{
"expression": {
"id": 6999,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6980,
"src": "5273:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 6987,
"id": 7000,
"nodeType": "Return",
"src": "5266:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "5132:8:10",
"parameters": {
"id": 6983,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6980,
"mutability": "mutable",
"name": "self",
"nameLocation": "5160:4:10",
"nodeType": "VariableDeclaration",
"scope": 7002,
"src": "5141:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6979,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6978,
"name": "StdStorage",
"nameLocations": [
"5141:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5141:10:10"
},
"referencedDeclaration": 6388,
"src": "5141:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 6982,
"mutability": "mutable",
"name": "amt",
"nameLocation": "5174:3:10",
"nodeType": "VariableDeclaration",
"scope": 7002,
"src": "5166:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6981,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5166:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "5140:38:10"
},
"returnParameters": {
"id": 6987,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6986,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7002,
"src": "5197:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 6985,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6984,
"name": "StdStorage",
"nameLocations": [
"5197:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5197:10:10"
},
"referencedDeclaration": 6388,
"src": "5197:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5196:20:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7024,
"nodeType": "FunctionDefinition",
"src": "5290:152:10",
"nodes": [],
"body": {
"id": 7023,
"nodeType": "Block",
"src": "5384:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7018,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7007,
"src": "5410:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"expression": {
"id": 7013,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7005,
"src": "5394:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7016,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5399:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 6379,
"src": "5394:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"id": 7017,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5405:4:10",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "5394:15:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$",
"typeString": "function (bytes32[] storage pointer,bytes32)"
}
},
"id": 7019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5394:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7020,
"nodeType": "ExpressionStatement",
"src": "5394:20:10"
},
{
"expression": {
"id": 7021,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7005,
"src": "5431:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7012,
"id": 7022,
"nodeType": "Return",
"src": "5424:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "5299:8:10",
"parameters": {
"id": 7008,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7005,
"mutability": "mutable",
"name": "self",
"nameLocation": "5327:4:10",
"nodeType": "VariableDeclaration",
"scope": 7024,
"src": "5308:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7004,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7003,
"name": "StdStorage",
"nameLocations": [
"5308:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5308:10:10"
},
"referencedDeclaration": 6388,
"src": "5308:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7007,
"mutability": "mutable",
"name": "key",
"nameLocation": "5341:3:10",
"nodeType": "VariableDeclaration",
"scope": 7024,
"src": "5333:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7006,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5333:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "5307:38:10"
},
"returnParameters": {
"id": 7012,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7011,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7024,
"src": "5364:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7010,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7009,
"name": "StdStorage",
"nameLocations": [
"5364:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5364:10:10"
},
"referencedDeclaration": 6388,
"src": "5364:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5363:20:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7044,
"nodeType": "FunctionDefinition",
"src": "5448:152:10",
"nodes": [],
"body": {
"id": 7043,
"nodeType": "Block",
"src": "5542:58:10",
"nodes": [],
"statements": [
{
"expression": {
"id": 7039,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 7035,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7027,
"src": "5552:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7037,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "5557:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 6383,
"src": "5552:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 7038,
"name": "_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7029,
"src": "5566:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5552:20:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7040,
"nodeType": "ExpressionStatement",
"src": "5552:20:10"
},
{
"expression": {
"id": 7041,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7027,
"src": "5589:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7034,
"id": 7042,
"nodeType": "Return",
"src": "5582:11:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "depth",
"nameLocation": "5457:5:10",
"parameters": {
"id": 7030,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7027,
"mutability": "mutable",
"name": "self",
"nameLocation": "5482:4:10",
"nodeType": "VariableDeclaration",
"scope": 7044,
"src": "5463:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7026,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7025,
"name": "StdStorage",
"nameLocations": [
"5463:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5463:10:10"
},
"referencedDeclaration": 6388,
"src": "5463:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7029,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "5496:6:10",
"nodeType": "VariableDeclaration",
"scope": 7044,
"src": "5488:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7028,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5488:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "5462:41:10"
},
"returnParameters": {
"id": 7034,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7033,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7044,
"src": "5522:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7032,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7031,
"name": "StdStorage",
"nameLocations": [
"5522:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5522:10:10"
},
"referencedDeclaration": 6388,
"src": "5522:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5521:20:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7076,
"nodeType": "FunctionDefinition",
"src": "5606:194:10",
"nodes": [],
"body": {
"id": 7075,
"nodeType": "Block",
"src": "5676:124:10",
"nodes": [],
"statements": [
{
"assignments": [
7053
],
"declarations": [
{
"constant": false,
"id": 7053,
"mutability": "mutable",
"name": "t",
"nameLocation": "5694:1:10",
"nodeType": "VariableDeclaration",
"scope": 7075,
"src": "5686:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7052,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5686:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 7056,
"initialValue": {
"expression": {
"id": 7054,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7047,
"src": "5698:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7055,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5703:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 6385,
"src": "5698:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5686:24:10"
},
{
"assignments": [
7058
],
"declarations": [
{
"constant": false,
"id": 7058,
"mutability": "mutable",
"name": "s",
"nameLocation": "5728:1:10",
"nodeType": "VariableDeclaration",
"scope": 7075,
"src": "5720:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7057,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5720:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7062,
"initialValue": {
"arguments": [
{
"id": 7060,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7047,
"src": "5737:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 7059,
"name": "find",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6884,
"src": "5732:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 7061,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5732:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5720:22:10"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 7067,
"name": "t",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7053,
"src": "5778:1:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 7070,
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7058,
"src": "5789:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7069,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5781:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 7068,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5781:7:10",
"typeDescriptions": {}
}
},
"id": 7071,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5781:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 7065,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6421,
"src": "5770:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 7066,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5773:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 8307,
"src": "5770:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 7072,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5770:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 7063,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "5759:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7064,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "5763:6:10",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "5759:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 7073,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5759:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 7051,
"id": 7074,
"nodeType": "Return",
"src": "5752:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read",
"nameLocation": "5615:4:10",
"parameters": {
"id": 7048,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7047,
"mutability": "mutable",
"name": "self",
"nameLocation": "5639:4:10",
"nodeType": "VariableDeclaration",
"scope": 7076,
"src": "5620:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7046,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7045,
"name": "StdStorage",
"nameLocations": [
"5620:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5620:10:10"
},
"referencedDeclaration": 6388,
"src": "5620:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5619:25:10"
},
"returnParameters": {
"id": 7051,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7050,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7076,
"src": "5662:12:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7049,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "5662:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "5661:14:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"id": 7095,
"nodeType": "FunctionDefinition",
"src": "5806:131:10",
"nodes": [],
"body": {
"id": 7094,
"nodeType": "Block",
"src": "5880:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 7087,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7079,
"src": "5913:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 7086,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7076,
"src": "5908:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 7088,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5908:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 7090,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5921:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 7089,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5921:7:10",
"typeDescriptions": {}
}
}
],
"id": 7091,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "5920: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": 7084,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "5897:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7085,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "5901:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "5897:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 7092,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5897:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 7083,
"id": 7093,
"nodeType": "Return",
"src": "5890:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bytes32",
"nameLocation": "5815:12:10",
"parameters": {
"id": 7080,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7079,
"mutability": "mutable",
"name": "self",
"nameLocation": "5847:4:10",
"nodeType": "VariableDeclaration",
"scope": 7095,
"src": "5828:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7078,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7077,
"name": "StdStorage",
"nameLocations": [
"5828:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5828:10:10"
},
"referencedDeclaration": 6388,
"src": "5828:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5827:25:10"
},
"returnParameters": {
"id": 7083,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7082,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7095,
"src": "5871:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7081,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5871:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "5870:9:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7126,
"nodeType": "FunctionDefinition",
"src": "5943:279:10",
"nodes": [],
"body": {
"id": 7125,
"nodeType": "Block",
"src": "6011:211:10",
"nodes": [],
"statements": [
{
"assignments": [
7104
],
"declarations": [
{
"constant": false,
"id": 7104,
"mutability": "mutable",
"name": "v",
"nameLocation": "6028:1:10",
"nodeType": "VariableDeclaration",
"scope": 7125,
"src": "6021:8:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 7103,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "6021:6:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"id": 7108,
"initialValue": {
"arguments": [
{
"id": 7106,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7098,
"src": "6041:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 7105,
"name": "read_int",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7183,
"src": "6032:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_int256_$",
"typeString": "function (struct StdStorage storage pointer) returns (int256)"
}
},
"id": 7107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6032:14:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6021:25:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 7111,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7109,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7104,
"src": "6060:1:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 7110,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6065:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6060:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7114,
"nodeType": "IfStatement",
"src": "6056:24:10",
"trueBody": {
"expression": {
"hexValue": "66616c7365",
"id": 7112,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6075:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 7102,
"id": 7113,
"nodeType": "Return",
"src": "6068:12:10"
}
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 7117,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7115,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7104,
"src": "6094:1:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "31",
"id": 7116,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6099:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "6094:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7120,
"nodeType": "IfStatement",
"src": "6090:23:10",
"trueBody": {
"expression": {
"hexValue": "74727565",
"id": 7118,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6109:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 7102,
"id": 7119,
"nodeType": "Return",
"src": "6102:11:10"
}
},
{
"expression": {
"arguments": [
{
"hexValue": "73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f74206465636f64652e204d616b65207375726520796f75206172652072656164696e67206120626f6f6c2e",
"id": 7122,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6130: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": 7121,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
"src": "6123:6:10",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 7123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6123:92:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7124,
"nodeType": "ExpressionStatement",
"src": "6123:92:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bool",
"nameLocation": "5952:9:10",
"parameters": {
"id": 7099,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7098,
"mutability": "mutable",
"name": "self",
"nameLocation": "5981:4:10",
"nodeType": "VariableDeclaration",
"scope": 7126,
"src": "5962:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7097,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7096,
"name": "StdStorage",
"nameLocations": [
"5962:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "5962:10:10"
},
"referencedDeclaration": 6388,
"src": "5962:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "5961:25:10"
},
"returnParameters": {
"id": 7102,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7101,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7126,
"src": "6005:4:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 7100,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6005:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "6004:6:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7145,
"nodeType": "FunctionDefinition",
"src": "6228:131:10",
"nodes": [],
"body": {
"id": 7144,
"nodeType": "Block",
"src": "6302:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 7137,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7129,
"src": "6335:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 7136,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7076,
"src": "6330:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 7138,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6330:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 7140,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6343:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 7139,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6343:7:10",
"typeDescriptions": {}
}
}
],
"id": 7141,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6342: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": 7134,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6319:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7135,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6323:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "6319:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 7142,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6319:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 7133,
"id": 7143,
"nodeType": "Return",
"src": "6312:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_address",
"nameLocation": "6237:12:10",
"parameters": {
"id": 7130,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7129,
"mutability": "mutable",
"name": "self",
"nameLocation": "6269:4:10",
"nodeType": "VariableDeclaration",
"scope": 7145,
"src": "6250:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7128,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7127,
"name": "StdStorage",
"nameLocations": [
"6250:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "6250:10:10"
},
"referencedDeclaration": 6388,
"src": "6250:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "6249:25:10"
},
"returnParameters": {
"id": 7133,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7132,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7145,
"src": "6293:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7131,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6293:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "6292:9:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7164,
"nodeType": "FunctionDefinition",
"src": "6365:128:10",
"nodes": [],
"body": {
"id": 7163,
"nodeType": "Block",
"src": "6436:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 7156,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7148,
"src": "6469:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 7155,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7076,
"src": "6464:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 7157,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6464:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 7159,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6477:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 7158,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6477:7:10",
"typeDescriptions": {}
}
}
],
"id": 7160,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6476: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": 7153,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6453:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7154,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6457:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "6453:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 7161,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6453:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 7152,
"id": 7162,
"nodeType": "Return",
"src": "6446:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_uint",
"nameLocation": "6374:9:10",
"parameters": {
"id": 7149,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7148,
"mutability": "mutable",
"name": "self",
"nameLocation": "6403:4:10",
"nodeType": "VariableDeclaration",
"scope": 7164,
"src": "6384:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7147,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7146,
"name": "StdStorage",
"nameLocations": [
"6384:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "6384:10:10"
},
"referencedDeclaration": 6388,
"src": "6384:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "6383:25:10"
},
"returnParameters": {
"id": 7152,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7151,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7164,
"src": "6427:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7150,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6427:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "6426:9:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7183,
"nodeType": "FunctionDefinition",
"src": "6499:125:10",
"nodes": [],
"body": {
"id": 7182,
"nodeType": "Block",
"src": "6568:56:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 7175,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7167,
"src": "6601:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 7174,
"name": "read",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7076,
"src": "6596:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes memory)"
}
},
"id": 7176,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6596:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 7178,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6609:6:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_int256_$",
"typeString": "type(int256)"
},
"typeName": {
"id": 7177,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "6609:6:10",
"typeDescriptions": {}
}
}
],
"id": 7179,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6608: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": 7172,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6585:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7173,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6589:6:10",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "6585:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 7180,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6585:32:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"functionReturnParameters": 7171,
"id": 7181,
"nodeType": "Return",
"src": "6578:39:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_int",
"nameLocation": "6508:8:10",
"parameters": {
"id": 7168,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7167,
"mutability": "mutable",
"name": "self",
"nameLocation": "6536:4:10",
"nodeType": "VariableDeclaration",
"scope": 7183,
"src": "6517:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7166,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7165,
"name": "StdStorage",
"nameLocations": [
"6517:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "6517:10:10"
},
"referencedDeclaration": 6388,
"src": "6517:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "6516:25:10"
},
"returnParameters": {
"id": 7171,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7170,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7183,
"src": "6560:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 7169,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "6560:6:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "6559:8:10"
},
"scope": 7281,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7239,
"nodeType": "FunctionDefinition",
"src": "6630:304:10",
"nodes": [],
"body": {
"id": 7238,
"nodeType": "Block",
"src": "6717:217:10",
"nodes": [],
"statements": [
{
"assignments": [
7193
],
"declarations": [
{
"constant": false,
"id": 7193,
"mutability": "mutable",
"name": "out",
"nameLocation": "6735:3:10",
"nodeType": "VariableDeclaration",
"scope": 7238,
"src": "6727:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7192,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6727:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7194,
"nodeType": "VariableDeclarationStatement",
"src": "6727:11:10"
},
{
"assignments": [
7196
],
"declarations": [
{
"constant": false,
"id": 7196,
"mutability": "mutable",
"name": "max",
"nameLocation": "6757:3:10",
"nodeType": "VariableDeclaration",
"scope": 7238,
"src": "6749:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7195,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6749:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7205,
"initialValue": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7200,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 7197,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7185,
"src": "6763:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 7198,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6765:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "6763:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "3332",
"id": 7199,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6774:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "6763:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"expression": {
"id": 7202,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7185,
"src": "6784:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 7203,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6786:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "6784:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7204,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "6763:29:10",
"trueExpression": {
"hexValue": "3332",
"id": 7201,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6779:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6749:43:10"
},
{
"body": {
"id": 7234,
"nodeType": "Block",
"src": "6836:72:10",
"statements": [
{
"expression": {
"id": 7232,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 7216,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7193,
"src": "6850:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "|=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 7231,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 7225,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 7219,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7185,
"src": "6865:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 7223,
"indexExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7220,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7187,
"src": "6867:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 7221,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7207,
"src": "6876:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6867:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6865:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "&",
"rightExpression": {
"hexValue": "30784646",
"id": 7224,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6881:4:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xFF"
},
"src": "6865:20:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"id": 7218,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6857:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 7217,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6857:7:10",
"typeDescriptions": {}
}
},
"id": 7226,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6857:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7229,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7227,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7207,
"src": "6891:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "38",
"id": 7228,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6895:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "6891:5:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 7230,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "6890:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6857:40:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "6850:47:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 7233,
"nodeType": "ExpressionStatement",
"src": "6850:47:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7212,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7210,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7207,
"src": "6822:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 7211,
"name": "max",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7196,
"src": "6826:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6822:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7235,
"initializationExpression": {
"assignments": [
7207
],
"declarations": [
{
"constant": false,
"id": 7207,
"mutability": "mutable",
"name": "i",
"nameLocation": "6815:1:10",
"nodeType": "VariableDeclaration",
"scope": 7235,
"src": "6807:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7206,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6807:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7209,
"initialValue": {
"hexValue": "30",
"id": 7208,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6819:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "6807:13:10"
},
"loopExpression": {
"expression": {
"id": 7214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "6831:3:10",
"subExpression": {
"id": 7213,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7207,
"src": "6831:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7215,
"nodeType": "ExpressionStatement",
"src": "6831:3:10"
},
"nodeType": "ForStatement",
"src": "6802:106:10"
},
{
"expression": {
"id": 7236,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7193,
"src": "6924:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 7191,
"id": 7237,
"nodeType": "Return",
"src": "6917:10:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "bytesToBytes32",
"nameLocation": "6639:14:10",
"parameters": {
"id": 7188,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7185,
"mutability": "mutable",
"name": "b",
"nameLocation": "6667:1:10",
"nodeType": "VariableDeclaration",
"scope": 7239,
"src": "6654:14:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7184,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6654:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7187,
"mutability": "mutable",
"name": "offset",
"nameLocation": "6678:6:10",
"nodeType": "VariableDeclaration",
"scope": 7239,
"src": "6670:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7186,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6670:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "6653:32:10"
},
"returnParameters": {
"id": 7191,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7190,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7239,
"src": "6708:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7189,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6708:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "6707:9:10"
},
"scope": 7281,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
},
{
"id": 7280,
"nodeType": "FunctionDefinition",
"src": "6940:393:10",
"nodes": [],
"body": {
"id": 7279,
"nodeType": "Block",
"src": "7013:320:10",
"nodes": [],
"statements": [
{
"assignments": [
7248
],
"declarations": [
{
"constant": false,
"id": 7248,
"mutability": "mutable",
"name": "result",
"nameLocation": "7036:6:10",
"nodeType": "VariableDeclaration",
"scope": 7279,
"src": "7023:19:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7247,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7023:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 7256,
"initialValue": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7254,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 7251,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7242,
"src": "7055:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 7252,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7057:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "7055:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "3332",
"id": 7253,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7066:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "7055:13:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7250,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "7045:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 7249,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7049:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 7255,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7045:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7023:46:10"
},
{
"body": {
"id": 7275,
"nodeType": "Block",
"src": "7118:185:10",
"statements": [
{
"assignments": [
7269
],
"declarations": [
{
"constant": false,
"id": 7269,
"mutability": "mutable",
"name": "k",
"nameLocation": "7140:1:10",
"nodeType": "VariableDeclaration",
"scope": 7275,
"src": "7132:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7268,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7132:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7273,
"initialValue": {
"baseExpression": {
"id": 7270,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7242,
"src": "7144:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 7272,
"indexExpression": {
"id": 7271,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7258,
"src": "7146:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7144:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7132:16:10"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "7218:75:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "7247:6:10"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7259:2:10",
"type": "",
"value": "32"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7267:2:10",
"type": "",
"value": "32"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "7271:1:10"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "7263:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7263:10:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7255:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7255:19:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7243:3:10"
},
"nodeType": "YulFunctionCall",
"src": "7243:32:10"
},
{
"name": "k",
"nodeType": "YulIdentifier",
"src": "7277:1:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7236:6:10"
},
"nodeType": "YulFunctionCall",
"src": "7236:43:10"
},
"nodeType": "YulExpressionStatement",
"src": "7236:43:10"
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 7258,
"isOffset": false,
"isSlot": false,
"src": "7271:1:10",
"valueSize": 1
},
{
"declaration": 7269,
"isOffset": false,
"isSlot": false,
"src": "7277:1:10",
"valueSize": 1
},
{
"declaration": 7248,
"isOffset": false,
"isSlot": false,
"src": "7247:6:10",
"valueSize": 1
}
],
"id": 7274,
"nodeType": "InlineAssembly",
"src": "7209:84:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7264,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7261,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7258,
"src": "7099:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 7262,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7242,
"src": "7103:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 7263,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7105:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "7103:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7099:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7276,
"initializationExpression": {
"assignments": [
7258
],
"declarations": [
{
"constant": false,
"id": 7258,
"mutability": "mutable",
"name": "i",
"nameLocation": "7092:1:10",
"nodeType": "VariableDeclaration",
"scope": 7276,
"src": "7084:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7257,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7084:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7260,
"initialValue": {
"hexValue": "30",
"id": 7259,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7096:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "7084:13:10"
},
"loopExpression": {
"expression": {
"id": 7266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7113:3:10",
"subExpression": {
"id": 7265,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7258,
"src": "7113:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7267,
"nodeType": "ExpressionStatement",
"src": "7113:3:10"
},
"nodeType": "ForStatement",
"src": "7079:224:10"
},
{
"expression": {
"id": 7277,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7248,
"src": "7320:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 7246,
"id": 7278,
"nodeType": "Return",
"src": "7313:13:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "flatten",
"nameLocation": "6949:7:10",
"parameters": {
"id": 7243,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7242,
"mutability": "mutable",
"name": "b",
"nameLocation": "6974:1:10",
"nodeType": "VariableDeclaration",
"scope": 7280,
"src": "6957:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 7240,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6957:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 7241,
"nodeType": "ArrayTypeName",
"src": "6957:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"src": "6956:20:10"
},
"returnParameters": {
"id": 7246,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7245,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7280,
"src": "6999:12:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7244,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6999:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "6998:14:10"
},
"scope": 7281,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "stdStorageSafe",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
7281
],
"name": "stdStorageSafe",
"nameLocation": "366:14:10",
"scope": 7823,
"usedErrors": []
},
{
"id": 7822,
"nodeType": "ContractDefinition",
"src": "7337:4527:10",
"nodes": [
{
"id": 7298,
"nodeType": "VariableDeclaration",
"src": "7362:84:10",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "vm",
"nameLocation": "7382:2:10",
"scope": 7822,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
},
"typeName": {
"id": 7283,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7282,
"name": "Vm",
"nameLocations": [
"7362:2:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 9256,
"src": "7362:2:10"
},
"referencedDeclaration": 9256,
"src": "7362:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"hexValue": "6865766d20636865617420636f6465",
"id": 7292,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7424: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": 7291,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "7414:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 7293,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7414:28:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 7290,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7406:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 7289,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7406:7:10",
"typeDescriptions": {}
}
},
"id": 7294,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7406:37:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7288,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7398:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 7287,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "7398:7:10",
"typeDescriptions": {}
}
},
"id": 7295,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7398:46:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 7286,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7390:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 7285,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7390:7:10",
"typeDescriptions": {}
}
},
"id": 7296,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7390:55:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 7284,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9256,
"src": "7387:2:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Vm_$9256_$",
"typeString": "type(contract Vm)"
}
},
"id": 7297,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7387:59:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"visibility": "private"
},
{
"id": 7311,
"nodeType": "FunctionDefinition",
"src": "7453:118:10",
"nodes": [],
"body": {
"id": 7310,
"nodeType": "Block",
"src": "7520:51:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7307,
"name": "sigStr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7300,
"src": "7557:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 7305,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "7537:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7306,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7552:4:10",
"memberName": "sigs",
"nodeType": "MemberAccess",
"referencedDeclaration": 6439,
"src": "7537:19:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$",
"typeString": "function (string memory) pure returns (bytes4)"
}
},
"id": 7308,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7537:27:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"functionReturnParameters": 7304,
"id": 7309,
"nodeType": "Return",
"src": "7530:34:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sigs",
"nameLocation": "7462:4:10",
"parameters": {
"id": 7301,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7300,
"mutability": "mutable",
"name": "sigStr",
"nameLocation": "7481:6:10",
"nodeType": "VariableDeclaration",
"scope": 7311,
"src": "7467:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 7299,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7467:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "7466:22:10"
},
"returnParameters": {
"id": 7304,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7303,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7311,
"src": "7512:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 7302,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "7512:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "7511:8:10"
},
"scope": 7822,
"stateMutability": "pure",
"virtual": false,
"visibility": "internal"
},
{
"id": 7325,
"nodeType": "FunctionDefinition",
"src": "7577:115:10",
"nodes": [],
"body": {
"id": 7324,
"nodeType": "Block",
"src": "7643:49:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7321,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7314,
"src": "7680:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 7319,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "7660:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7320,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7675:4:10",
"memberName": "find",
"nodeType": "MemberAccess",
"referencedDeclaration": 6884,
"src": "7660:19:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 7322,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7660:25:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 7318,
"id": 7323,
"nodeType": "Return",
"src": "7653:32:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "find",
"nameLocation": "7586:4:10",
"parameters": {
"id": 7315,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7314,
"mutability": "mutable",
"name": "self",
"nameLocation": "7610:4:10",
"nodeType": "VariableDeclaration",
"scope": 7325,
"src": "7591:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7313,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7312,
"name": "StdStorage",
"nameLocations": [
"7591:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "7591:10:10"
},
"referencedDeclaration": 6388,
"src": "7591:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "7590:25:10"
},
"returnParameters": {
"id": 7318,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7317,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7325,
"src": "7634:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7316,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7634:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "7633:9:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7343,
"nodeType": "FunctionDefinition",
"src": "7698:156:10",
"nodes": [],
"body": {
"id": 7342,
"nodeType": "Block",
"src": "7794:60:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7338,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7328,
"src": "7833:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7339,
"name": "_target",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7330,
"src": "7839:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 7336,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "7811:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7337,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7826:6:10",
"memberName": "target",
"nodeType": "MemberAccess",
"referencedDeclaration": 6904,
"src": "7811:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6388_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 7340,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7811:36:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7335,
"id": 7341,
"nodeType": "Return",
"src": "7804:43:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "target",
"nameLocation": "7707:6:10",
"parameters": {
"id": 7331,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7328,
"mutability": "mutable",
"name": "self",
"nameLocation": "7733:4:10",
"nodeType": "VariableDeclaration",
"scope": 7343,
"src": "7714:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7327,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7326,
"name": "StdStorage",
"nameLocations": [
"7714:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "7714:10:10"
},
"referencedDeclaration": 6388,
"src": "7714:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7330,
"mutability": "mutable",
"name": "_target",
"nameLocation": "7747:7:10",
"nodeType": "VariableDeclaration",
"scope": 7343,
"src": "7739:15:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7329,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7739:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "7713:42:10"
},
"returnParameters": {
"id": 7335,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7334,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7343,
"src": "7774:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7333,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7332,
"name": "StdStorage",
"nameLocations": [
"7774:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "7774:10:10"
},
"referencedDeclaration": 6388,
"src": "7774:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "7773:20:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7361,
"nodeType": "FunctionDefinition",
"src": "7860:143:10",
"nodes": [],
"body": {
"id": 7360,
"nodeType": "Block",
"src": "7949:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7356,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7346,
"src": "7985:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7357,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7348,
"src": "7991:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"id": 7354,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "7966:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7355,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7981:3:10",
"memberName": "sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6924,
"src": "7966:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$6388_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"
}
},
"id": 7358,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7966:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7353,
"id": 7359,
"nodeType": "Return",
"src": "7959:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "7869:3:10",
"parameters": {
"id": 7349,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7346,
"mutability": "mutable",
"name": "self",
"nameLocation": "7892:4:10",
"nodeType": "VariableDeclaration",
"scope": 7361,
"src": "7873:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7345,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7344,
"name": "StdStorage",
"nameLocations": [
"7873:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "7873:10:10"
},
"referencedDeclaration": 6388,
"src": "7873:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7348,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "7905:4:10",
"nodeType": "VariableDeclaration",
"scope": 7361,
"src": "7898:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 7347,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "7898:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "7872:38:10"
},
"returnParameters": {
"id": 7353,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7352,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7361,
"src": "7929:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7351,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7350,
"name": "StdStorage",
"nameLocations": [
"7929:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "7929:10:10"
},
"referencedDeclaration": 6388,
"src": "7929:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "7928:20:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7379,
"nodeType": "FunctionDefinition",
"src": "8009:150:10",
"nodes": [],
"body": {
"id": 7378,
"nodeType": "Block",
"src": "8105:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7374,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7364,
"src": "8141:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7375,
"name": "_sig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7366,
"src": "8147:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"id": 7372,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "8122:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7373,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8137:3:10",
"memberName": "sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6946,
"src": "8122:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_string_memory_ptr_$returns$_t_struct$_StdStorage_$6388_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,string memory) returns (struct StdStorage storage pointer)"
}
},
"id": 7376,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8122:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7371,
"id": 7377,
"nodeType": "Return",
"src": "8115:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sig",
"nameLocation": "8018:3:10",
"parameters": {
"id": 7367,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7364,
"mutability": "mutable",
"name": "self",
"nameLocation": "8041:4:10",
"nodeType": "VariableDeclaration",
"scope": 7379,
"src": "8022:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7363,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7362,
"name": "StdStorage",
"nameLocations": [
"8022:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8022:10:10"
},
"referencedDeclaration": 6388,
"src": "8022:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7366,
"mutability": "mutable",
"name": "_sig",
"nameLocation": "8061:4:10",
"nodeType": "VariableDeclaration",
"scope": 7379,
"src": "8047:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 7365,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "8047:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "8021:45:10"
},
"returnParameters": {
"id": 7371,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7370,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7379,
"src": "8085:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7369,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7368,
"name": "StdStorage",
"nameLocations": [
"8085:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8085:10:10"
},
"referencedDeclaration": 6388,
"src": "8085:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8084:20:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7397,
"nodeType": "FunctionDefinition",
"src": "8165:152:10",
"nodes": [],
"body": {
"id": 7396,
"nodeType": "Block",
"src": "8259:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7392,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7382,
"src": "8300:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7393,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7384,
"src": "8306:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 7390,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "8276:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7391,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8291:8:10",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 6977,
"src": "8276:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6388_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"
}
},
"id": 7394,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8276:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7389,
"id": 7395,
"nodeType": "Return",
"src": "8269:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "8174:8:10",
"parameters": {
"id": 7385,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7382,
"mutability": "mutable",
"name": "self",
"nameLocation": "8202:4:10",
"nodeType": "VariableDeclaration",
"scope": 7397,
"src": "8183:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7381,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7380,
"name": "StdStorage",
"nameLocations": [
"8183:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8183:10:10"
},
"referencedDeclaration": 6388,
"src": "8183:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7384,
"mutability": "mutable",
"name": "who",
"nameLocation": "8216:3:10",
"nodeType": "VariableDeclaration",
"scope": 7397,
"src": "8208:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7383,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8208:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "8182:38:10"
},
"returnParameters": {
"id": 7389,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7388,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7397,
"src": "8239:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7387,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7386,
"name": "StdStorage",
"nameLocations": [
"8239:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8239:10:10"
},
"referencedDeclaration": 6388,
"src": "8239:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8238:20:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7415,
"nodeType": "FunctionDefinition",
"src": "8323:152:10",
"nodes": [],
"body": {
"id": 7414,
"nodeType": "Block",
"src": "8417:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7410,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7400,
"src": "8458:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7411,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7402,
"src": "8464:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 7408,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "8434:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7409,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8449:8:10",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 7002,
"src": "8434:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$6388_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"
}
},
"id": 7412,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8434:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7407,
"id": 7413,
"nodeType": "Return",
"src": "8427:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "8332:8:10",
"parameters": {
"id": 7403,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7400,
"mutability": "mutable",
"name": "self",
"nameLocation": "8360:4:10",
"nodeType": "VariableDeclaration",
"scope": 7415,
"src": "8341:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7399,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7398,
"name": "StdStorage",
"nameLocations": [
"8341:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8341:10:10"
},
"referencedDeclaration": 6388,
"src": "8341:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7402,
"mutability": "mutable",
"name": "amt",
"nameLocation": "8374:3:10",
"nodeType": "VariableDeclaration",
"scope": 7415,
"src": "8366:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7401,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8366:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "8340:38:10"
},
"returnParameters": {
"id": 7407,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7406,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7415,
"src": "8397:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7405,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7404,
"name": "StdStorage",
"nameLocations": [
"8397:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8397:10:10"
},
"referencedDeclaration": 6388,
"src": "8397:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8396:20:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7433,
"nodeType": "FunctionDefinition",
"src": "8481:152:10",
"nodes": [],
"body": {
"id": 7432,
"nodeType": "Block",
"src": "8575:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7428,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7418,
"src": "8616:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7429,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7420,
"src": "8622:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 7426,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "8592:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7427,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8607:8:10",
"memberName": "with_key",
"nodeType": "MemberAccess",
"referencedDeclaration": 7024,
"src": "8592:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_bytes32_$returns$_t_struct$_StdStorage_$6388_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,bytes32) returns (struct StdStorage storage pointer)"
}
},
"id": 7430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8592:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7425,
"id": 7431,
"nodeType": "Return",
"src": "8585:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "with_key",
"nameLocation": "8490:8:10",
"parameters": {
"id": 7421,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7418,
"mutability": "mutable",
"name": "self",
"nameLocation": "8518:4:10",
"nodeType": "VariableDeclaration",
"scope": 7433,
"src": "8499:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7417,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7416,
"name": "StdStorage",
"nameLocations": [
"8499:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8499:10:10"
},
"referencedDeclaration": 6388,
"src": "8499:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7420,
"mutability": "mutable",
"name": "key",
"nameLocation": "8532:3:10",
"nodeType": "VariableDeclaration",
"scope": 7433,
"src": "8524:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7419,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "8524:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "8498:38:10"
},
"returnParameters": {
"id": 7425,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7424,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7433,
"src": "8555:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7423,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7422,
"name": "StdStorage",
"nameLocations": [
"8555:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8555:10:10"
},
"referencedDeclaration": 6388,
"src": "8555:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8554:20:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7451,
"nodeType": "FunctionDefinition",
"src": "8639:152:10",
"nodes": [],
"body": {
"id": 7450,
"nodeType": "Block",
"src": "8733:58:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7446,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7436,
"src": "8771:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7447,
"name": "_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7438,
"src": "8777:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 7444,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "8750:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7445,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "8765:5:10",
"memberName": "depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 7044,
"src": "8750:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$6388_storage_ptr_$",
"typeString": "function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"
}
},
"id": 7448,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8750:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"functionReturnParameters": 7443,
"id": 7449,
"nodeType": "Return",
"src": "8743:41:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "depth",
"nameLocation": "8648:5:10",
"parameters": {
"id": 7439,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7436,
"mutability": "mutable",
"name": "self",
"nameLocation": "8673:4:10",
"nodeType": "VariableDeclaration",
"scope": 7451,
"src": "8654:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7435,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7434,
"name": "StdStorage",
"nameLocations": [
"8654:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8654:10:10"
},
"referencedDeclaration": 6388,
"src": "8654:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7438,
"mutability": "mutable",
"name": "_depth",
"nameLocation": "8687:6:10",
"nodeType": "VariableDeclaration",
"scope": 7451,
"src": "8679:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7437,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8679:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "8653:41:10"
},
"returnParameters": {
"id": 7443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7442,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7451,
"src": "8713:18:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7441,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7440,
"name": "StdStorage",
"nameLocations": [
"8713:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8713:10:10"
},
"referencedDeclaration": 6388,
"src": "8713:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "8712:20:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7474,
"nodeType": "FunctionDefinition",
"src": "8797:138:10",
"nodes": [],
"body": {
"id": 7473,
"nodeType": "Block",
"src": "8867:68:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7460,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7454,
"src": "8891:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"id": 7467,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7456,
"src": "8921:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 7466,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8913:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 7465,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "8913:7:10",
"typeDescriptions": {}
}
},
"id": 7468,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8913:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 7464,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8905:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 7463,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8905:7:10",
"typeDescriptions": {}
}
},
"id": 7469,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8905:21:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7462,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "8897:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 7461,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "8897:7:10",
"typeDescriptions": {}
}
},
"id": 7470,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8897:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 7459,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
7474,
7491,
7509,
7654
],
"referencedDeclaration": 7654,
"src": "8877:13:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 7471,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "8877:51:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7472,
"nodeType": "ExpressionStatement",
"src": "8877:51:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "8806:13:10",
"parameters": {
"id": 7457,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7454,
"mutability": "mutable",
"name": "self",
"nameLocation": "8839:4:10",
"nodeType": "VariableDeclaration",
"scope": 7474,
"src": "8820:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7453,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7452,
"name": "StdStorage",
"nameLocations": [
"8820:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8820:10:10"
},
"referencedDeclaration": 6388,
"src": "8820:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7456,
"mutability": "mutable",
"name": "who",
"nameLocation": "8853:3:10",
"nodeType": "VariableDeclaration",
"scope": 7474,
"src": "8845:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7455,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8845:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "8819:38:10"
},
"returnParameters": {
"id": 7458,
"nodeType": "ParameterList",
"parameters": [],
"src": "8867:0:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7491,
"nodeType": "FunctionDefinition",
"src": "8941:120:10",
"nodes": [],
"body": {
"id": 7490,
"nodeType": "Block",
"src": "9011:50:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7483,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7477,
"src": "9035:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"arguments": [
{
"id": 7486,
"name": "amt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7479,
"src": "9049:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7485,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "9041:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 7484,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9041:7:10",
"typeDescriptions": {}
}
},
"id": 7487,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9041:12:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 7482,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
7474,
7491,
7509,
7654
],
"referencedDeclaration": 7654,
"src": "9021:13:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 7488,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9021:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7489,
"nodeType": "ExpressionStatement",
"src": "9021:33:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "8950:13:10",
"parameters": {
"id": 7480,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7477,
"mutability": "mutable",
"name": "self",
"nameLocation": "8983:4:10",
"nodeType": "VariableDeclaration",
"scope": 7491,
"src": "8964:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7476,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7475,
"name": "StdStorage",
"nameLocations": [
"8964:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "8964:10:10"
},
"referencedDeclaration": 6388,
"src": "8964:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7479,
"mutability": "mutable",
"name": "amt",
"nameLocation": "8997:3:10",
"nodeType": "VariableDeclaration",
"scope": 7491,
"src": "8989:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7478,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8989:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "8963:38:10"
},
"returnParameters": {
"id": 7481,
"nodeType": "ParameterList",
"parameters": [],
"src": "9011:0:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7509,
"nodeType": "FunctionDefinition",
"src": "9067:222:10",
"nodes": [],
"body": {
"id": 7508,
"nodeType": "Block",
"src": "9136:153:10",
"nodes": [],
"statements": [
{
"assignments": [
7500
],
"declarations": [
{
"constant": false,
"id": 7500,
"mutability": "mutable",
"name": "t",
"nameLocation": "9154:1:10",
"nodeType": "VariableDeclaration",
"scope": 7508,
"src": "9146:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7499,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9146:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7501,
"nodeType": "VariableDeclarationStatement",
"src": "9146:9:10"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "9217:34:10",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9231:10:10",
"value": {
"name": "write",
"nodeType": "YulIdentifier",
"src": "9236:5:10"
},
"variableNames": [
{
"name": "t",
"nodeType": "YulIdentifier",
"src": "9231:1:10"
}
]
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 7500,
"isOffset": false,
"isSlot": false,
"src": "9231:1:10",
"valueSize": 1
},
{
"declaration": 7496,
"isOffset": false,
"isSlot": false,
"src": "9236:5:10",
"valueSize": 1
}
],
"id": 7502,
"nodeType": "InlineAssembly",
"src": "9208:43:10"
},
{
"expression": {
"arguments": [
{
"id": 7504,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7494,
"src": "9274:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
{
"id": 7505,
"name": "t",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7500,
"src": "9280:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 7503,
"name": "checked_write",
"nodeType": "Identifier",
"overloadedDeclarations": [
7474,
7491,
7509,
7654
],
"referencedDeclaration": 7654,
"src": "9260:13:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$_t_bytes32_$returns$__$",
"typeString": "function (struct StdStorage storage pointer,bytes32)"
}
},
"id": 7506,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9260:22:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7507,
"nodeType": "ExpressionStatement",
"src": "9260:22:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "9076:13:10",
"parameters": {
"id": 7497,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7494,
"mutability": "mutable",
"name": "self",
"nameLocation": "9109:4:10",
"nodeType": "VariableDeclaration",
"scope": 7509,
"src": "9090:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7493,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7492,
"name": "StdStorage",
"nameLocations": [
"9090:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "9090:10:10"
},
"referencedDeclaration": 6388,
"src": "9090:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7496,
"mutability": "mutable",
"name": "write",
"nameLocation": "9120:5:10",
"nodeType": "VariableDeclaration",
"scope": 7509,
"src": "9115:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 7495,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9115:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "9089:37:10"
},
"returnParameters": {
"id": 7498,
"nodeType": "ParameterList",
"parameters": [],
"src": "9136:0:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7654,
"nodeType": "FunctionDefinition",
"src": "9295:1095:10",
"nodes": [],
"body": {
"id": 7653,
"nodeType": "Block",
"src": "9365:1025:10",
"nodes": [],
"statements": [
{
"assignments": [
7518
],
"declarations": [
{
"constant": false,
"id": 7518,
"mutability": "mutable",
"name": "who",
"nameLocation": "9383:3:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9375:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7517,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9375:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 7521,
"initialValue": {
"expression": {
"id": 7519,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "9389:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7520,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9394:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 6385,
"src": "9389:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9375:26:10"
},
{
"assignments": [
7523
],
"declarations": [
{
"constant": false,
"id": 7523,
"mutability": "mutable",
"name": "fsig",
"nameLocation": "9418:4:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9411:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 7522,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "9411:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"id": 7526,
"initialValue": {
"expression": {
"id": 7524,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "9425:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7525,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9430:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6381,
"src": "9425:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9411:23:10"
},
{
"assignments": [
7528
],
"declarations": [
{
"constant": false,
"id": 7528,
"mutability": "mutable",
"name": "field_depth",
"nameLocation": "9452:11:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9444:19:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7527,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9444:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7531,
"initialValue": {
"expression": {
"id": 7529,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "9466:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7530,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9471:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 6383,
"src": "9466:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9444:33:10"
},
{
"assignments": [
7536
],
"declarations": [
{
"constant": false,
"id": 7536,
"mutability": "mutable",
"name": "ins",
"nameLocation": "9504:3:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9487:20:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 7534,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9487:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 7535,
"nodeType": "ArrayTypeName",
"src": "9487:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"id": 7539,
"initialValue": {
"expression": {
"id": 7537,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "9510:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7538,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9515:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 6379,
"src": "9510:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9487:33:10"
},
{
"assignments": [
7541
],
"declarations": [
{
"constant": false,
"id": 7541,
"mutability": "mutable",
"name": "cald",
"nameLocation": "9544:4:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9531:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7540,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "9531:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 7549,
"initialValue": {
"arguments": [
{
"id": 7544,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7523,
"src": "9568:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
{
"arguments": [
{
"id": 7546,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7536,
"src": "9582: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": 7545,
"name": "flatten",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7821,
"src": "9574: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": 7547,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9574: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": 7542,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9551:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7543,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9555:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "9551:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 7548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9551:36:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9531:56:10"
},
{
"condition": {
"id": 7564,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "9601:69:10",
"subExpression": {
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 7550,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "9602:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7551,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9607:5:10",
"memberName": "finds",
"nodeType": "MemberAccess",
"referencedDeclaration": 6376,
"src": "9602: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": 7553,
"indexExpression": {
"id": 7552,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7518,
"src": "9613:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9602:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => bool))"
}
},
"id": 7555,
"indexExpression": {
"id": 7554,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7523,
"src": "9618:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9602:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 7563,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 7559,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7536,
"src": "9651:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 7560,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7528,
"src": "9656: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": 7557,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9634:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7558,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9638:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "9634:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 7561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9634:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 7556,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9624:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 7562,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9624:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9602:68:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7570,
"nodeType": "IfStatement",
"src": "9597:110:10",
"trueBody": {
"id": 7569,
"nodeType": "Block",
"src": "9672:35:10",
"statements": [
{
"expression": {
"arguments": [
{
"id": 7566,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "9691:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"id": 7565,
"name": "find",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7325,
"src": "9686:4:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 7567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9686:10:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7568,
"nodeType": "ExpressionStatement",
"src": "9686:10:10"
}
]
}
},
{
"assignments": [
7572
],
"declarations": [
{
"constant": false,
"id": 7572,
"mutability": "mutable",
"name": "slot",
"nameLocation": "9724:4:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9716:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7571,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9716:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7590,
"initialValue": {
"arguments": [
{
"baseExpression": {
"baseExpression": {
"baseExpression": {
"expression": {
"id": 7575,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "9739:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7576,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9744:5:10",
"memberName": "slots",
"nodeType": "MemberAccess",
"referencedDeclaration": 6368,
"src": "9739: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": 7578,
"indexExpression": {
"id": 7577,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7518,
"src": "9750:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9739:15:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
"typeString": "mapping(bytes4 => mapping(bytes32 => uint256))"
}
},
"id": 7580,
"indexExpression": {
"id": 7579,
"name": "fsig",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7523,
"src": "9755:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9739:21:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 7588,
"indexExpression": {
"arguments": [
{
"arguments": [
{
"id": 7584,
"name": "ins",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7536,
"src": "9788:3:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"id": 7585,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7528,
"src": "9793: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": 7582,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "9771:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 7583,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "9775:12:10",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "9771:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 7586,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9771:34:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 7581,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "9761:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 7587,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9761:45:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9739:68:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7574,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "9731:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 7573,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9731:7:10",
"typeDescriptions": {}
}
},
"id": 7589,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9731:77:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9716:92:10"
},
{
"assignments": [
7592
],
"declarations": [
{
"constant": false,
"id": 7592,
"mutability": "mutable",
"name": "fdat",
"nameLocation": "9827:4:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9819:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7591,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9819:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7593,
"nodeType": "VariableDeclarationStatement",
"src": "9819:12:10"
},
{
"id": 7610,
"nodeType": "Block",
"src": "9841:128:10",
"statements": [
{
"assignments": [
null,
7595
],
"declarations": [
null,
{
"constant": false,
"id": 7595,
"mutability": "mutable",
"name": "rdat",
"nameLocation": "9871:4:10",
"nodeType": "VariableDeclaration",
"scope": 7610,
"src": "9858:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7594,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "9858:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 7600,
"initialValue": {
"arguments": [
{
"id": 7598,
"name": "cald",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7541,
"src": "9894:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 7596,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7518,
"src": "9879:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 7597,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9883:10:10",
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "9879: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": 7599,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9879:20:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9855:44:10"
},
{
"expression": {
"id": 7608,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 7601,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7592,
"src": "9913:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 7603,
"name": "rdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7595,
"src": "9935:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"hexValue": "3332",
"id": 7604,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9941:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"id": 7605,
"name": "field_depth",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7528,
"src": "9946:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "9941:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7602,
"name": "bytesToBytes32",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7780,
"src": "9920: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": 7607,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9920:38:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "9913:45:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 7609,
"nodeType": "ExpressionStatement",
"src": "9913:45:10"
}
]
},
{
"assignments": [
7612
],
"declarations": [
{
"constant": false,
"id": 7612,
"mutability": "mutable",
"name": "curr",
"nameLocation": "9986:4:10",
"nodeType": "VariableDeclaration",
"scope": 7653,
"src": "9978:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7611,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9978:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7618,
"initialValue": {
"arguments": [
{
"id": 7615,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7518,
"src": "10001:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 7616,
"name": "slot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7572,
"src": "10006:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 7613,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7298,
"src": "9993:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 7614,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "9996:4:10",
"memberName": "load",
"nodeType": "MemberAccess",
"referencedDeclaration": 8307,
"src": "9993:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$",
"typeString": "function (address,bytes32) view external returns (bytes32)"
}
},
"id": 7617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "9993:18:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9978:33:10"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 7621,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7619,
"name": "fdat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7592,
"src": "10026:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 7620,
"name": "curr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7612,
"src": "10034:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "10026:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7628,
"nodeType": "IfStatement",
"src": "10022:218:10",
"trueBody": {
"id": 7627,
"nodeType": "Block",
"src": "10040:200:10",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "66616c7365",
"id": 7623,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10079:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"hexValue": "73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e",
"id": 7624,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "10102: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": 7622,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "10054:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 7625,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10054:175:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7626,
"nodeType": "ExpressionStatement",
"src": "10054:175:10"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 7632,
"name": "who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7518,
"src": "10258:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 7633,
"name": "slot",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7572,
"src": "10263:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 7634,
"name": "set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7514,
"src": "10269: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": 7629,
"name": "vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7298,
"src": "10249:2:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"id": 7631,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10252:5:10",
"memberName": "store",
"nodeType": "MemberAccess",
"referencedDeclaration": 8967,
"src": "10249:8:10",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$",
"typeString": "function (address,bytes32,bytes32) external"
}
},
"id": 7635,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10249:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7636,
"nodeType": "ExpressionStatement",
"src": "10249:24:10"
},
{
"expression": {
"id": 7639,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10283:19:10",
"subExpression": {
"expression": {
"id": 7637,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "10290:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7638,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10295:7:10",
"memberName": "_target",
"nodeType": "MemberAccess",
"referencedDeclaration": 6385,
"src": "10290:12:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7640,
"nodeType": "ExpressionStatement",
"src": "10283:19:10"
},
{
"expression": {
"id": 7643,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10312:16:10",
"subExpression": {
"expression": {
"id": 7641,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "10319:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7642,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10324:4:10",
"memberName": "_sig",
"nodeType": "MemberAccess",
"referencedDeclaration": 6381,
"src": "10319:9:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7644,
"nodeType": "ExpressionStatement",
"src": "10312:16:10"
},
{
"expression": {
"id": 7647,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10338:17:10",
"subExpression": {
"expression": {
"id": 7645,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "10345:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7646,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10350:5:10",
"memberName": "_keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 6379,
"src": "10345:10:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
"typeString": "bytes32[] storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7648,
"nodeType": "ExpressionStatement",
"src": "10338:17:10"
},
{
"expression": {
"id": 7651,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "10365:18:10",
"subExpression": {
"expression": {
"id": 7649,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7512,
"src": "10372:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
},
"id": 7650,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "10377:6:10",
"memberName": "_depth",
"nodeType": "MemberAccess",
"referencedDeclaration": 6383,
"src": "10372:11:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 7652,
"nodeType": "ExpressionStatement",
"src": "10365:18:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "checked_write",
"nameLocation": "9304:13:10",
"parameters": {
"id": 7515,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7512,
"mutability": "mutable",
"name": "self",
"nameLocation": "9337:4:10",
"nodeType": "VariableDeclaration",
"scope": 7654,
"src": "9318:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7511,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7510,
"name": "StdStorage",
"nameLocations": [
"9318:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "9318:10:10"
},
"referencedDeclaration": 6388,
"src": "9318:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7514,
"mutability": "mutable",
"name": "set",
"nameLocation": "9351:3:10",
"nodeType": "VariableDeclaration",
"scope": 7654,
"src": "9343:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7513,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "9343:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "9317:38:10"
},
"returnParameters": {
"id": 7516,
"nodeType": "ParameterList",
"parameters": [],
"src": "9365:0:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7668,
"nodeType": "FunctionDefinition",
"src": "10396:131:10",
"nodes": [],
"body": {
"id": 7667,
"nodeType": "Block",
"src": "10470:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7664,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7657,
"src": "10515:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 7662,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "10487:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7663,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10502:12:10",
"memberName": "read_bytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 7095,
"src": "10487:27:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_bytes32_$",
"typeString": "function (struct StdStorage storage pointer) returns (bytes32)"
}
},
"id": 7665,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10487:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 7661,
"id": 7666,
"nodeType": "Return",
"src": "10480:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bytes32",
"nameLocation": "10405:12:10",
"parameters": {
"id": 7658,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7657,
"mutability": "mutable",
"name": "self",
"nameLocation": "10437:4:10",
"nodeType": "VariableDeclaration",
"scope": 7668,
"src": "10418:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7656,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7655,
"name": "StdStorage",
"nameLocations": [
"10418:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "10418:10:10"
},
"referencedDeclaration": 6388,
"src": "10418:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10417:25:10"
},
"returnParameters": {
"id": 7661,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7660,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7668,
"src": "10461:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7659,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "10461:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "10460:9:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7682,
"nodeType": "FunctionDefinition",
"src": "10533:122:10",
"nodes": [],
"body": {
"id": 7681,
"nodeType": "Block",
"src": "10601:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7678,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7671,
"src": "10643:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 7676,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "10618:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7677,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10633:9:10",
"memberName": "read_bool",
"nodeType": "MemberAccess",
"referencedDeclaration": 7126,
"src": "10618:24:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_bool_$",
"typeString": "function (struct StdStorage storage pointer) returns (bool)"
}
},
"id": 7679,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10618:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 7675,
"id": 7680,
"nodeType": "Return",
"src": "10611:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_bool",
"nameLocation": "10542:9:10",
"parameters": {
"id": 7672,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7671,
"mutability": "mutable",
"name": "self",
"nameLocation": "10571:4:10",
"nodeType": "VariableDeclaration",
"scope": 7682,
"src": "10552:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7670,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7669,
"name": "StdStorage",
"nameLocations": [
"10552:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "10552:10:10"
},
"referencedDeclaration": 6388,
"src": "10552:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10551:25:10"
},
"returnParameters": {
"id": 7675,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7674,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7682,
"src": "10595:4:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 7673,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "10595:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "10594:6:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7696,
"nodeType": "FunctionDefinition",
"src": "10661:131:10",
"nodes": [],
"body": {
"id": 7695,
"nodeType": "Block",
"src": "10735:57:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7692,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7685,
"src": "10780:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 7690,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "10752:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7691,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10767:12:10",
"memberName": "read_address",
"nodeType": "MemberAccess",
"referencedDeclaration": 7145,
"src": "10752:27:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_address_$",
"typeString": "function (struct StdStorage storage pointer) returns (address)"
}
},
"id": 7693,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10752:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 7689,
"id": 7694,
"nodeType": "Return",
"src": "10745:40:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_address",
"nameLocation": "10670:12:10",
"parameters": {
"id": 7686,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7685,
"mutability": "mutable",
"name": "self",
"nameLocation": "10702:4:10",
"nodeType": "VariableDeclaration",
"scope": 7696,
"src": "10683:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7684,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7683,
"name": "StdStorage",
"nameLocations": [
"10683:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "10683:10:10"
},
"referencedDeclaration": 6388,
"src": "10683:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10682:25:10"
},
"returnParameters": {
"id": 7689,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7688,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7696,
"src": "10726:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7687,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10726:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "10725:9:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7710,
"nodeType": "FunctionDefinition",
"src": "10798:125:10",
"nodes": [],
"body": {
"id": 7709,
"nodeType": "Block",
"src": "10869:54:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7706,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7699,
"src": "10911:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 7704,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "10886:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7705,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "10901:9:10",
"memberName": "read_uint",
"nodeType": "MemberAccess",
"referencedDeclaration": 7164,
"src": "10886:24:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_uint256_$",
"typeString": "function (struct StdStorage storage pointer) returns (uint256)"
}
},
"id": 7707,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "10886:30:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 7703,
"id": 7708,
"nodeType": "Return",
"src": "10879:37:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_uint",
"nameLocation": "10807:9:10",
"parameters": {
"id": 7700,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7699,
"mutability": "mutable",
"name": "self",
"nameLocation": "10836:4:10",
"nodeType": "VariableDeclaration",
"scope": 7710,
"src": "10817:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7698,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7697,
"name": "StdStorage",
"nameLocations": [
"10817:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "10817:10:10"
},
"referencedDeclaration": 6388,
"src": "10817:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10816:25:10"
},
"returnParameters": {
"id": 7703,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7702,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7710,
"src": "10860:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7701,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10860:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "10859:9:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7724,
"nodeType": "FunctionDefinition",
"src": "10929:122:10",
"nodes": [],
"body": {
"id": 7723,
"nodeType": "Block",
"src": "10998:53:10",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 7720,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7713,
"src": "11039:4:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage storage pointer"
}
],
"expression": {
"id": 7718,
"name": "stdStorageSafe",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7281,
"src": "11015:14:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_stdStorageSafe_$7281_$",
"typeString": "type(library stdStorageSafe)"
}
},
"id": 7719,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11030:8:10",
"memberName": "read_int",
"nodeType": "MemberAccess",
"referencedDeclaration": 7183,
"src": "11015:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_StdStorage_$6388_storage_ptr_$returns$_t_int256_$",
"typeString": "function (struct StdStorage storage pointer) returns (int256)"
}
},
"id": 7721,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11015:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"functionReturnParameters": 7717,
"id": 7722,
"nodeType": "Return",
"src": "11008:36:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "read_int",
"nameLocation": "10938:8:10",
"parameters": {
"id": 7714,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7713,
"mutability": "mutable",
"name": "self",
"nameLocation": "10966:4:10",
"nodeType": "VariableDeclaration",
"scope": 7724,
"src": "10947:23:10",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 7712,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 7711,
"name": "StdStorage",
"nameLocations": [
"10947:10:10"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "10947:10:10"
},
"referencedDeclaration": 6388,
"src": "10947:10:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
}
],
"src": "10946:25:10"
},
"returnParameters": {
"id": 7717,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7716,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7724,
"src": "10990:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 7715,
"name": "int256",
"nodeType": "ElementaryTypeName",
"src": "10990:6:10",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"visibility": "internal"
}
],
"src": "10989:8:10"
},
"scope": 7822,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 7780,
"nodeType": "FunctionDefinition",
"src": "11108:304:10",
"nodes": [],
"body": {
"id": 7779,
"nodeType": "Block",
"src": "11195:217:10",
"nodes": [],
"statements": [
{
"assignments": [
7734
],
"declarations": [
{
"constant": false,
"id": 7734,
"mutability": "mutable",
"name": "out",
"nameLocation": "11213:3:10",
"nodeType": "VariableDeclaration",
"scope": 7779,
"src": "11205:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7733,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11205:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7735,
"nodeType": "VariableDeclarationStatement",
"src": "11205:11:10"
},
{
"assignments": [
7737
],
"declarations": [
{
"constant": false,
"id": 7737,
"mutability": "mutable",
"name": "max",
"nameLocation": "11235:3:10",
"nodeType": "VariableDeclaration",
"scope": 7779,
"src": "11227:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7736,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11227:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7746,
"initialValue": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7741,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 7738,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7726,
"src": "11241:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 7739,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11243:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11241:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "3332",
"id": 7740,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11252:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "11241:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"expression": {
"id": 7743,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7726,
"src": "11262:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 7744,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11264:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11262:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7745,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "11241:29:10",
"trueExpression": {
"hexValue": "3332",
"id": 7742,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11257:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11227:43:10"
},
{
"body": {
"id": 7775,
"nodeType": "Block",
"src": "11314:72:10",
"statements": [
{
"expression": {
"id": 7773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 7757,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7734,
"src": "11328:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "|=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 7772,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 7766,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 7760,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7726,
"src": "11343:1:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 7764,
"indexExpression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7763,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7761,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7728,
"src": "11345:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 7762,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7748,
"src": "11354:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11345:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11343:13:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "&",
"rightExpression": {
"hexValue": "30784646",
"id": 7765,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11359:4:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xFF"
},
"src": "11343:20:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
],
"id": 7759,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "11335:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 7758,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11335:7:10",
"typeDescriptions": {}
}
},
"id": 7767,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11335:29:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"components": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7770,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7768,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7748,
"src": "11369:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "38",
"id": 7769,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11373:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "11369:5:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 7771,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "11368:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11335:40:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "11328:47:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 7774,
"nodeType": "ExpressionStatement",
"src": "11328:47:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7753,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7751,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7748,
"src": "11300:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 7752,
"name": "max",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7737,
"src": "11304:3:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11300:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7776,
"initializationExpression": {
"assignments": [
7748
],
"declarations": [
{
"constant": false,
"id": 7748,
"mutability": "mutable",
"name": "i",
"nameLocation": "11293:1:10",
"nodeType": "VariableDeclaration",
"scope": 7776,
"src": "11285:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7747,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11285:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7750,
"initialValue": {
"hexValue": "30",
"id": 7749,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11297:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "11285:13:10"
},
"loopExpression": {
"expression": {
"id": 7755,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "11309:3:10",
"subExpression": {
"id": 7754,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7748,
"src": "11309:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7756,
"nodeType": "ExpressionStatement",
"src": "11309:3:10"
},
"nodeType": "ForStatement",
"src": "11280:106:10"
},
{
"expression": {
"id": 7777,
"name": "out",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7734,
"src": "11402:3:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 7732,
"id": 7778,
"nodeType": "Return",
"src": "11395:10:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "bytesToBytes32",
"nameLocation": "11117:14:10",
"parameters": {
"id": 7729,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7726,
"mutability": "mutable",
"name": "b",
"nameLocation": "11145:1:10",
"nodeType": "VariableDeclaration",
"scope": 7780,
"src": "11132:14:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7725,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11132:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 7728,
"mutability": "mutable",
"name": "offset",
"nameLocation": "11156:6:10",
"nodeType": "VariableDeclaration",
"scope": 7780,
"src": "11148:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7727,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11148:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "11131:32:10"
},
"returnParameters": {
"id": 7732,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7731,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7780,
"src": "11186:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7730,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11186:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "11185:9:10"
},
"scope": 7822,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
},
{
"id": 7821,
"nodeType": "FunctionDefinition",
"src": "11469:393:10",
"nodes": [],
"body": {
"id": 7820,
"nodeType": "Block",
"src": "11542:320:10",
"nodes": [],
"statements": [
{
"assignments": [
7789
],
"declarations": [
{
"constant": false,
"id": 7789,
"mutability": "mutable",
"name": "result",
"nameLocation": "11565:6:10",
"nodeType": "VariableDeclaration",
"scope": 7820,
"src": "11552:19:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7788,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11552:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 7797,
"initialValue": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7795,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 7792,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7783,
"src": "11584:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 7793,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11586:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11584:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "3332",
"id": 7794,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11595:2:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "11584:13:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 7791,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "11574:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 7790,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11578:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 7796,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "11574:24:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11552:46:10"
},
{
"body": {
"id": 7816,
"nodeType": "Block",
"src": "11647:185:10",
"statements": [
{
"assignments": [
7810
],
"declarations": [
{
"constant": false,
"id": 7810,
"mutability": "mutable",
"name": "k",
"nameLocation": "11669:1:10",
"nodeType": "VariableDeclaration",
"scope": 7816,
"src": "11661:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 7809,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11661:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"id": 7814,
"initialValue": {
"baseExpression": {
"id": 7811,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7783,
"src": "11673:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 7813,
"indexExpression": {
"id": 7812,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7799,
"src": "11675:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11673:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11661:16:10"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "11747:75:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "11776:6:10"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11788:2:10",
"type": "",
"value": "32"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11796:2:10",
"type": "",
"value": "32"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "11800:1:10"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "11792:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11792:10:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11784:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11784:19:10"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11772:3:10"
},
"nodeType": "YulFunctionCall",
"src": "11772:32:10"
},
{
"name": "k",
"nodeType": "YulIdentifier",
"src": "11806:1:10"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11765:6:10"
},
"nodeType": "YulFunctionCall",
"src": "11765:43:10"
},
"nodeType": "YulExpressionStatement",
"src": "11765:43:10"
}
]
},
"documentation": "@solidity memory-safe-assembly",
"evmVersion": "london",
"externalReferences": [
{
"declaration": 7799,
"isOffset": false,
"isSlot": false,
"src": "11800:1:10",
"valueSize": 1
},
{
"declaration": 7810,
"isOffset": false,
"isSlot": false,
"src": "11806:1:10",
"valueSize": 1
},
{
"declaration": 7789,
"isOffset": false,
"isSlot": false,
"src": "11776:6:10",
"valueSize": 1
}
],
"id": 7815,
"nodeType": "InlineAssembly",
"src": "11738:84:10"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 7805,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7802,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7799,
"src": "11628:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 7803,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7783,
"src": "11632:1:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
"id": 7804,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "11634:6:10",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "11632:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11628:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 7817,
"initializationExpression": {
"assignments": [
7799
],
"declarations": [
{
"constant": false,
"id": 7799,
"mutability": "mutable",
"name": "i",
"nameLocation": "11621:1:10",
"nodeType": "VariableDeclaration",
"scope": 7817,
"src": "11613:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 7798,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11613:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 7801,
"initialValue": {
"hexValue": "30",
"id": 7800,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11625:1:10",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "11613:13:10"
},
"loopExpression": {
"expression": {
"id": 7807,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "11642:3:10",
"subExpression": {
"id": 7806,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7799,
"src": "11642:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 7808,
"nodeType": "ExpressionStatement",
"src": "11642:3:10"
},
"nodeType": "ForStatement",
"src": "11608:224:10"
},
{
"expression": {
"id": 7818,
"name": "result",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7789,
"src": "11849:6:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 7787,
"id": 7819,
"nodeType": "Return",
"src": "11842:13:10"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "flatten",
"nameLocation": "11478:7:10",
"parameters": {
"id": 7784,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7783,
"mutability": "mutable",
"name": "b",
"nameLocation": "11503:1:10",
"nodeType": "VariableDeclaration",
"scope": 7821,
"src": "11486:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
"id": 7781,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "11486:7:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 7782,
"nodeType": "ArrayTypeName",
"src": "11486:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"visibility": "internal"
}
],
"src": "11485:20:10"
},
"returnParameters": {
"id": 7787,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7786,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 7821,
"src": "11528:12:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 7785,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "11528:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "11527:14:10"
},
"scope": 7822,
"stateMutability": "pure",
"virtual": false,
"visibility": "private"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "stdStorage",
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"linearizedBaseContracts": [
7822
],
"name": "stdStorage",
"nameLocation": "7345:10:10",
"scope": 7823,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 10
}