jcc-solidity-utils
Version:
jcc solidity utils
8,110 lines • 345 kB
JSON
{
"contractName": "TransferList",
"abi": [],
"metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TransferList.sol\":\"TransferList\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TransferList.sol\":{\"keccak256\":\"0xa727d843e9e080cfb18db56d3743b43976e6088611fe9410116979c3445ba307\",\"urls\":[\"bzzr://85a66c643474d182af350b259820260ef87a94eeda0c3128209a42437452bc83\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x239546071316c89d3bbc9e61b2ccae270a4493bbd2f7c240052f533807d50ab7\",\"urls\":[\"bzzr://267bf48e0a30f7b671aa3c98a6b27ffe7bc64efd6533f49e54188b520baa94c5\"]}},\"version\":1}",
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820f51c935f380f89eec8ae0dc343b00acd05dbd2dc13e5c9b61c86bf3066afa7c00029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820f51c935f380f89eec8ae0dc343b00acd05dbd2dc13e5c9b61c86bf3066afa7c00029",
"sourceMap": "94:2998:18:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
"deployedSourceMap": "94:2998:18:-;;;;;;;;",
"source": "pragma solidity >=0.4.24;\n\nimport \"../math/SafeMath.sol\";\n\n/**\n * @dev 通证列表处理\n */\nlibrary TransferList {\n using SafeMath for uint256;\n\n // 通证定义\n struct element {\n // 发起地址\n address from;\n // chainid+issuer计算的hash, chainid遵循BIP44,issuer遵守TokenList中规定\n bytes32 tokenHash;\n // 数量,ERC20需要注意decimals\n uint256 amount;\n // 在数组中的索引\n uint256 idx;\n // 目的地址\n string to;\n }\n\n struct transferMap {\n // element hash => index\n mapping(bytes32 => uint256) map;\n // data array 单向增加\n element[] list;\n }\n\n function getHash(element e) internal pure returns (bytes32) {\n return\n keccak256(abi.encodePacked(e.from, e.tokenHash, e.amount, e.idx, e.to));\n }\n\n function existByIdx(transferMap storage self, uint256 _idx)\n internal\n view\n returns (bool)\n {\n if (_idx >= self.list.length) return false;\n return true;\n }\n\n function existByHash(transferMap storage self, bytes32 _hash)\n internal\n view\n returns (bool)\n {\n /**\n 如果没有这个长度判断,在第一次操作时会导致invalid opcode\n */\n if (self.list.length == 0) return false;\n element storage e = self.list[self.map[_hash]];\n return _hash == getHash(e);\n }\n\n // 增加跨链转账指令内容\n function insert(\n transferMap storage self,\n address _from,\n bytes32 _tokenHash,\n uint256 _amount,\n string _to\n ) internal returns (bytes32) {\n element memory e =\n element({\n from: _from,\n tokenHash: _tokenHash,\n amount: _amount,\n idx: self.list.length,\n to: _to\n });\n\n bytes32 _hash = getHash(e);\n require(!existByHash(self, _hash), \"same transfer data exist\");\n\n self.list.push(e);\n self.map[_hash] = e.idx;\n\n return _hash;\n }\n\n function count(transferMap storage self) internal view returns (uint256) {\n return self.list.length;\n }\n\n function getByIdx(transferMap storage self, uint256 _idx)\n internal\n view\n returns (TransferList.element)\n {\n require(existByIdx(self, _idx), \"index must small than current count\");\n return self.list[_idx];\n }\n\n function getByHash(transferMap storage self, bytes32 _hash)\n internal\n view\n returns (TransferList.element)\n {\n require(existByHash(self, _hash), \"hash does not exist\");\n return self.list[self.map[_hash]];\n }\n\n /**\n @dev 从指定位置返回多条(不多于count)地址记录,如果不足则空缺\n */\n function getList(\n transferMap storage self,\n uint256 from,\n uint256 _count\n ) internal view returns (TransferList.element[] memory) {\n uint256 _idx = 0;\n require(from >= self.list.length, \"from must small than count\");\n require(_count > 0, \"return number must bigger than 0\");\n\n TransferList.element[] memory res = new TransferList.element[](_count);\n\n for (uint256 i = from; i < self.list.length; i++) {\n if (_idx == _count) {\n break;\n }\n\n res[_idx] = self.list[i];\n _idx = _idx.add(1);\n }\n\n return res;\n }\n}\n",
"sourcePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TransferList.sol",
"ast": {
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TransferList.sol",
"exportedSymbols": {
"TransferList": [
5282
]
},
"id": 5283,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4975,
"literals": [
"solidity",
">=",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:25:18"
},
{
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
"file": "../math/SafeMath.sol",
"id": 4976,
"nodeType": "ImportDirective",
"scope": 5283,
"sourceUnit": 5658,
"src": "27:30:18",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": "@dev 通证列表处理",
"fullyImplemented": true,
"id": 5282,
"linearizedBaseContracts": [
5282
],
"name": "TransferList",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4979,
"libraryName": {
"contractScope": null,
"id": 4977,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5657,
"src": "125:8:18",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$5657",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "119:27:18",
"typeName": {
"id": 4978,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "138:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"canonicalName": "TransferList.element",
"id": 4990,
"members": [
{
"constant": false,
"id": 4981,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "209:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4980,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "209:7:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4983,
"name": "tokenHash",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "313:17:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4982,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "313:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4985,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "378:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4984,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "378:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4987,
"name": "idx",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "427:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4986,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "427:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4989,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "464:9:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4988,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "464:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "element",
"nodeType": "StructDefinition",
"scope": 5282,
"src": "168:310:18",
"visibility": "public"
},
{
"canonicalName": "TransferList.transferMap",
"id": 4998,
"members": [
{
"constant": false,
"id": 4994,
"name": "map",
"nodeType": "VariableDeclaration",
"scope": 4998,
"src": "536:31:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 4993,
"keyType": {
"id": 4991,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "544:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "536:27:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 4992,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "555:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4997,
"name": "list",
"nodeType": "VariableDeclaration",
"scope": 4998,
"src": "604:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4995,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "604:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 4996,
"length": null,
"nodeType": "ArrayTypeName",
"src": "604:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "transferMap",
"nodeType": "StructDefinition",
"scope": 5282,
"src": "482:141:18",
"visibility": "public"
},
{
"body": {
"id": 5021,
"nodeType": "Block",
"src": "687:95:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5008,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "733:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5009,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "from",
"nodeType": "MemberAccess",
"referencedDeclaration": 4981,
"src": "733:6:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5010,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "741:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5011,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "tokenHash",
"nodeType": "MemberAccess",
"referencedDeclaration": 4983,
"src": "741:11:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5012,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "754:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5013,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "amount",
"nodeType": "MemberAccess",
"referencedDeclaration": 4985,
"src": "754:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5014,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "764:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5015,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4987,
"src": "764:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5016,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "771:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5017,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "to",
"nodeType": "MemberAccess",
"referencedDeclaration": 4989,
"src": "771:4:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"expression": {
"argumentTypes": null,
"id": 5006,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9028,
"src": "716:3:18",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 5007,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "716:16:18",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 5018,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "716:60:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 5005,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9035,
"src": "706:9:18",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 5019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "706:71:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 5004,
"id": 5020,
"nodeType": "Return",
"src": "693:84:18"
}
]
},
"documentation": null,
"id": 5022,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5001,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5000,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 5022,
"src": "644:9:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 4999,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "644:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "643:11:18"
},
"payable": false,
"returnParameters": {
"id": 5004,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5003,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5022,
"src": "678:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5002,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "678:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "677:9:18"
},
"scope": 5282,
"src": "627:155:18",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5041,
"nodeType": "Block",
"src": "889:70:18",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5035,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5031,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5026,
"src": "899:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5032,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5024,
"src": "907:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5033,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "907:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5034,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "907:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "899:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 5038,
"nodeType": "IfStatement",
"src": "895:42:18",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 5036,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "932:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 5030,
"id": 5037,
"nodeType": "Return",
"src": "925:12:18"
}
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 5039,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "950:4:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 5030,
"id": 5040,
"nodeType": "Return",
"src": "943:11:18"
}
]
},
"documentation": null,
"id": 5042,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existByIdx",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5027,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5024,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5042,
"src": "806:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5023,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "806:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5026,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 5042,
"src": "832:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5025,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "832:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "805:40:18"
},
"payable": false,
"returnParameters": {
"id": 5030,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5029,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5042,
"src": "881:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 5028,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "881:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "880:6:18"
},
"scope": 5282,
"src": "786:173:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5075,
"nodeType": "Block",
"src": "1068:232:18",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5055,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5051,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5044,
"src": "1176:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5052,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1176:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5053,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1176:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 5054,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1196:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1176:21:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 5058,
"nodeType": "IfStatement",
"src": "1172:39:18",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 5056,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1206:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 5050,
"id": 5057,
"nodeType": "Return",
"src": "1199:12:18"
}
},
{
"assignments": [
5060
],
"declarations": [
{
"constant": false,
"id": 5060,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "1217:17:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5059,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "1217:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5068,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5061,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5044,
"src": "1237:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5062,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1237:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5067,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5063,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5044,
"src": "1247:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5064,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "map",
"nodeType": "MemberAccess",
"referencedDeclaration": 4994,
"src": "1247:8:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 5066,
"indexExpression": {
"argumentTypes": null,
"id": 5065,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5046,
"src": "1256:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1247:15:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1237:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1217:46:18"
},
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 5073,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5069,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5046,
"src": "1276:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5071,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5060,
"src": "1293:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element storage pointer"
}
],
"id": 5070,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5022,
"src": "1285:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_element_$4990_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (struct TransferList.element memory) pure returns (bytes32)"
}
},
"id": 5072,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1285:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1276:19:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 5050,
"id": 5074,
"nodeType": "Return",
"src": "1269:26:18"
}
]
},
"documentation": null,
"id": 5076,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existByHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5047,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5044,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "984:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5043,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "984:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5046,
"name": "_hash",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "1010:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5045,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1010:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "983:41:18"
},
"payable": false,
"returnParameters": {
"id": 5050,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5049,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "1060:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 5048,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1060:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1059:6:18"
},
"scope": 5282,
"src": "963:337:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5137,
"nodeType": "Block",
"src": "1497:351:18",
"statements": [
{
"assignments": [
5092
],
"declarations": [
{
"constant": false,
"id": 5092,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1503:16:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5091,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "1503:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5102,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5094,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5080,
"src": "1552:5:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 5095,
"name": "_tokenHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5082,
"src": "1578:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 5096,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5084,
"src": "1606:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5097,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1628:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5098,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1628:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5099,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1628:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 5100,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5086,
"src": "1658:3:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": null,
"id": 5093,
"name": "element",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4990,
"src": "1528:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_element_$4990_storage_ptr_$",
"typeString": "type(struct TransferList.element storage pointer)"
}
},
"id": 5101,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"from",
"tokenHash",
"amount",
"idx",
"to"
],
"nodeType": "FunctionCall",
"src": "1528:142:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory",
"typeString": "struct TransferList.element memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1503:167:18"
},
{
"assignments": [
5104
],
"declarations": [
{
"constant": false,
"id": 5104,
"name": "_hash",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1677:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5103,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1677:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5108,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5106,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5092,
"src": "1701:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
],
"id": 5105,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5022,
"src": "1693:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_element_$4990_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (struct TransferList.element memory) pure returns (bytes32)"
}
},
"id": 5107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1693:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1677:26:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5114,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "1717:25:18",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5111,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1730:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 5112,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5104,
"src": "1736:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 5110,
"name": "existByHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5076,
"src": "1718:11:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_transferMap_$4998_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TransferList.transferMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 5113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1718:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "73616d65207472616e736665722064617461206578697374",
"id": 5115,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1744:26:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_14690a9b6ce301c324ea879c3452daab3187fd18d7ced238fe13c4650dcac968",
"typeString": "literal_string \"same transfer data exist\""
},
"value": "same transfer data exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_14690a9b6ce301c324ea879c3452daab3187fd18d7ced238fe13c4650dcac968",
"typeString": "literal_string \"same transfer data exist\""
}
],
"id": 5109,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "1709:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1709:62:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5117,
"nodeType": "ExpressionStatement",
"src": "1709:62:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5123,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5092,
"src": "1793:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5118,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1778:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5121,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1778:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5122,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1778:14:18",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_element_$4990_storage_$returns$_t_uint256_$",
"typeString": "function (struct TransferList.element storage ref) returns (uint256)"
}
},
"id": 5124,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1778:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5125,
"nodeType": "ExpressionStatement",
"src": "1778:17:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5126,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1801:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5129,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "map",
"nodeType": "MemberAccess",
"referencedDeclaration": 4994,
"src": "1801:8:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 5130,
"indexExpression": {
"argumentTypes": null,
"id": 5128,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5104,
"src": "1810:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1801:15:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5131,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5092,
"src": "1819:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5132,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4987,
"src": "1819:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1801:23:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5134,
"nodeType": "ExpressionStatement",
"src": "1801:23:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5135,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5104,
"src": "1838:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 5090,
"id": 5136,
"nodeType": "Return",
"src": "1831:12:18"
}
]
},
"documentation": null,
"id": 5138,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "insert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5087,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5078,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1361:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5077,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "1361:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5080,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1391:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 5079,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1391:7:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5082,
"name": "_tokenHash",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1410:18:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5081,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1410:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5084,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1434:15:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5083,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1434:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5086,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1455:10:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 5085,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1455:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1355:114:18"
},
"payable": false,
"returnParameters": {
"id": 5090,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5089,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1488:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5088,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1488:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1487:9:18"
},
"scope": 5282,
"src": "1340:508:18",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5149,
"nodeType": "Block",
"src": "1925:34:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5145,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5140,
"src": "1938:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5146,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1938:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5147,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1938:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 5144,
"id": 5148,
"nodeType": "Return",
"src": "1931:23:18"
}
]
},
"documentation": null,
"id": 5150,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "count",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5141,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5140,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5150,
"src": "1867:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5139,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "1867:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1866:26:18"
},
"payable": false,
"returnParameters": {
"id": 5144,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5143,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5150,
"src": "1916:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5142,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1916:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1915:9:18"
},
"scope": 5282,
"src": "1852:107:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5172,
"nodeType": "Block",
"src": "2080:109:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5161,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5152,
"src": "2105:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 5162,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5154,
"src": "2111:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 5160,
"name": "existByIdx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5042,
"src": "2094:10:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_transferMap_$4998_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TransferList.transferMap storage pointer,uint256) view returns (bool)"
}
},
"id": 5163,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2094:22:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
"id": 5164,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2118:37:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
"typeString": "literal_string \"index must small than current count\""
},
"value": "index must small than current count"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
"typeString": "literal_string \"index must small than current count\""
}
],
"id": 5159,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2086:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5165,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2086:70:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5166,
"nodeType": "ExpressionStatement",
"src": "2086:70:18"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5167,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5152,
"src": "2169:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5168,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2169:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5170,
"indexExpression": {
"argumentTypes": null,
"id": 5169,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5154,
"src": "2179:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2169:15:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"functionReturnParameters": 5158,
"id": 5171,
"nodeType": "Return",
"src": "2162:22:18"
}
]
},
"documentation": null,
"id": 5173,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getByIdx",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5155,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5152,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5173,
"src": "1981:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5151,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "1981:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5154,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 5173,
"src": "2007:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5153,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2007:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1980:40:18"
},
"payable": false,
"returnParameters": {
"id": 5158,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5157,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5173,
"src": "2056:20:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5156,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2056:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2055:22:18"
},
"scope": 5282,
"src": "1963:226:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5198,
"nodeType": "Block",
"src": "2312:106:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5184,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5175,
"src": "2338:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 5185,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5177,
"src": "2344:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 5183,
"name": "existByHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5076,
"src": "2326:11:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_transferMap_$4998_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TransferList.transferMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 5186,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2326:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6861736820646f6573206e6f74206578697374",
"id": 5187,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2352:21:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4a39a6700e1d49646e3d5a5390d2443980ac508cfa2a391abd92b7780a54779e",
"typeString": "literal_string \"hash does not exist\""
},
"value": "hash does not exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_4a39a6700e1d49646e3d5a5390d2443980ac508cfa2a391abd92b7780a54779e",
"typeString": "literal_string \"hash does not exist\""
}
],
"id": 5182,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2318:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5188,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2318:56:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5189,
"nodeType": "ExpressionStatement",
"src": "2318:56:18"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5190,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5175,
"src": "2387:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5191,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2387:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5196,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5192,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5175,
"src": "2397:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5193,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "map",
"nodeType": "MemberAccess",
"referencedDeclaration": 4994,
"src": "2397:8:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 5195,
"indexExpression": {
"argumentTypes": null,
"id": 5194,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5177,
"src": "2406:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2397:15:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2387:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"functionReturnParameters": 5181,
"id": 5197,
"nodeType": "Return",
"src": "2380:33:18"
}
]
},
"documentation": null,
"id": 5199,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getByHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5178,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5175,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5199,
"src": "2212:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5174,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "2212:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5177,
"name": "_hash",
"nodeType": "VariableDeclaration",
"scope": 5199,
"src": "2238:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5176,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2238:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2211:41:18"
},
"payable": false,
"returnParameters": {
"id": 5181,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5180,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5199,
"src": "2288:20:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5179,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2288:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2287:22:18"
},
"scope": 5282,
"src": "2193:225:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5280,
"nodeType": "Block",
"src": "2666:424:18",
"statements": [
{
"assignments": [
5212
],
"declarations": [
{
"constant": false,
"id": 5212,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2672:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5211,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2672:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5214,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 5213,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2687:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2672:16:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5216,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5203,
"src": "2702:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5217,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5201,
"src": "2710:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5218,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2710:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5219,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2710:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2702:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "66726f6d206d75737420736d616c6c207468616e20636f756e74",
"id": 5221,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2728:28:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_62045c40c0d6857e7c764c5821815c487c1a867564aea0b600aba8a1ea44620d",
"typeString": "literal_string \"from must small than count\""
},
"value": "from must small than count"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_62045c40c0d6857e7c764c5821815c487c1a867564aea0b600aba8a1ea44620d",
"typeString": "literal_string \"from must small than count\""
}
],
"id": 5215,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2694:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2694:63:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5223,
"nodeType": "ExpressionStatement",
"src": "2694:63:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5225,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5205,
"src": "2771:6:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 5226,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2780:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2771:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
"id": 5228,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2783:34:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
"typeString": "literal_string \"return number must bigger than 0\""
},
"value": "return number must bigger than 0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
"typeString": "literal_string \"return number must bigger than 0\""
}
],
"id": 5224,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2763:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5229,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2763:55:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5230,
"nodeType": "ExpressionStatement",
"src": "2763:55:18"
},
{
"assignments": [
5235
],
"declarations": [
{
"constant": false,
"id": 5235,
"name": "res",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2825:33:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 5233,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2825:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 5234,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2825:22:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5241,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5239,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5205,
"src": "2888:6:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 5238,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "2861:26:18",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4990_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct TransferList.element memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 5236,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2865:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 5237,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2865:22:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
}
},
"id": 5240,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2861:34:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory",
"typeString": "struct TransferList.element memory[] memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2825:70:18"
},
{
"body": {
"id": 5276,
"nodeType": "Block",
"src": "2952:117:18",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5256,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5254,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "2964:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 5255,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5205,
"src": "2972:6:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2964:14:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 5259,
"nodeType": "IfStatement",
"src": "2960:44:18",
"trueBody": {
"id": 5258,
"nodeType": "Block",
"src": "2980:24:18",
"statements": [
{
"id": 5257,
"nodeType": "Break",
"src": "2990:5:18"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 5267,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 5260,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5235,
"src": "3012:3:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element memory[] memory"
}
},
"id": 5262,
"indexExpression": {
"argumentTypes": null,
"id": 5261,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "3016:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3012:9:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory",
"typeString": "struct TransferList.element memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5263,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5201,
"src": "3024:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5264,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "3024:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5266,
"indexExpression": {
"argumentTypes": null,
"id": 5265,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5243,
"src": "3034:1:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3024:12:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"src": "3012:24:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory",
"typeString": "struct TransferList.element memory"
}
},
"id": 5268,
"nodeType": "ExpressionStatement",
"src": "3012:24:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5274,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5269,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "3044:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 5272,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3060:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
"id": 5270,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "3051:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5271,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 5635,
"src": "3051:8:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 5273,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3051:11:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3044:18:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5275,
"nodeType": "ExpressionStatement",
"src": "3044:18:18"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5250,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5246,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5243,
"src": "2925:1:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5247,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5201,
"src": "2929:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5248,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2929:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5249,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2929:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2925:20:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 5277,
"initializationExpression": {
"assignments": [
5243
],
"declarations": [
{
"constant": false,
"id": 5243,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2907:9:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5242,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2907:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5245,
"initialValue": {
"argumentTypes": null,
"id": 5244,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5203,
"src": "2919:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2907:16:18"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 5252,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2947:3:18",
"subExpression": {
"argumentTypes": null,
"id": 5251,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5243,
"src": "2947:1:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5253,
"nodeType": "ExpressionStatement",
"src": "2947:3:18"
},
"nodeType": "ForStatement",
"src": "2902:167:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5278,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5235,
"src": "3082:3:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element memory[] memory"
}
},
"functionReturnParameters": 5210,
"id": 5279,
"nodeType": "Return",
"src": "3075:10:18"
}
]
},
"documentation": "@dev 从指定位置返回多条(不多于count)地址记录,如果不足则空缺",
"id": 5281,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getList",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5206,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5201,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2545:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5200,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "2545:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5203,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2575:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5202,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2575:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5205,
"name": "_count",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2593:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5204,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2593:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2539:72:18"
},
"payable": false,
"returnParameters": {
"id": 5210,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5209,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2635:22:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 5207,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2635:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 5208,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2635:22:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2634:31:18"
},
"scope": 5282,
"src": "2523:567:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 5283,
"src": "94:2998:18"
}
],
"src": "0:3093:18"
},
"legacyAST": {
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TransferList.sol",
"exportedSymbols": {
"TransferList": [
5282
]
},
"id": 5283,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4975,
"literals": [
"solidity",
">=",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:25:18"
},
{
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
"file": "../math/SafeMath.sol",
"id": 4976,
"nodeType": "ImportDirective",
"scope": 5283,
"sourceUnit": 5658,
"src": "27:30:18",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": "@dev 通证列表处理",
"fullyImplemented": true,
"id": 5282,
"linearizedBaseContracts": [
5282
],
"name": "TransferList",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4979,
"libraryName": {
"contractScope": null,
"id": 4977,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5657,
"src": "125:8:18",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$5657",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "119:27:18",
"typeName": {
"id": 4978,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "138:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"canonicalName": "TransferList.element",
"id": 4990,
"members": [
{
"constant": false,
"id": 4981,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "209:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4980,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "209:7:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4983,
"name": "tokenHash",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "313:17:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4982,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "313:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4985,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "378:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4984,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "378:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4987,
"name": "idx",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "427:11:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4986,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "427:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4989,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 4990,
"src": "464:9:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4988,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "464:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "element",
"nodeType": "StructDefinition",
"scope": 5282,
"src": "168:310:18",
"visibility": "public"
},
{
"canonicalName": "TransferList.transferMap",
"id": 4998,
"members": [
{
"constant": false,
"id": 4994,
"name": "map",
"nodeType": "VariableDeclaration",
"scope": 4998,
"src": "536:31:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 4993,
"keyType": {
"id": 4991,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "544:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "536:27:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 4992,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "555:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4997,
"name": "list",
"nodeType": "VariableDeclaration",
"scope": 4998,
"src": "604:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4995,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "604:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 4996,
"length": null,
"nodeType": "ArrayTypeName",
"src": "604:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "transferMap",
"nodeType": "StructDefinition",
"scope": 5282,
"src": "482:141:18",
"visibility": "public"
},
{
"body": {
"id": 5021,
"nodeType": "Block",
"src": "687:95:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5008,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "733:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5009,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "from",
"nodeType": "MemberAccess",
"referencedDeclaration": 4981,
"src": "733:6:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5010,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "741:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5011,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "tokenHash",
"nodeType": "MemberAccess",
"referencedDeclaration": 4983,
"src": "741:11:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5012,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "754:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5013,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "amount",
"nodeType": "MemberAccess",
"referencedDeclaration": 4985,
"src": "754:8:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5014,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "764:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5015,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4987,
"src": "764:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5016,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5000,
"src": "771:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5017,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "to",
"nodeType": "MemberAccess",
"referencedDeclaration": 4989,
"src": "771:4:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"expression": {
"argumentTypes": null,
"id": 5006,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9028,
"src": "716:3:18",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 5007,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "716:16:18",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 5018,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "716:60:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 5005,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9035,
"src": "706:9:18",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 5019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "706:71:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 5004,
"id": 5020,
"nodeType": "Return",
"src": "693:84:18"
}
]
},
"documentation": null,
"id": 5022,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5001,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5000,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 5022,
"src": "644:9:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 4999,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "644:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "643:11:18"
},
"payable": false,
"returnParameters": {
"id": 5004,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5003,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5022,
"src": "678:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5002,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "678:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "677:9:18"
},
"scope": 5282,
"src": "627:155:18",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5041,
"nodeType": "Block",
"src": "889:70:18",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5035,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5031,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5026,
"src": "899:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5032,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5024,
"src": "907:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5033,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "907:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5034,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "907:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "899:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 5038,
"nodeType": "IfStatement",
"src": "895:42:18",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 5036,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "932:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 5030,
"id": 5037,
"nodeType": "Return",
"src": "925:12:18"
}
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 5039,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "950:4:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 5030,
"id": 5040,
"nodeType": "Return",
"src": "943:11:18"
}
]
},
"documentation": null,
"id": 5042,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existByIdx",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5027,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5024,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5042,
"src": "806:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5023,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "806:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5026,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 5042,
"src": "832:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5025,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "832:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "805:40:18"
},
"payable": false,
"returnParameters": {
"id": 5030,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5029,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5042,
"src": "881:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 5028,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "881:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "880:6:18"
},
"scope": 5282,
"src": "786:173:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5075,
"nodeType": "Block",
"src": "1068:232:18",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5055,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5051,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5044,
"src": "1176:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5052,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1176:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5053,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1176:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 5054,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1196:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1176:21:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 5058,
"nodeType": "IfStatement",
"src": "1172:39:18",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 5056,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1206:5:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 5050,
"id": 5057,
"nodeType": "Return",
"src": "1199:12:18"
}
},
{
"assignments": [
5060
],
"declarations": [
{
"constant": false,
"id": 5060,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "1217:17:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5059,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "1217:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5068,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5061,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5044,
"src": "1237:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5062,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1237:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5067,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5063,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5044,
"src": "1247:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5064,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "map",
"nodeType": "MemberAccess",
"referencedDeclaration": 4994,
"src": "1247:8:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 5066,
"indexExpression": {
"argumentTypes": null,
"id": 5065,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5046,
"src": "1256:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1247:15:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1237:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1217:46:18"
},
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 5073,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5069,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5046,
"src": "1276:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5071,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5060,
"src": "1293:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element storage pointer"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element storage pointer"
}
],
"id": 5070,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5022,
"src": "1285:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_element_$4990_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (struct TransferList.element memory) pure returns (bytes32)"
}
},
"id": 5072,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1285:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1276:19:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 5050,
"id": 5074,
"nodeType": "Return",
"src": "1269:26:18"
}
]
},
"documentation": null,
"id": 5076,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existByHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5047,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5044,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "984:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5043,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "984:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5046,
"name": "_hash",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "1010:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5045,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1010:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "983:41:18"
},
"payable": false,
"returnParameters": {
"id": 5050,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5049,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5076,
"src": "1060:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 5048,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1060:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1059:6:18"
},
"scope": 5282,
"src": "963:337:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5137,
"nodeType": "Block",
"src": "1497:351:18",
"statements": [
{
"assignments": [
5092
],
"declarations": [
{
"constant": false,
"id": 5092,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1503:16:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5091,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "1503:7:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5102,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5094,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5080,
"src": "1552:5:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 5095,
"name": "_tokenHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5082,
"src": "1578:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 5096,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5084,
"src": "1606:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5097,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1628:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5098,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1628:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5099,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1628:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 5100,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5086,
"src": "1658:3:18",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": null,
"id": 5093,
"name": "element",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4990,
"src": "1528:7:18",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_element_$4990_storage_ptr_$",
"typeString": "type(struct TransferList.element storage pointer)"
}
},
"id": 5101,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"from",
"tokenHash",
"amount",
"idx",
"to"
],
"nodeType": "FunctionCall",
"src": "1528:142:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory",
"typeString": "struct TransferList.element memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1503:167:18"
},
{
"assignments": [
5104
],
"declarations": [
{
"constant": false,
"id": 5104,
"name": "_hash",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1677:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5103,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1677:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5108,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5106,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5092,
"src": "1701:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
],
"id": 5105,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5022,
"src": "1693:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_element_$4990_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (struct TransferList.element memory) pure returns (bytes32)"
}
},
"id": 5107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1693:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1677:26:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5114,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "1717:25:18",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5111,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1730:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 5112,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5104,
"src": "1736:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 5110,
"name": "existByHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5076,
"src": "1718:11:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_transferMap_$4998_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TransferList.transferMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 5113,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1718:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "73616d65207472616e736665722064617461206578697374",
"id": 5115,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1744:26:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_14690a9b6ce301c324ea879c3452daab3187fd18d7ced238fe13c4650dcac968",
"typeString": "literal_string \"same transfer data exist\""
},
"value": "same transfer data exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_14690a9b6ce301c324ea879c3452daab3187fd18d7ced238fe13c4650dcac968",
"typeString": "literal_string \"same transfer data exist\""
}
],
"id": 5109,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "1709:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1709:62:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5117,
"nodeType": "ExpressionStatement",
"src": "1709:62:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5123,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5092,
"src": "1793:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5118,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1778:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5121,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1778:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5122,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1778:14:18",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_element_$4990_storage_$returns$_t_uint256_$",
"typeString": "function (struct TransferList.element storage ref) returns (uint256)"
}
},
"id": 5124,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1778:17:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5125,
"nodeType": "ExpressionStatement",
"src": "1778:17:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5126,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5078,
"src": "1801:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5129,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "map",
"nodeType": "MemberAccess",
"referencedDeclaration": 4994,
"src": "1801:8:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 5130,
"indexExpression": {
"argumentTypes": null,
"id": 5128,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5104,
"src": "1810:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1801:15:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5131,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5092,
"src": "1819:1:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element memory"
}
},
"id": 5132,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4987,
"src": "1819:5:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1801:23:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5134,
"nodeType": "ExpressionStatement",
"src": "1801:23:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5135,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5104,
"src": "1838:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 5090,
"id": 5136,
"nodeType": "Return",
"src": "1831:12:18"
}
]
},
"documentation": null,
"id": 5138,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "insert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5087,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5078,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1361:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5077,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "1361:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5080,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1391:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 5079,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1391:7:18",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5082,
"name": "_tokenHash",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1410:18:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5081,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1410:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5084,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1434:15:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5083,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1434:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5086,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1455:10:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 5085,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1455:6:18",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1355:114:18"
},
"payable": false,
"returnParameters": {
"id": 5090,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5089,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5138,
"src": "1488:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5088,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1488:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1487:9:18"
},
"scope": 5282,
"src": "1340:508:18",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5149,
"nodeType": "Block",
"src": "1925:34:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5145,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5140,
"src": "1938:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5146,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "1938:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5147,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1938:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 5144,
"id": 5148,
"nodeType": "Return",
"src": "1931:23:18"
}
]
},
"documentation": null,
"id": 5150,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "count",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5141,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5140,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5150,
"src": "1867:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5139,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "1867:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1866:26:18"
},
"payable": false,
"returnParameters": {
"id": 5144,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5143,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5150,
"src": "1916:7:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5142,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1916:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1915:9:18"
},
"scope": 5282,
"src": "1852:107:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5172,
"nodeType": "Block",
"src": "2080:109:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5161,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5152,
"src": "2105:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 5162,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5154,
"src": "2111:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 5160,
"name": "existByIdx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5042,
"src": "2094:10:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_transferMap_$4998_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TransferList.transferMap storage pointer,uint256) view returns (bool)"
}
},
"id": 5163,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2094:22:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
"id": 5164,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2118:37:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
"typeString": "literal_string \"index must small than current count\""
},
"value": "index must small than current count"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_ced05a9863658d26be4f7cbaeffebfa53821dabbe1077d21241580b1e9ea74c5",
"typeString": "literal_string \"index must small than current count\""
}
],
"id": 5159,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2086:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5165,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2086:70:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5166,
"nodeType": "ExpressionStatement",
"src": "2086:70:18"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5167,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5152,
"src": "2169:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5168,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2169:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5170,
"indexExpression": {
"argumentTypes": null,
"id": 5169,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5154,
"src": "2179:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2169:15:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"functionReturnParameters": 5158,
"id": 5171,
"nodeType": "Return",
"src": "2162:22:18"
}
]
},
"documentation": null,
"id": 5173,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getByIdx",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5155,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5152,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5173,
"src": "1981:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5151,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "1981:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5154,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 5173,
"src": "2007:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5153,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2007:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1980:40:18"
},
"payable": false,
"returnParameters": {
"id": 5158,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5157,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5173,
"src": "2056:20:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5156,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2056:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2055:22:18"
},
"scope": 5282,
"src": "1963:226:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5198,
"nodeType": "Block",
"src": "2312:106:18",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5184,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5175,
"src": "2338:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 5185,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5177,
"src": "2344:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 5183,
"name": "existByHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5076,
"src": "2326:11:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_transferMap_$4998_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TransferList.transferMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 5186,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2326:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6861736820646f6573206e6f74206578697374",
"id": 5187,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2352:21:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4a39a6700e1d49646e3d5a5390d2443980ac508cfa2a391abd92b7780a54779e",
"typeString": "literal_string \"hash does not exist\""
},
"value": "hash does not exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_4a39a6700e1d49646e3d5a5390d2443980ac508cfa2a391abd92b7780a54779e",
"typeString": "literal_string \"hash does not exist\""
}
],
"id": 5182,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2318:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5188,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2318:56:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5189,
"nodeType": "ExpressionStatement",
"src": "2318:56:18"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5190,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5175,
"src": "2387:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5191,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2387:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5196,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5192,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5175,
"src": "2397:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5193,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "map",
"nodeType": "MemberAccess",
"referencedDeclaration": 4994,
"src": "2397:8:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 5195,
"indexExpression": {
"argumentTypes": null,
"id": 5194,
"name": "_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5177,
"src": "2406:5:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2397:15:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2387:26:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"functionReturnParameters": 5181,
"id": 5197,
"nodeType": "Return",
"src": "2380:33:18"
}
]
},
"documentation": null,
"id": 5199,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getByHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5178,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5175,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5199,
"src": "2212:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5174,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "2212:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5177,
"name": "_hash",
"nodeType": "VariableDeclaration",
"scope": 5199,
"src": "2238:13:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 5176,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2238:7:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2211:41:18"
},
"payable": false,
"returnParameters": {
"id": 5181,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5180,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5199,
"src": "2288:20:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory_ptr",
"typeString": "struct TransferList.element"
},
"typeName": {
"contractScope": null,
"id": 5179,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2288:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2287:22:18"
},
"scope": 5282,
"src": "2193:225:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 5280,
"nodeType": "Block",
"src": "2666:424:18",
"statements": [
{
"assignments": [
5212
],
"declarations": [
{
"constant": false,
"id": 5212,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2672:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5211,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2672:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5214,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 5213,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2687:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2672:16:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5216,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5203,
"src": "2702:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5217,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5201,
"src": "2710:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5218,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2710:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5219,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2710:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2702:24:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "66726f6d206d75737420736d616c6c207468616e20636f756e74",
"id": 5221,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2728:28:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_62045c40c0d6857e7c764c5821815c487c1a867564aea0b600aba8a1ea44620d",
"typeString": "literal_string \"from must small than count\""
},
"value": "from must small than count"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_62045c40c0d6857e7c764c5821815c487c1a867564aea0b600aba8a1ea44620d",
"typeString": "literal_string \"from must small than count\""
}
],
"id": 5215,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2694:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2694:63:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5223,
"nodeType": "ExpressionStatement",
"src": "2694:63:18"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5225,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5205,
"src": "2771:6:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 5226,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2780:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2771:10:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
"id": 5228,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2783:34:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
"typeString": "literal_string \"return number must bigger than 0\""
},
"value": "return number must bigger than 0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_77e7c3b7b2e897d6d61c9adadd03e672f46f1501428d9e7f585ea1fd64517a2b",
"typeString": "literal_string \"return number must bigger than 0\""
}
],
"id": 5224,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "2763:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5229,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2763:55:18",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5230,
"nodeType": "ExpressionStatement",
"src": "2763:55:18"
},
{
"assignments": [
5235
],
"declarations": [
{
"constant": false,
"id": 5235,
"name": "res",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2825:33:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 5233,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2825:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 5234,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2825:22:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5241,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 5239,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5205,
"src": "2888:6:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 5238,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "2861:26:18",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4990_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct TransferList.element memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 5236,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2865:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 5237,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2865:22:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
}
},
"id": 5240,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2861:34:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory",
"typeString": "struct TransferList.element memory[] memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2825:70:18"
},
{
"body": {
"id": 5276,
"nodeType": "Block",
"src": "2952:117:18",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5256,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5254,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "2964:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 5255,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5205,
"src": "2972:6:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2964:14:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 5259,
"nodeType": "IfStatement",
"src": "2960:44:18",
"trueBody": {
"id": 5258,
"nodeType": "Block",
"src": "2980:24:18",
"statements": [
{
"id": 5257,
"nodeType": "Break",
"src": "2990:5:18"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 5267,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 5260,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5235,
"src": "3012:3:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element memory[] memory"
}
},
"id": 5262,
"indexExpression": {
"argumentTypes": null,
"id": 5261,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "3016:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3012:9:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory",
"typeString": "struct TransferList.element memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5263,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5201,
"src": "3024:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5264,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "3024:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5266,
"indexExpression": {
"argumentTypes": null,
"id": 5265,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5243,
"src": "3034:1:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3024:12:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage",
"typeString": "struct TransferList.element storage ref"
}
},
"src": "3012:24:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_memory",
"typeString": "struct TransferList.element memory"
}
},
"id": 5268,
"nodeType": "ExpressionStatement",
"src": "3012:24:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5274,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5269,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "3044:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 5272,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3060:1:18",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
"id": 5270,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5212,
"src": "3051:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5271,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 5635,
"src": "3051:8:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 5273,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3051:11:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3044:18:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5275,
"nodeType": "ExpressionStatement",
"src": "3044:18:18"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 5250,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 5246,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5243,
"src": "2925:1:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5247,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5201,
"src": "2929:4:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap storage pointer"
}
},
"id": 5248,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4997,
"src": "2929:9:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage",
"typeString": "struct TransferList.element storage ref[] storage ref"
}
},
"id": 5249,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2929:16:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2925:20:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 5277,
"initializationExpression": {
"assignments": [
5243
],
"declarations": [
{
"constant": false,
"id": 5243,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2907:9:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5242,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2907:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 5245,
"initialValue": {
"argumentTypes": null,
"id": 5244,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5203,
"src": "2919:4:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2907:16:18"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 5252,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2947:3:18",
"subExpression": {
"argumentTypes": null,
"id": 5251,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5243,
"src": "2947:1:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5253,
"nodeType": "ExpressionStatement",
"src": "2947:3:18"
},
"nodeType": "ForStatement",
"src": "2902:167:18"
},
{
"expression": {
"argumentTypes": null,
"id": 5278,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5235,
"src": "3082:3:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element memory[] memory"
}
},
"functionReturnParameters": 5210,
"id": 5279,
"nodeType": "Return",
"src": "3075:10:18"
}
]
},
"documentation": "@dev 从指定位置返回多条(不多于count)地址记录,如果不足则空缺",
"id": 5281,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getList",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 5206,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5201,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2545:24:18",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
},
"typeName": {
"contractScope": null,
"id": 5200,
"name": "transferMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4998,
"src": "2545:11:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_transferMap_$4998_storage_ptr",
"typeString": "struct TransferList.transferMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5203,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2575:12:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5202,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2575:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5205,
"name": "_count",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2593:14:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5204,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2593:7:18",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2539:72:18"
},
"payable": false,
"returnParameters": {
"id": 5210,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5209,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 5281,
"src": "2635:22:18",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_memory_$dyn_memory_ptr",
"typeString": "struct TransferList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 5207,
"name": "TransferList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4990,
"src": "2635:20:18",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4990_storage_ptr",
"typeString": "struct TransferList.element"
}
},
"id": 5208,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2635:22:18",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4990_storage_$dyn_storage_ptr",
"typeString": "struct TransferList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2634:31:18"
},
"scope": 5282,
"src": "2523:567:18",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 5283,
"src": "94:2998:18"
}
],
"src": "0:3093:18"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.16",
"updatedAt": "2021-03-06T09:30:01.020Z",
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
}