jcc-solidity-utils
Version:
jcc solidity utils
25,164 lines • 1.08 MB
JSON
{
"contractName": "TokenList",
"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/TokenList.sol\":\"TokenList\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol\":{\"keccak256\":\"0x4a2749c11f41cce84af3cd102517593a068b8a8df3f9e74267432e5de290b362\",\"urls\":[\"bzzr://3a8b602bb2ec0f0542c73e335cda648fb5b1f9f773e92dd53f06bbbfd8d52b92\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x239546071316c89d3bbc9e61b2ccae270a4493bbd2f7c240052f533807d50ab7\",\"urls\":[\"bzzr://267bf48e0a30f7b671aa3c98a6b27ffe7bc64efd6533f49e54188b520baa94c5\"]}},\"version\":1}",
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820733c412618ce31979a32b796d5f6f8bd22881866bc771d0d3d9b40c8729691890029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820733c412618ce31979a32b796d5f6f8bd22881866bc771d0d3d9b40c8729691890029",
"sourceMap": "94:8291:17:-;;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:8291:17:-;;;;;;;;",
"source": "pragma solidity >=0.4.24;\n\nimport \"../math/SafeMath.sol\";\n\n/**\n * @dev 通证列表处理\n */\nlibrary TokenList {\n using SafeMath for uint256;\n\n // 通证定义\n struct element {\n // 索引\n uint256 idx;\n // 不重复的编号\n uint256 id;\n // 定义来自JCCChainList\n uint256 chainId;\n // origin token chainid + issuer hash\n // 如果是原生通证为0,如果是映射通证,则填写原生通证的 chainid+issuer hash\n bytes32 origin;\n /**\n 所有链的原生通证默认标记不填写,除非另有规定(例如:EOS本身是一个合约)\n issuer格式: 合约地址/合约地址\n ETH类的通证通过合约地址区分,原生通证表示为 \"/\"\n SWTC类的通证定义由\"issuer/名称\"来表示地址,issuer为空表示原生通证\n MOAC应用链通过 \"主链via地址/应用链合约\"来表示issuer\n 在同一条链上,不许重复\n */\n string issuer;\n // 简称,同一条链不重复\n string symbol;\n }\n\n struct tokenMap {\n // token id => index\n mapping(uint256 => uint256) mapId;\n // chainId+symbol hash => index\n mapping(bytes32 => uint256) mapSymbol;\n // chainId+issuer hash => index\n mapping(bytes32 => uint256) mapIssuer;\n // origin token mapping chainId+issuer hash => token id array\n mapping(bytes32 => uint256[]) mapToken;\n // data array\n element[] list;\n }\n\n function existId(tokenMap storage self, uint256 _id)\n internal\n view\n returns (bool)\n {\n if (self.list.length == 0) return false;\n return (self.list[self.mapId[_id]].id == _id &&\n getStringLen(self.list[self.mapId[_id]].symbol) > 0);\n }\n\n function existSymbol(tokenMap storage self, bytes32 _symbolHash)\n internal\n view\n returns (bool)\n {\n if (self.list.length == 0) return false;\n element storage e = self.list[self.mapSymbol[_symbolHash]];\n return (getHash(e.chainId, e.symbol) == _symbolHash);\n }\n\n function existIssuer(tokenMap storage self, bytes32 _issuerHash)\n internal\n view\n returns (bool)\n {\n if (self.list.length == 0) return false;\n element storage e = self.list[self.mapIssuer[_issuerHash]];\n return (getHash(e.chainId, e.issuer) == _issuerHash);\n }\n\n // 检查映射数组有无重复\n function existToken(\n tokenMap storage self,\n bytes32 _origin,\n uint256 _id\n ) internal view returns (bool, uint256) {\n if (self.list.length == 0) return (false, 0);\n\n uint256[] storage _arr = self.mapToken[_origin];\n\n for (uint256 i = 0; i < _arr.length; i++) {\n if (_arr[i] == _id) {\n return (true, i);\n }\n }\n\n return (false, 0);\n }\n\n // 增加映射通证数组成员\n function insertToken(\n tokenMap storage self,\n bytes32 _issuerHash,\n uint256 _idx\n ) internal returns (bool) {\n bool _exist;\n uint256 _originIdx;\n element storage e = self.list[_idx];\n bytes32 _origin = e.origin == 0x0 ? _issuerHash : e.origin;\n\n (_exist, _originIdx) = existToken(self, _origin, e.id);\n if (_exist) {\n return false;\n }\n\n self.mapToken[_origin].push(e.id);\n\n return true;\n }\n\n // 删除映射通证数组成员\n function removeToken(tokenMap storage self, uint256 _idx)\n internal\n returns (bool)\n {\n element storage e = self.list[_idx];\n bool isOrigin = e.origin == 0x0;\n bytes32 _issuerHash = isOrigin ? getHash(e.chainId, e.issuer) : e.origin;\n\n bool _exist;\n uint256 row2Del;\n\n (_exist, row2Del) = existToken(self, _issuerHash, e.id);\n if (!_exist) {\n return false;\n }\n\n uint256[] storage _arr = self.mapToken[_issuerHash];\n // 如果是原生通证必须映射通证先删除\n if (isOrigin && _arr.length > 1) {\n return false;\n }\n\n uint256 keyToMove = _arr[_arr.length.sub(1)];\n\n _arr[row2Del] = keyToMove;\n _arr.length = _arr.length.sub(1);\n\n return true;\n }\n\n function getStringLen(string _str) internal pure returns (uint256) {\n bytes memory b = bytes(_str);\n require(b.length <= 1024, \"too large string make overflow risk\");\n return b.length;\n }\n\n function getHash(uint256 _chainId, string _name)\n internal\n pure\n returns (bytes32)\n {\n return keccak256(abi.encodePacked(_chainId, _name));\n }\n\n /**\n @dev 增加新定时定义,重复的ID返回失败\n */\n function insert(\n tokenMap storage self,\n uint256 _id,\n uint256 _chainId,\n bytes32 _origin,\n string _issuer,\n string _symbol\n ) internal returns (bool) {\n if (existId(self, _id)) {\n return false;\n }\n\n bytes32 _symbolHash = getHash(_chainId, _symbol);\n bytes32 _issuerHash = getHash(_chainId, _issuer);\n\n if (existSymbol(self, _symbolHash) || existIssuer(self, _issuerHash)) {\n return false;\n }\n\n //映射的原始通证没有登记\n if (_origin != 0x0 && !existIssuer(self, _origin)) {\n return false;\n }\n\n element memory e =\n element({\n idx: self.list.length,\n id: _id,\n chainId: _chainId,\n origin: _origin,\n issuer: _issuer,\n symbol: _symbol\n });\n\n self.list.push(e);\n self.mapId[_id] = e.idx;\n self.mapSymbol[_symbolHash] = e.idx;\n self.mapIssuer[_issuerHash] = e.idx;\n\n // 处理映射通证列表 原生通证排第一个\n if (!insertToken(self, _issuerHash, e.idx)) {\n return false;\n }\n\n return true;\n }\n\n function remove(tokenMap storage self, uint256 _id) internal returns (bool) {\n if (!existId(self, _id)) {\n return false;\n }\n\n uint256 row2Del = self.mapId[_id];\n\n element storage keyToMove = self.list[self.list.length.sub(1)];\n\n if (!removeToken(self, row2Del)) {\n return false;\n }\n\n self.list[row2Del] = keyToMove;\n self.mapId[keyToMove.id] = row2Del;\n bytes32 _symbolHash = getHash(keyToMove.chainId, keyToMove.symbol);\n bytes32 _issuerHash = getHash(keyToMove.chainId, keyToMove.issuer);\n self.mapSymbol[_symbolHash] = row2Del;\n self.mapIssuer[_issuerHash] = row2Del;\n self.list.length = self.list.length.sub(1);\n\n return true;\n }\n\n function count(tokenMap storage self) internal view returns (uint256) {\n return self.list.length;\n }\n\n function get(tokenMap storage self, uint256 index)\n internal\n view\n returns (TokenList.element)\n {\n require(index < self.list.length, \"index must small than current count\");\n return self.list[index];\n }\n\n function getById(tokenMap storage self, uint256 _id)\n internal\n view\n returns (TokenList.element)\n {\n require(existId(self, _id), \"token data must be exist\");\n return self.list[self.mapId[_id]];\n }\n\n function getBySymbol(\n tokenMap storage self,\n uint256 _chainId,\n string _symbol\n ) internal view returns (TokenList.element) {\n bytes32 _symbolHash = getHash(_chainId, _symbol);\n require(existSymbol(self, _symbolHash), \"symbol data must be exist\");\n return self.list[self.mapSymbol[_symbolHash]];\n }\n\n function getByIssuer(\n tokenMap storage self,\n uint256 _chainId,\n string _issuer\n ) internal view returns (TokenList.element) {\n bytes32 _issuerHash = getHash(_chainId, _issuer);\n require(existIssuer(self, _issuerHash), \"issuer data must be exist\");\n return self.list[self.mapIssuer[_issuerHash]];\n }\n\n /**\n 获取通证跨链映射表\n */\n function getCrossList(tokenMap storage self, bytes32 _origin)\n internal\n view\n returns (TokenList.element[])\n {\n require(existIssuer(self, _origin), \"origin data must be exist\");\n\n uint256[] storage _arr = self.mapToken[_origin];\n require(_arr.length > 0, \"origin list have data\");\n\n TokenList.element[] memory res = new TokenList.element[](_arr.length);\n\n for (uint256 i = 0; i < _arr.length; i++) {\n res[i] = self.list[self.mapId[_arr[i]]];\n }\n\n return res;\n }\n\n /**\n @dev 从指定位置返回多条(不多于count)地址记录,如果不足则空缺\n */\n function getList(\n tokenMap storage self,\n uint256 from,\n uint256 _count\n ) internal view returns (TokenList.element[] memory) {\n uint256 _idx = 0;\n require(_count > 0, \"return number must bigger than 0\");\n TokenList.element[] memory res = new TokenList.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/TokenList.sol",
"ast": {
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol",
"exportedSymbols": {
"TokenList": [
4973
]
},
"id": 4974,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4018,
"literals": [
"solidity",
">=",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:25:17"
},
{
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
"file": "../math/SafeMath.sol",
"id": 4019,
"nodeType": "ImportDirective",
"scope": 4974,
"sourceUnit": 5658,
"src": "27:30:17",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": "@dev 通证列表处理",
"fullyImplemented": true,
"id": 4973,
"linearizedBaseContracts": [
4973
],
"name": "TokenList",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4022,
"libraryName": {
"contractScope": null,
"id": 4020,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5657,
"src": "122:8:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$5657",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "116:27:17",
"typeName": {
"id": 4021,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "135:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"canonicalName": "TokenList.element",
"id": 4035,
"members": [
{
"constant": false,
"id": 4024,
"name": "idx",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "200:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4023,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "200:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4026,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "243:10:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4025,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "243:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4028,
"name": "chainId",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "291:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4027,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "291:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4030,
"name": "origin",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "456:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4029,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "456:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4032,
"name": "issuer",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "928:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4031,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "928:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4034,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "983:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4033,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "983:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "element",
"nodeType": "StructDefinition",
"scope": 4973,
"src": "165:836:17",
"visibility": "public"
},
{
"canonicalName": "TokenList.tokenMap",
"id": 4056,
"members": [
{
"constant": false,
"id": 4039,
"name": "mapId",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1052:33:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 4038,
"keyType": {
"id": 4036,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1060:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1052:27:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 4037,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1071:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4043,
"name": "mapSymbol",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1127:37:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 4042,
"keyType": {
"id": 4040,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1135:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1127:27:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 4041,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1146:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4047,
"name": "mapIssuer",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1206:37:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 4046,
"keyType": {
"id": 4044,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1214:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1206:27:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 4045,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1225:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4052,
"name": "mapToken",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1315:38:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[])"
},
"typeName": {
"id": 4051,
"keyType": {
"id": 4048,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1323:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1315:29:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[])"
},
"valueType": {
"baseType": {
"id": 4049,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1334:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4050,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1334:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4055,
"name": "list",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1377:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4053,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "1377:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4054,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1377:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "tokenMap",
"nodeType": "StructDefinition",
"scope": 4973,
"src": "1005:391:17",
"visibility": "public"
},
{
"body": {
"id": 4098,
"nodeType": "Block",
"src": "1496:162:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4069,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4065,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1506:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4066,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1506:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4067,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1506:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4068,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1526:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1506:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4072,
"nodeType": "IfStatement",
"src": "1502:39:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4070,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1536:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4064,
"id": 4071,
"nodeType": "Return",
"src": "1529:12:17"
}
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4095,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4082,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4073,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1555:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4074,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1555:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4079,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4075,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1565:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4076,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "1565:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4078,
"indexExpression": {
"argumentTypes": null,
"id": 4077,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4060,
"src": "1576:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1565:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1555:26:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"id": 4080,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "1555:29:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4081,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4060,
"src": "1588:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1555:36:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4094,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4084,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1614:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4085,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1614:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4090,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4086,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1624:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4087,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "1624:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4089,
"indexExpression": {
"argumentTypes": null,
"id": 4088,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4060,
"src": "1635:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1624:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1614:26:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"id": 4091,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4034,
"src": "1614:33:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4083,
"name": "getStringLen",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4432,
"src": "1601:12:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
"typeString": "function (string memory) pure returns (uint256)"
}
},
"id": 4092,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1601:47:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4093,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1651:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1601:51:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1555:97:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"id": 4096,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "1554:99:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 4064,
"id": 4097,
"nodeType": "Return",
"src": "1547:106:17"
}
]
},
"documentation": null,
"id": 4099,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existId",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4061,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4058,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4099,
"src": "1417:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4057,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "1417:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4060,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4099,
"src": "1440:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4059,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1440:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1416:36:17"
},
"payable": false,
"returnParameters": {
"id": 4064,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4063,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4099,
"src": "1488:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4062,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1488:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1487:6:17"
},
"scope": 4973,
"src": "1400:258:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4136,
"nodeType": "Block",
"src": "1770:172:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4108,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4101,
"src": "1780:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4109,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1780:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4110,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1780:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4111,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1800:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1780:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4115,
"nodeType": "IfStatement",
"src": "1776:39:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4113,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1810:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4107,
"id": 4114,
"nodeType": "Return",
"src": "1803:12:17"
}
},
{
"assignments": [
4117
],
"declarations": [
{
"constant": false,
"id": 4117,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1821:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4116,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "1821:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4125,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4118,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4101,
"src": "1841:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4119,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1841:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4124,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4120,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4101,
"src": "1851:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4121,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "1851:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4123,
"indexExpression": {
"argumentTypes": null,
"id": 4122,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4103,
"src": "1866:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1851:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1841:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1821:58:17"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4127,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4117,
"src": "1901:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4128,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "1901:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4129,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4117,
"src": "1912:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4130,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4034,
"src": "1912:8:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4126,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "1893:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4131,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1893:28:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4132,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4103,
"src": "1925:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1893:43:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"id": 4134,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "1892:45:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 4107,
"id": 4135,
"nodeType": "Return",
"src": "1885:52:17"
}
]
},
"documentation": null,
"id": 4137,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existSymbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4104,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4101,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1683:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4100,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "1683:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4103,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1706:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4102,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1706:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1682:44:17"
},
"payable": false,
"returnParameters": {
"id": 4107,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4106,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1762:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4105,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1762:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1761:6:17"
},
"scope": 4973,
"src": "1662:280:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4174,
"nodeType": "Block",
"src": "2054:172:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4146,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4139,
"src": "2064:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4147,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2064:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4148,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2064:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4149,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2084:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2064:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4153,
"nodeType": "IfStatement",
"src": "2060:39:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4151,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2094:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4145,
"id": 4152,
"nodeType": "Return",
"src": "2087:12:17"
}
},
{
"assignments": [
4155
],
"declarations": [
{
"constant": false,
"id": 4155,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "2105:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4154,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "2105:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4163,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4156,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4139,
"src": "2125:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4157,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2125:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4162,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4158,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4139,
"src": "2135:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4159,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "2135:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4161,
"indexExpression": {
"argumentTypes": null,
"id": 4160,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4141,
"src": "2150:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2135:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2125:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2105:58:17"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4171,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4165,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4155,
"src": "2185:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4166,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "2185:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4167,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4155,
"src": "2196:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4168,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "issuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4032,
"src": "2196:8:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4164,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "2177:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4169,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2177:28:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4170,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4141,
"src": "2209:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2177:43:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"id": 4172,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2176:45:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 4145,
"id": 4173,
"nodeType": "Return",
"src": "2169:52:17"
}
]
},
"documentation": null,
"id": 4175,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existIssuer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4142,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4139,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "1967:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4138,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "1967:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4141,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "1990:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4140,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1990:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1966:44:17"
},
"payable": false,
"returnParameters": {
"id": 4145,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4144,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "2046:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4143,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2046:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2045:6:17"
},
"scope": 4973,
"src": "1946:280:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4235,
"nodeType": "Block",
"src": "2393:250:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4192,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4188,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4177,
"src": "2403:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4189,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2403:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4190,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2403:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4191,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2423:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2403:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4197,
"nodeType": "IfStatement",
"src": "2399:44:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4193,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2434:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "30",
"id": 4194,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2441:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"id": 4195,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2433:10:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
"typeString": "tuple(bool,int_const 0)"
}
},
"functionReturnParameters": 4187,
"id": 4196,
"nodeType": "Return",
"src": "2426:17:17"
}
},
{
"assignments": [
4201
],
"declarations": [
{
"constant": false,
"id": 4201,
"name": "_arr",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2450:22:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 4199,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2450:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4200,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2450:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4206,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4202,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4177,
"src": "2475:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4203,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "2475:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4205,
"indexExpression": {
"argumentTypes": null,
"id": 4204,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4179,
"src": "2489:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2475:22:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2450:47:17"
},
{
"body": {
"id": 4229,
"nodeType": "Block",
"src": "2546:69:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4218,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4201,
"src": "2558:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4220,
"indexExpression": {
"argumentTypes": null,
"id": 4219,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2563:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2558:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4221,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4181,
"src": "2569:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2558:14:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4228,
"nodeType": "IfStatement",
"src": "2554:55:17",
"trueBody": {
"id": 4227,
"nodeType": "Block",
"src": "2574:35:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 4223,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2592:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 4224,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2598:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 4225,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2591:9:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 4187,
"id": 4226,
"nodeType": "Return",
"src": "2584:16:17"
}
]
}
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4211,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2524:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4212,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4201,
"src": "2528:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4213,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2528:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2524:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4230,
"initializationExpression": {
"assignments": [
4208
],
"declarations": [
{
"constant": false,
"id": 4208,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2509:9:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4207,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2509:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4210,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4209,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2521:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2509:13:17"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 4216,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2541:3:17",
"subExpression": {
"argumentTypes": null,
"id": 4215,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2541:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4217,
"nodeType": "ExpressionStatement",
"src": "2541:3:17"
},
"nodeType": "ForStatement",
"src": "2504:111:17"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4231,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2629:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "30",
"id": 4232,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2636:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"id": 4233,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2628:10:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
"typeString": "tuple(bool,int_const 0)"
}
},
"functionReturnParameters": 4187,
"id": 4234,
"nodeType": "Return",
"src": "2621:17:17"
}
]
},
"documentation": null,
"id": 4236,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4182,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4177,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2291:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4176,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "2291:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4179,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2318:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4178,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2318:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4181,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2339:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4180,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2339:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2285:69:17"
},
"payable": false,
"returnParameters": {
"id": 4187,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4184,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2378:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4183,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2378:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4186,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2384:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4185,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2384:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2377:15:17"
},
"scope": 4973,
"src": "2266:377:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4299,
"nodeType": "Block",
"src": "2802:314:17",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4248,
"name": "_exist",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2808:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4247,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2808:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4249,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "2808:11:17"
},
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4251,
"name": "_originIdx",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2825:18:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4250,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2825:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4252,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "2825:18:17"
},
{
"assignments": [
4254
],
"declarations": [
{
"constant": false,
"id": 4254,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2849:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4253,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "2849:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4259,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4255,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4238,
"src": "2869:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4256,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2869:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4258,
"indexExpression": {
"argumentTypes": null,
"id": 4257,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4242,
"src": "2879:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2869:15:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2849:35:17"
},
{
"assignments": [
4261
],
"declarations": [
{
"constant": false,
"id": 4261,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2890:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4260,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2890:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4270,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4265,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4262,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "2908:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4263,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "2908:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 4264,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2920:3:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "2908:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4267,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "2940:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4268,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "2940:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4269,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "2908:40:17",
"trueExpression": {
"argumentTypes": null,
"id": 4266,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4240,
"src": "2926:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2890:58:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4280,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"id": 4271,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4248,
"src": "2956:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 4272,
"name": "_originIdx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4251,
"src": "2964:10:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 4273,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "2955:20:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4275,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4238,
"src": "2989:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4276,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4261,
"src": "2995:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4277,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "3004:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4278,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "3004:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4274,
"name": "existToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4236,
"src": "2978:10:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
}
},
"id": 4279,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2978:31:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"src": "2955:54:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4281,
"nodeType": "ExpressionStatement",
"src": "2955:54:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4282,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4248,
"src": "3019:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4286,
"nodeType": "IfStatement",
"src": "3015:39:17",
"trueBody": {
"id": 4285,
"nodeType": "Block",
"src": "3027:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4283,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3042:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4246,
"id": 4284,
"nodeType": "Return",
"src": "3035:12:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4293,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "3088:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4294,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "3088:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4287,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4238,
"src": "3060:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4290,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "3060:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4291,
"indexExpression": {
"argumentTypes": null,
"id": 4289,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4261,
"src": "3074:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3060:22:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 4292,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3060:27:17",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) returns (uint256)"
}
},
"id": 4295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3060:33:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4296,
"nodeType": "ExpressionStatement",
"src": "3060:33:17"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4297,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3107:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4246,
"id": 4298,
"nodeType": "Return",
"src": "3100:11:17"
}
]
},
"documentation": null,
"id": 4300,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "insertToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4243,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4238,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2709:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4237,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "2709:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4240,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2736:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4239,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2736:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4242,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2761:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4241,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2761:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2703:74:17"
},
"payable": false,
"returnParameters": {
"id": 4246,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4245,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2796:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4244,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2796:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2795:6:17"
},
"scope": 4973,
"src": "2683:433:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4406,
"nodeType": "Block",
"src": "3248:625:17",
"statements": [
{
"assignments": [
4310
],
"declarations": [
{
"constant": false,
"id": 4310,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3254:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4309,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "3254:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4315,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4311,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4302,
"src": "3274:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4312,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "3274:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4314,
"indexExpression": {
"argumentTypes": null,
"id": 4313,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4304,
"src": "3284:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3274:15:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3254:35:17"
},
{
"assignments": [
4317
],
"declarations": [
{
"constant": false,
"id": 4317,
"name": "isOrigin",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3295:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4316,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3295:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4322,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4321,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4318,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3311:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4319,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "3311:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 4320,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3323:3:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "3311:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3295:31:17"
},
{
"assignments": [
4324
],
"declarations": [
{
"constant": false,
"id": 4324,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3332:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4323,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3332:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4335,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 4325,
"name": "isOrigin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4317,
"src": "3354:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4332,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3396:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4333,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "3396:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "3354:50:17",
"trueExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4327,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3373:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4328,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "3373:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4329,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3384:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4330,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "issuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4032,
"src": "3384:8:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4326,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "3365:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4331,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3365:28:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3332:72:17"
},
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4337,
"name": "_exist",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3411:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4336,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3411:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4338,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "3411:11:17"
},
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4340,
"name": "row2Del",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3428:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4339,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3428:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4341,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "3428:15:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4351,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"id": 4342,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4337,
"src": "3451:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 4343,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4340,
"src": "3459:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 4344,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "3450:17:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4346,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4302,
"src": "3481:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4347,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4324,
"src": "3487:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4348,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3500:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4349,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "3500:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4345,
"name": "existToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4236,
"src": "3470:10:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
}
},
"id": 4350,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3470:35:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"src": "3450:55:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4352,
"nodeType": "ExpressionStatement",
"src": "3450:55:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4354,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "3515:7:17",
"subExpression": {
"argumentTypes": null,
"id": 4353,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4337,
"src": "3516:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4358,
"nodeType": "IfStatement",
"src": "3511:40:17",
"trueBody": {
"id": 4357,
"nodeType": "Block",
"src": "3524:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4355,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3539:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4308,
"id": 4356,
"nodeType": "Return",
"src": "3532:12:17"
}
]
}
},
{
"assignments": [
4362
],
"declarations": [
{
"constant": false,
"id": 4362,
"name": "_arr",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3557:22:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 4360,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3557:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4361,
"length": null,
"nodeType": "ArrayTypeName",
"src": "3557:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4367,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4363,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4302,
"src": "3582:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4364,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "3582:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4366,
"indexExpression": {
"argumentTypes": null,
"id": 4365,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4324,
"src": "3596:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3582:26:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3557:51:17"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4373,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4368,
"name": "isOrigin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4317,
"src": "3674:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4372,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4369,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3686:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4370,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3686:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 4371,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3700:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3686:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "3674:27:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4377,
"nodeType": "IfStatement",
"src": "3670:60:17",
"trueBody": {
"id": 4376,
"nodeType": "Block",
"src": "3703:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4374,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3718:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4308,
"id": 4375,
"nodeType": "Return",
"src": "3711:12:17"
}
]
}
},
{
"assignments": [
4379
],
"declarations": [
{
"constant": false,
"id": 4379,
"name": "keyToMove",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3736:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4378,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3736:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4387,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4380,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3756:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4386,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4384,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3777:1:17",
"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,
"expression": {
"argumentTypes": null,
"id": 4381,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3761:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4382,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3761:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4383,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "3761:15:17",
"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": 4385,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3761:18:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3756:24:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3736:44:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4392,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4388,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3787:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4390,
"indexExpression": {
"argumentTypes": null,
"id": 4389,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4340,
"src": "3792:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3787:13:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4391,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4379,
"src": "3803:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3787:25:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4393,
"nodeType": "ExpressionStatement",
"src": "3787:25:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4402,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4394,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3818:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4396,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3818:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4400,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3848:1:17",
"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,
"expression": {
"argumentTypes": null,
"id": 4397,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3832:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4398,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3832:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4399,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "3832:15:17",
"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": 4401,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3832:18:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3818:32:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4403,
"nodeType": "ExpressionStatement",
"src": "3818:32:17"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4404,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3864:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4308,
"id": 4405,
"nodeType": "Return",
"src": "3857:11:17"
}
]
},
"documentation": null,
"id": 4407,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "removeToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4305,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4302,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3177:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4301,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "3177:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4304,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3200:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4303,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3200:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3176:37:17"
},
"payable": false,
"returnParameters": {
"id": 4308,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4307,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3240:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4306,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3240:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3239:6:17"
},
"scope": 4973,
"src": "3156:717:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4431,
"nodeType": "Block",
"src": "3944:130:17",
"statements": [
{
"assignments": [
4415
],
"declarations": [
{
"constant": false,
"id": 4415,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 4432,
"src": "3950:14:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4414,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3950:5:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4419,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4417,
"name": "_str",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4409,
"src": "3973:4:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4416,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3967:5:17",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": "bytes"
},
"id": 4418,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3967:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3950:28:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4424,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4421,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4415,
"src": "3992:1:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 4422,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3992:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303234",
"id": 4423,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4004:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1024_by_1",
"typeString": "int_const 1024"
},
"value": "1024"
},
"src": "3992:16:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "746f6f206c6172676520737472696e67206d616b65206f766572666c6f77207269736b",
"id": 4425,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4010:37:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
"typeString": "literal_string \"too large string make overflow risk\""
},
"value": "too large string make overflow risk"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
"typeString": "literal_string \"too large string make overflow risk\""
}
],
"id": 4420,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "3984:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4426,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3984:64:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4427,
"nodeType": "ExpressionStatement",
"src": "3984:64:17"
},
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4428,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4415,
"src": "4061:1:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 4429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4061:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4413,
"id": 4430,
"nodeType": "Return",
"src": "4054:15:17"
}
]
},
"documentation": null,
"id": 4432,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getStringLen",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4410,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4409,
"name": "_str",
"nodeType": "VariableDeclaration",
"scope": 4432,
"src": "3899:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4408,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3899:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3898:13:17"
},
"payable": false,
"returnParameters": {
"id": 4413,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4412,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4432,
"src": "3935:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4411,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3935:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3934:9:17"
},
"scope": 4973,
"src": "3877:197:17",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4449,
"nodeType": "Block",
"src": "4173:62:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4444,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4434,
"src": "4213:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4445,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4436,
"src": "4223:5:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"argumentTypes": null,
"id": 4442,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9028,
"src": "4196:3:17",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4443,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4196:16:17",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4446,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4196:33:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 4441,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9035,
"src": "4186:9:17",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 4447,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4186:44:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 4440,
"id": 4448,
"nodeType": "Return",
"src": "4179:51:17"
}
]
},
"documentation": null,
"id": 4450,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4437,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4434,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "4095:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4433,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4095:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4436,
"name": "_name",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "4113:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4435,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4113:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4094:32:17"
},
"payable": false,
"returnParameters": {
"id": 4440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4439,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "4162:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4438,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4162:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4161:9:17"
},
"scope": 4973,
"src": "4078:157:17",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4576,
"nodeType": "Block",
"src": "4477:883:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4468,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4495:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4469,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4454,
"src": "4501:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4467,
"name": "existId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "4487:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
}
},
"id": 4470,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4487:18:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4474,
"nodeType": "IfStatement",
"src": "4483:51:17",
"trueBody": {
"id": 4473,
"nodeType": "Block",
"src": "4507:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4471,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4522:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4472,
"nodeType": "Return",
"src": "4515:12:17"
}
]
}
},
{
"assignments": [
4476
],
"declarations": [
{
"constant": false,
"id": 4476,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4540:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4475,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4540:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4481,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4478,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4456,
"src": "4570:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4479,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4462,
"src": "4580:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4477,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "4562:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4480,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4562:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4540:48:17"
},
{
"assignments": [
4483
],
"declarations": [
{
"constant": false,
"id": 4483,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4594:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4482,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4594:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4488,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4485,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4456,
"src": "4624:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4486,
"name": "_issuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4460,
"src": "4634:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4484,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "4616:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4487,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4616:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4594:48:17"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4497,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4490,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4665:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4491,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4476,
"src": "4671:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4489,
"name": "existSymbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4137,
"src": "4653:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4653:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4494,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4699:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4495,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4483,
"src": "4705:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4493,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "4687:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4496,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4687:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "4653:64:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4501,
"nodeType": "IfStatement",
"src": "4649:97:17",
"trueBody": {
"id": 4500,
"nodeType": "Block",
"src": "4719:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4498,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4734:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4499,
"nodeType": "Return",
"src": "4727:12:17"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4510,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4504,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4502,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4458,
"src": "4796:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 4503,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4807:3:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "4796:14:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"id": 4509,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "4814:27:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4506,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4827:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4507,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4458,
"src": "4833:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4505,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "4815:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4508,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4815:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "4796:45:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4514,
"nodeType": "IfStatement",
"src": "4792:78:17",
"trueBody": {
"id": 4513,
"nodeType": "Block",
"src": "4843:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4511,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4858:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4512,
"nodeType": "Return",
"src": "4851:12:17"
}
]
}
},
{
"assignments": [
4516
],
"declarations": [
{
"constant": false,
"id": 4516,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4876:16:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4515,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "4876:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4527,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4518,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4924:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4519,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "4924:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4520,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4924:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4521,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4454,
"src": "4954:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4522,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4456,
"src": "4976:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4523,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4458,
"src": "5002:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 4524,
"name": "_issuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4460,
"src": "5027:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"id": 4525,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4462,
"src": "5052:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": null,
"id": 4517,
"name": "element",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4035,
"src": "4901:7:17",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_element_$4035_storage_ptr_$",
"typeString": "type(struct TokenList.element storage pointer)"
}
},
"id": 4526,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"idx",
"id",
"chainId",
"origin",
"issuer",
"symbol"
],
"nodeType": "FunctionCall",
"src": "4901:167:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4876:192:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4533,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5090:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4528,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5075:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4531,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5075:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4532,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5075:14:17",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_element_$4035_storage_$returns$_t_uint256_$",
"typeString": "function (struct TokenList.element storage ref) returns (uint256)"
}
},
"id": 4534,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5075:17:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4535,
"nodeType": "ExpressionStatement",
"src": "5075:17:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4543,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4536,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5098:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4539,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "5098:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4540,
"indexExpression": {
"argumentTypes": null,
"id": 4538,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4454,
"src": "5109:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5098:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4541,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5116:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4542,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5116:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5098:23:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4544,
"nodeType": "ExpressionStatement",
"src": "5098:23:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4552,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4545,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5127:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4548,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "5127:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4549,
"indexExpression": {
"argumentTypes": null,
"id": 4547,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4476,
"src": "5142:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5127:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4550,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5157:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4551,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5157:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5127:35:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4553,
"nodeType": "ExpressionStatement",
"src": "5127:35:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4554,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5168:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4557,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "5168:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4558,
"indexExpression": {
"argumentTypes": null,
"id": 4556,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4483,
"src": "5183:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5168:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4559,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5198:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4560,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5198:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5168:35:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4562,
"nodeType": "ExpressionStatement",
"src": "5168:35:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4569,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "5271:38:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4564,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5284:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4565,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4483,
"src": "5290:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4566,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5303:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4567,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5303:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4563,
"name": "insertToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4300,
"src": "5272:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) returns (bool)"
}
},
"id": 4568,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5272:37:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4573,
"nodeType": "IfStatement",
"src": "5267:71:17",
"trueBody": {
"id": 4572,
"nodeType": "Block",
"src": "5311:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4570,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5326:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4571,
"nodeType": "Return",
"src": "5319:12:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4574,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5351:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4466,
"id": 4575,
"nodeType": "Return",
"src": "5344:11:17"
}
]
},
"documentation": "@dev 增加新定时定义,重复的ID返回失败",
"id": 4577,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "insert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4463,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4452,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4327:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4451,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "4327:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4454,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4354:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4453,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4354:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4456,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4371:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4455,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4371:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4458,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4393:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4457,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4393:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4460,
"name": "_issuer",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4414:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4459,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4414:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4462,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4434:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4461,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4434:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4321:131:17"
},
"payable": false,
"returnParameters": {
"id": 4466,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4465,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4471:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4464,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4471:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4470:6:17"
},
"scope": 4973,
"src": "4306:1054:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4689,
"nodeType": "Block",
"src": "5440:610:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"id": 4590,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "5450:19:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4587,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5459:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4588,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4581,
"src": "5465:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4586,
"name": "existId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "5451:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
}
},
"id": 4589,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5451:18:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4594,
"nodeType": "IfStatement",
"src": "5446:52:17",
"trueBody": {
"id": 4593,
"nodeType": "Block",
"src": "5471:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4591,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5486:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4585,
"id": 4592,
"nodeType": "Return",
"src": "5479:12:17"
}
]
}
},
{
"assignments": [
4596
],
"declarations": [
{
"constant": false,
"id": 4596,
"name": "row2Del",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5504:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4595,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5504:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4601,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4597,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5522:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4598,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "5522:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4600,
"indexExpression": {
"argumentTypes": null,
"id": 4599,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4581,
"src": "5533:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5522:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5504:33:17"
},
{
"assignments": [
4603
],
"declarations": [
{
"constant": false,
"id": 4603,
"name": "keyToMove",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5544:25:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4602,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "5544:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4613,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4604,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5572:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4605,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5572:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4612,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4610,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5603:1:17",
"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,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4606,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5582:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4607,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5582:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4608,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5582:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4609,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "5582:20:17",
"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": 4611,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5582:23:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5572:34:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5544:62:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4618,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "5617:27:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4615,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5630:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4616,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5636:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4614,
"name": "removeToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4407,
"src": "5618:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) returns (bool)"
}
},
"id": 4617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5618:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4622,
"nodeType": "IfStatement",
"src": "5613:60:17",
"trueBody": {
"id": 4621,
"nodeType": "Block",
"src": "5646:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4619,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5661:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4585,
"id": 4620,
"nodeType": "Return",
"src": "5654:12:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 4629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4623,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5679:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4626,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5679:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4627,
"indexExpression": {
"argumentTypes": null,
"id": 4625,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5689:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5679:18:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4628,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5700:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"src": "5679:30:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"id": 4630,
"nodeType": "ExpressionStatement",
"src": "5679:30:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4638,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4631,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5715:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4635,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "5715:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4636,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4633,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5726:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4634,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "5726:12:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5715:24:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4637,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5742:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5715:34:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4639,
"nodeType": "ExpressionStatement",
"src": "5715:34:17"
},
{
"assignments": [
4641
],
"declarations": [
{
"constant": false,
"id": 4641,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5755:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4640,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5755:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4648,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4643,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5785:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4644,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "5785:17:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4645,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5804:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4646,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4034,
"src": "5804:16:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4642,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "5777:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4647,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5777:44:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5755:66:17"
},
{
"assignments": [
4650
],
"declarations": [
{
"constant": false,
"id": 4650,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5827:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4649,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5827:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4657,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4652,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5857:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4653,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "5857:17:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4654,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5876:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4655,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "issuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4032,
"src": "5876:16:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4651,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "5849:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5849:44:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5827:66:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4664,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4658,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5899:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4661,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "5899:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4662,
"indexExpression": {
"argumentTypes": null,
"id": 4660,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4641,
"src": "5914:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5899:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4663,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5929:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5899:37:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4665,
"nodeType": "ExpressionStatement",
"src": "5899:37:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4672,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4666,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5942:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4669,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "5942:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4670,
"indexExpression": {
"argumentTypes": null,
"id": 4668,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4650,
"src": "5957:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5942:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4671,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5972:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5942:37:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4673,
"nodeType": "ExpressionStatement",
"src": "5942:37:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4685,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4674,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5985:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4677,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5985:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4678,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5985:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4683,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6025:1:17",
"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,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4679,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "6004:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4680,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6004:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4681,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6004:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4682,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "6004:20:17",
"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": 4684,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6004:23:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5985:42:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4686,
"nodeType": "ExpressionStatement",
"src": "5985:42:17"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4687,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6041:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4585,
"id": 4688,
"nodeType": "Return",
"src": "6034:11:17"
}
]
},
"documentation": null,
"id": 4690,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "remove",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4582,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4579,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5380:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4578,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "5380:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4581,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5403:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4580,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5403:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5379:36:17"
},
"payable": false,
"returnParameters": {
"id": 4585,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4584,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5434:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4583,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5434:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5433:6:17"
},
"scope": 4973,
"src": "5364:686:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4701,
"nodeType": "Block",
"src": "6124:34:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4697,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4692,
"src": "6137:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4698,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6137:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4699,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6137:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4696,
"id": 4700,
"nodeType": "Return",
"src": "6130:23:17"
}
]
},
"documentation": null,
"id": 4702,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "count",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4693,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4692,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4702,
"src": "6069:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4691,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6069:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6068:23:17"
},
"payable": false,
"returnParameters": {
"id": 4696,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4695,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4702,
"src": "6115:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4694,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6115:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6114:9:17"
},
"scope": 4973,
"src": "6054:104:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4725,
"nodeType": "Block",
"src": "6269:112:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4716,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4712,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4706,
"src": "6283:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4713,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4704,
"src": "6291:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4714,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6291:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4715,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6291:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6283:24:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
"id": 4717,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6309:37:17",
"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": 4711,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "6275:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4718,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6275:72:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4719,
"nodeType": "ExpressionStatement",
"src": "6275:72:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4720,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4704,
"src": "6360:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4721,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6360:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4723,
"indexExpression": {
"argumentTypes": null,
"id": 4722,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4706,
"src": "6370:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6360:16:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4710,
"id": 4724,
"nodeType": "Return",
"src": "6353:23:17"
}
]
},
"documentation": null,
"id": 4726,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "get",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4707,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4704,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4726,
"src": "6175:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4703,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6175:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4706,
"name": "index",
"nodeType": "VariableDeclaration",
"scope": 4726,
"src": "6198:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4705,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6198:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6174:38:17"
},
"payable": false,
"returnParameters": {
"id": 4710,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4709,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4726,
"src": "6248:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4708,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "6248:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6247:19:17"
},
"scope": 4973,
"src": "6162:219:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4751,
"nodeType": "Block",
"src": "6494:105:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4737,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4728,
"src": "6516:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4738,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4730,
"src": "6522:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4736,
"name": "existId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "6508:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
}
},
"id": 4739,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6508:18:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "746f6b656e2064617461206d757374206265206578697374",
"id": 4740,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6528:26:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
"typeString": "literal_string \"token data must be exist\""
},
"value": "token data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
"typeString": "literal_string \"token data must be exist\""
}
],
"id": 4735,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "6500:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4741,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6500:55:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4742,
"nodeType": "ExpressionStatement",
"src": "6500:55:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4743,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4728,
"src": "6568:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4744,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6568:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4749,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4745,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4728,
"src": "6578:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4746,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "6578:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4748,
"indexExpression": {
"argumentTypes": null,
"id": 4747,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4730,
"src": "6589:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6578:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6568:26:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4734,
"id": 4750,
"nodeType": "Return",
"src": "6561:33:17"
}
]
},
"documentation": null,
"id": 4752,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getById",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4731,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4728,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4752,
"src": "6402:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4727,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6402:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4730,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4752,
"src": "6425:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4729,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6425:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6401:36:17"
},
"payable": false,
"returnParameters": {
"id": 4734,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4733,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4752,
"src": "6473:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4732,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "6473:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6472:19:17"
},
"scope": 4973,
"src": "6385:214:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4786,
"nodeType": "Block",
"src": "6739:184:17",
"statements": [
{
"assignments": [
4764
],
"declarations": [
{
"constant": false,
"id": 4764,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6745:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4763,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6745:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4769,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4766,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4756,
"src": "6775:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4767,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4758,
"src": "6785:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4765,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "6767:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6767:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6745:48:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4772,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4754,
"src": "6819:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4773,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4764,
"src": "6825:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4771,
"name": "existSymbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4137,
"src": "6807:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4774,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6807:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "73796d626f6c2064617461206d757374206265206578697374",
"id": 4775,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6839:27:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
"typeString": "literal_string \"symbol data must be exist\""
},
"value": "symbol data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
"typeString": "literal_string \"symbol data must be exist\""
}
],
"id": 4770,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "6799:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4776,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6799:68:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4777,
"nodeType": "ExpressionStatement",
"src": "6799:68:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4778,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4754,
"src": "6880:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4779,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6880:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4784,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4780,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4754,
"src": "6890:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4781,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "6890:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4783,
"indexExpression": {
"argumentTypes": null,
"id": 4782,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4764,
"src": "6905:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6890:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6880:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4762,
"id": 4785,
"nodeType": "Return",
"src": "6873:45:17"
}
]
},
"documentation": null,
"id": 4787,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBySymbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4759,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4754,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6629:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4753,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6629:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4756,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6656:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4755,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6656:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4758,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6678:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4757,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6678:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6623:73:17"
},
"payable": false,
"returnParameters": {
"id": 4762,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4761,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6720:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4760,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "6720:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6719:19:17"
},
"scope": 4973,
"src": "6603:320:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4821,
"nodeType": "Block",
"src": "7063:184:17",
"statements": [
{
"assignments": [
4799
],
"declarations": [
{
"constant": false,
"id": 4799,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "7069:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4798,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7069:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4804,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4801,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4791,
"src": "7099:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4802,
"name": "_issuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4793,
"src": "7109:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4800,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "7091:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7091:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7069:48:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4807,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4789,
"src": "7143:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4808,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4799,
"src": "7149:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4806,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "7131:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4809,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7131:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6973737565722064617461206d757374206265206578697374",
"id": 4810,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7163:27:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
"typeString": "literal_string \"issuer data must be exist\""
},
"value": "issuer data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
"typeString": "literal_string \"issuer data must be exist\""
}
],
"id": 4805,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "7123:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4811,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7123:68:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4812,
"nodeType": "ExpressionStatement",
"src": "7123:68:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4813,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4789,
"src": "7204:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4814,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "7204:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4819,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4815,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4789,
"src": "7214:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4816,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "7214:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4818,
"indexExpression": {
"argumentTypes": null,
"id": 4817,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4799,
"src": "7229:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7214:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7204:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4797,
"id": 4820,
"nodeType": "Return",
"src": "7197:45:17"
}
]
},
"documentation": null,
"id": 4822,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getByIssuer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4794,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4789,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "6953:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4788,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6953:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4791,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "6980:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4790,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6980:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4793,
"name": "_issuer",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "7002:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4792,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7002:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6947:73:17"
},
"payable": false,
"returnParameters": {
"id": 4797,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4796,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "7044:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4795,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7044:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7043:19:17"
},
"scope": 4973,
"src": "6927:320:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4898,
"nodeType": "Block",
"src": "7414:379:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4834,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7440:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4835,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4826,
"src": "7446:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4833,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "7428:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4836,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7428:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6f726967696e2064617461206d757374206265206578697374",
"id": 4837,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7456:27:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
"typeString": "literal_string \"origin data must be exist\""
},
"value": "origin data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
"typeString": "literal_string \"origin data must be exist\""
}
],
"id": 4832,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "7420:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4838,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7420:64:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4839,
"nodeType": "ExpressionStatement",
"src": "7420:64:17"
},
{
"assignments": [
4843
],
"declarations": [
{
"constant": false,
"id": 4843,
"name": "_arr",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7491:22:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 4841,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7491:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4842,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7491:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4848,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4844,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7516:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4845,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "7516:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4847,
"indexExpression": {
"argumentTypes": null,
"id": 4846,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4826,
"src": "7530:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7516:22:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7491:47:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4853,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4850,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7552:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4851,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7552:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4852,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7566:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "7552:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6f726967696e206c69737420686176652064617461",
"id": 4854,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7569:23:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
"typeString": "literal_string \"origin list have data\""
},
"value": "origin list have data"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
"typeString": "literal_string \"origin list have data\""
}
],
"id": 4849,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "7544:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4855,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7544:49:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4856,
"nodeType": "ExpressionStatement",
"src": "7544:49:17"
},
{
"assignments": [
4861
],
"declarations": [
{
"constant": false,
"id": 4861,
"name": "res",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7600:30:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4859,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7600:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4860,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7600:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4868,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4865,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7657:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4866,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7657:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4864,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "7633:23:17",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4862,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7637:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4863,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7637:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
}
},
"id": 4867,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7633:36:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
"typeString": "struct TokenList.element memory[] memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7600:69:17"
},
{
"body": {
"id": 4894,
"nodeType": "Block",
"src": "7718:54:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 4892,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4880,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4861,
"src": "7726:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"id": 4882,
"indexExpression": {
"argumentTypes": null,
"id": 4881,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7730:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7726:6:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4883,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7735:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4884,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "7735:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4891,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4885,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7745:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4886,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "7745:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4890,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4887,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7756:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4889,
"indexExpression": {
"argumentTypes": null,
"id": 4888,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7761:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7756:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7745:19:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7735:30:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"src": "7726:39:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"id": 4893,
"nodeType": "ExpressionStatement",
"src": "7726:39:17"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4876,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4873,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7696:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4874,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7700:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4875,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7700:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7696:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4895,
"initializationExpression": {
"assignments": [
4870
],
"declarations": [
{
"constant": false,
"id": 4870,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7681:9:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4869,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7681:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4872,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4871,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7693:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "7681:13:17"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 4878,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7713:3:17",
"subExpression": {
"argumentTypes": null,
"id": 4877,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7713:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4879,
"nodeType": "ExpressionStatement",
"src": "7713:3:17"
},
"nodeType": "ForStatement",
"src": "7676:96:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4896,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4861,
"src": "7785:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"functionReturnParameters": 4831,
"id": 4897,
"nodeType": "Return",
"src": "7778:10:17"
}
]
},
"documentation": "获取通证跨链映射表",
"id": 4899,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getCrossList",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4827,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4824,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7316:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4823,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "7316:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4826,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7339:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4825,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7339:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7315:40:17"
},
"payable": false,
"returnParameters": {
"id": 4831,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4830,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7391:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4828,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7391:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4829,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7391:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7390:21:17"
},
"scope": 4973,
"src": "7294:499:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4971,
"nodeType": "Block",
"src": "8035:348:17",
"statements": [
{
"assignments": [
4912
],
"declarations": [
{
"constant": false,
"id": 4912,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8041:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4911,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8041:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4914,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4913,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8056:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "8041:16:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4918,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4916,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4905,
"src": "8071:6:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4917,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8080:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "8071:10:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
"id": 4919,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8083:34:17",
"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": 4915,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "8063:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4920,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8063:55:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4921,
"nodeType": "ExpressionStatement",
"src": "8063:55:17"
},
{
"assignments": [
4926
],
"declarations": [
{
"constant": false,
"id": 4926,
"name": "res",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8124:30:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4924,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "8124:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4925,
"length": null,
"nodeType": "ArrayTypeName",
"src": "8124:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4932,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4930,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4905,
"src": "8181:6:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4929,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "8157:23:17",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4927,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "8161:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4928,
"length": null,
"nodeType": "ArrayTypeName",
"src": "8161:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
}
},
"id": 4931,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8157:31:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
"typeString": "struct TokenList.element memory[] memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8124:64:17"
},
{
"body": {
"id": 4967,
"nodeType": "Block",
"src": "8245:117:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4947,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4945,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8257:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4946,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4905,
"src": "8265:6:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "8257:14:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4950,
"nodeType": "IfStatement",
"src": "8253:44:17",
"trueBody": {
"id": 4949,
"nodeType": "Block",
"src": "8273:24:17",
"statements": [
{
"id": 4948,
"nodeType": "Break",
"src": "8283:5:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 4958,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4951,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4926,
"src": "8305:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"id": 4953,
"indexExpression": {
"argumentTypes": null,
"id": 4952,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8309:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8305:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4954,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4901,
"src": "8317:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4955,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "8317:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4957,
"indexExpression": {
"argumentTypes": null,
"id": 4956,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4934,
"src": "8327:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8317:12:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"src": "8305:24:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"id": 4959,
"nodeType": "ExpressionStatement",
"src": "8305:24:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4965,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4960,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8337:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4963,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8353:1:17",
"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": 4961,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8344:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4962,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 5635,
"src": "8344:8:17",
"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": 4964,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8344:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "8337:18:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4966,
"nodeType": "ExpressionStatement",
"src": "8337:18:17"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4941,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4937,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4934,
"src": "8218:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4938,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4901,
"src": "8222:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4939,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "8222:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4940,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8222:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "8218:20:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4968,
"initializationExpression": {
"assignments": [
4934
],
"declarations": [
{
"constant": false,
"id": 4934,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8200:9:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4933,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8200:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4936,
"initialValue": {
"argumentTypes": null,
"id": 4935,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4903,
"src": "8212:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8200:16:17"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 4943,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "8240:3:17",
"subExpression": {
"argumentTypes": null,
"id": 4942,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4934,
"src": "8240:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4944,
"nodeType": "ExpressionStatement",
"src": "8240:3:17"
},
"nodeType": "ForStatement",
"src": "8195:167:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4969,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4926,
"src": "8375:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"functionReturnParameters": 4910,
"id": 4970,
"nodeType": "Return",
"src": "8368:10:17"
}
]
},
"documentation": "@dev 从指定位置返回多条(不多于count)地址记录,如果不足则空缺",
"id": 4972,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getList",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4906,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4901,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "7920:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4900,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "7920:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4903,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "7947:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4902,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7947:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4905,
"name": "_count",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "7965:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4904,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7965:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7914:69:17"
},
"payable": false,
"returnParameters": {
"id": 4910,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4909,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8007:19:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4907,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "8007:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4908,
"length": null,
"nodeType": "ArrayTypeName",
"src": "8007:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8006:28:17"
},
"scope": 4973,
"src": "7898:485:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 4974,
"src": "94:8291:17"
}
],
"src": "0:8386:17"
},
"legacyAST": {
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol",
"exportedSymbols": {
"TokenList": [
4973
]
},
"id": 4974,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4018,
"literals": [
"solidity",
">=",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:25:17"
},
{
"absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol",
"file": "../math/SafeMath.sol",
"id": 4019,
"nodeType": "ImportDirective",
"scope": 4974,
"sourceUnit": 5658,
"src": "27:30:17",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": "@dev 通证列表处理",
"fullyImplemented": true,
"id": 4973,
"linearizedBaseContracts": [
4973
],
"name": "TokenList",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4022,
"libraryName": {
"contractScope": null,
"id": 4020,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5657,
"src": "122:8:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$5657",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "116:27:17",
"typeName": {
"id": 4021,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "135:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"canonicalName": "TokenList.element",
"id": 4035,
"members": [
{
"constant": false,
"id": 4024,
"name": "idx",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "200:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4023,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "200:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4026,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "243:10:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4025,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "243:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4028,
"name": "chainId",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "291:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4027,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "291:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4030,
"name": "origin",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "456:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4029,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "456:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4032,
"name": "issuer",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "928:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4031,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "928:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4034,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 4035,
"src": "983:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4033,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "983:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "element",
"nodeType": "StructDefinition",
"scope": 4973,
"src": "165:836:17",
"visibility": "public"
},
{
"canonicalName": "TokenList.tokenMap",
"id": 4056,
"members": [
{
"constant": false,
"id": 4039,
"name": "mapId",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1052:33:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 4038,
"keyType": {
"id": 4036,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1060:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1052:27:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 4037,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1071:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4043,
"name": "mapSymbol",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1127:37:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 4042,
"keyType": {
"id": 4040,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1135:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1127:27:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 4041,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1146:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4047,
"name": "mapIssuer",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1206:37:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 4046,
"keyType": {
"id": 4044,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1214:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1206:27:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 4045,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1225:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4052,
"name": "mapToken",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1315:38:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[])"
},
"typeName": {
"id": 4051,
"keyType": {
"id": 4048,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1323:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1315:29:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[])"
},
"valueType": {
"baseType": {
"id": 4049,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1334:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4050,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1334:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4055,
"name": "list",
"nodeType": "VariableDeclaration",
"scope": 4056,
"src": "1377:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4053,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "1377:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4054,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1377:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "tokenMap",
"nodeType": "StructDefinition",
"scope": 4973,
"src": "1005:391:17",
"visibility": "public"
},
{
"body": {
"id": 4098,
"nodeType": "Block",
"src": "1496:162:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4069,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4065,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1506:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4066,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1506:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4067,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1506:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4068,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1526:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1506:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4072,
"nodeType": "IfStatement",
"src": "1502:39:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4070,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1536:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4064,
"id": 4071,
"nodeType": "Return",
"src": "1529:12:17"
}
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4095,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4082,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4073,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1555:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4074,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1555:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4079,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4075,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1565:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4076,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "1565:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4078,
"indexExpression": {
"argumentTypes": null,
"id": 4077,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4060,
"src": "1576:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1565:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1555:26:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"id": 4080,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "1555:29:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4081,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4060,
"src": "1588:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1555:36:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4094,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4084,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1614:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4085,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1614:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4090,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4086,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4058,
"src": "1624:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4087,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "1624:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4089,
"indexExpression": {
"argumentTypes": null,
"id": 4088,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4060,
"src": "1635:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1624:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1614:26:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"id": 4091,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4034,
"src": "1614:33:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4083,
"name": "getStringLen",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4432,
"src": "1601:12:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
"typeString": "function (string memory) pure returns (uint256)"
}
},
"id": 4092,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1601:47:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4093,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1651:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1601:51:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1555:97:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"id": 4096,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "1554:99:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 4064,
"id": 4097,
"nodeType": "Return",
"src": "1547:106:17"
}
]
},
"documentation": null,
"id": 4099,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existId",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4061,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4058,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4099,
"src": "1417:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4057,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "1417:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4060,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4099,
"src": "1440:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4059,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1440:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1416:36:17"
},
"payable": false,
"returnParameters": {
"id": 4064,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4063,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4099,
"src": "1488:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4062,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1488:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1487:6:17"
},
"scope": 4973,
"src": "1400:258:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4136,
"nodeType": "Block",
"src": "1770:172:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4108,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4101,
"src": "1780:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4109,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1780:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4110,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1780:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4111,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1800:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1780:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4115,
"nodeType": "IfStatement",
"src": "1776:39:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4113,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1810:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4107,
"id": 4114,
"nodeType": "Return",
"src": "1803:12:17"
}
},
{
"assignments": [
4117
],
"declarations": [
{
"constant": false,
"id": 4117,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1821:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4116,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "1821:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4125,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4118,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4101,
"src": "1841:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4119,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "1841:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4124,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4120,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4101,
"src": "1851:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4121,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "1851:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4123,
"indexExpression": {
"argumentTypes": null,
"id": 4122,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4103,
"src": "1866:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1851:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1841:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1821:58:17"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4127,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4117,
"src": "1901:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4128,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "1901:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4129,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4117,
"src": "1912:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4130,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4034,
"src": "1912:8:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4126,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "1893:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4131,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1893:28:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4132,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4103,
"src": "1925:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1893:43:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"id": 4134,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "1892:45:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 4107,
"id": 4135,
"nodeType": "Return",
"src": "1885:52:17"
}
]
},
"documentation": null,
"id": 4137,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existSymbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4104,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4101,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1683:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4100,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "1683:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4103,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1706:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4102,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1706:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1682:44:17"
},
"payable": false,
"returnParameters": {
"id": 4107,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4106,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4137,
"src": "1762:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4105,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1762:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1761:6:17"
},
"scope": 4973,
"src": "1662:280:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4174,
"nodeType": "Block",
"src": "2054:172:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4146,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4139,
"src": "2064:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4147,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2064:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4148,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2064:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4149,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2084:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2064:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4153,
"nodeType": "IfStatement",
"src": "2060:39:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4151,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2094:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4145,
"id": 4152,
"nodeType": "Return",
"src": "2087:12:17"
}
},
{
"assignments": [
4155
],
"declarations": [
{
"constant": false,
"id": 4155,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "2105:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4154,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "2105:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4163,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4156,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4139,
"src": "2125:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4157,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2125:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4162,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4158,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4139,
"src": "2135:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4159,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "2135:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4161,
"indexExpression": {
"argumentTypes": null,
"id": 4160,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4141,
"src": "2150:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2135:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2125:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2105:58:17"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4171,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4165,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4155,
"src": "2185:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4166,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "2185:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4167,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4155,
"src": "2196:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4168,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "issuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4032,
"src": "2196:8:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4164,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "2177:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4169,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2177:28:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4170,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4141,
"src": "2209:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "2177:43:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"id": 4172,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2176:45:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 4145,
"id": 4173,
"nodeType": "Return",
"src": "2169:52:17"
}
]
},
"documentation": null,
"id": 4175,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existIssuer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4142,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4139,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "1967:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4138,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "1967:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4141,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "1990:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4140,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1990:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1966:44:17"
},
"payable": false,
"returnParameters": {
"id": 4145,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4144,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4175,
"src": "2046:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4143,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2046:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2045:6:17"
},
"scope": 4973,
"src": "1946:280:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4235,
"nodeType": "Block",
"src": "2393:250:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4192,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4188,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4177,
"src": "2403:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4189,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2403:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4190,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2403:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4191,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2423:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2403:21:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4197,
"nodeType": "IfStatement",
"src": "2399:44:17",
"trueBody": {
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4193,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2434:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "30",
"id": 4194,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2441:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"id": 4195,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2433:10:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
"typeString": "tuple(bool,int_const 0)"
}
},
"functionReturnParameters": 4187,
"id": 4196,
"nodeType": "Return",
"src": "2426:17:17"
}
},
{
"assignments": [
4201
],
"declarations": [
{
"constant": false,
"id": 4201,
"name": "_arr",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2450:22:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 4199,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2450:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4200,
"length": null,
"nodeType": "ArrayTypeName",
"src": "2450:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4206,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4202,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4177,
"src": "2475:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4203,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "2475:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4205,
"indexExpression": {
"argumentTypes": null,
"id": 4204,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4179,
"src": "2489:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2475:22:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2450:47:17"
},
{
"body": {
"id": 4229,
"nodeType": "Block",
"src": "2546:69:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4222,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4218,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4201,
"src": "2558:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4220,
"indexExpression": {
"argumentTypes": null,
"id": 4219,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2563:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2558:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4221,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4181,
"src": "2569:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2558:14:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4228,
"nodeType": "IfStatement",
"src": "2554:55:17",
"trueBody": {
"id": 4227,
"nodeType": "Block",
"src": "2574:35:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 4223,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2592:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 4224,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2598:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 4225,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2591:9:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 4187,
"id": 4226,
"nodeType": "Return",
"src": "2584:16:17"
}
]
}
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4211,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2524:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4212,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4201,
"src": "2528:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4213,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2528:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2524:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4230,
"initializationExpression": {
"assignments": [
4208
],
"declarations": [
{
"constant": false,
"id": 4208,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2509:9:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4207,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2509:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4210,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4209,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2521:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2509:13:17"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 4216,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2541:3:17",
"subExpression": {
"argumentTypes": null,
"id": 4215,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4208,
"src": "2541:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4217,
"nodeType": "ExpressionStatement",
"src": "2541:3:17"
},
"nodeType": "ForStatement",
"src": "2504:111:17"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4231,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2629:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "30",
"id": 4232,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2636:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"id": 4233,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2628:10:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
"typeString": "tuple(bool,int_const 0)"
}
},
"functionReturnParameters": 4187,
"id": 4234,
"nodeType": "Return",
"src": "2621:17:17"
}
]
},
"documentation": null,
"id": 4236,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "existToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4182,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4177,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2291:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4176,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "2291:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4179,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2318:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4178,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2318:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4181,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2339:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4180,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2339:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2285:69:17"
},
"payable": false,
"returnParameters": {
"id": 4187,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4184,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2378:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4183,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2378:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4186,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4236,
"src": "2384:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4185,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2384:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2377:15:17"
},
"scope": 4973,
"src": "2266:377:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4299,
"nodeType": "Block",
"src": "2802:314:17",
"statements": [
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4248,
"name": "_exist",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2808:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4247,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2808:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4249,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "2808:11:17"
},
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4251,
"name": "_originIdx",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2825:18:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4250,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2825:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4252,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "2825:18:17"
},
{
"assignments": [
4254
],
"declarations": [
{
"constant": false,
"id": 4254,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2849:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4253,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "2849:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4259,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4255,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4238,
"src": "2869:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4256,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "2869:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4258,
"indexExpression": {
"argumentTypes": null,
"id": 4257,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4242,
"src": "2879:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2869:15:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2849:35:17"
},
{
"assignments": [
4261
],
"declarations": [
{
"constant": false,
"id": 4261,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2890:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4260,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2890:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4270,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4265,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4262,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "2908:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4263,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "2908:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 4264,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2920:3:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "2908:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4267,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "2940:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4268,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "2940:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4269,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "2908:40:17",
"trueExpression": {
"argumentTypes": null,
"id": 4266,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4240,
"src": "2926:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2890:58:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4280,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"id": 4271,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4248,
"src": "2956:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 4272,
"name": "_originIdx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4251,
"src": "2964:10:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 4273,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "2955:20:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4275,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4238,
"src": "2989:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4276,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4261,
"src": "2995:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4277,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "3004:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4278,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "3004:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4274,
"name": "existToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4236,
"src": "2978:10:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
}
},
"id": 4279,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2978:31:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"src": "2955:54:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4281,
"nodeType": "ExpressionStatement",
"src": "2955:54:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4282,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4248,
"src": "3019:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4286,
"nodeType": "IfStatement",
"src": "3015:39:17",
"trueBody": {
"id": 4285,
"nodeType": "Block",
"src": "3027:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4283,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3042:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4246,
"id": 4284,
"nodeType": "Return",
"src": "3035:12:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4293,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4254,
"src": "3088:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4294,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "3088:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4287,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4238,
"src": "3060:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4290,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "3060:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4291,
"indexExpression": {
"argumentTypes": null,
"id": 4289,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4261,
"src": "3074:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3060:22:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 4292,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3060:27:17",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) returns (uint256)"
}
},
"id": 4295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3060:33:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4296,
"nodeType": "ExpressionStatement",
"src": "3060:33:17"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4297,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3107:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4246,
"id": 4298,
"nodeType": "Return",
"src": "3100:11:17"
}
]
},
"documentation": null,
"id": 4300,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "insertToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4243,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4238,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2709:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4237,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "2709:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4240,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2736:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4239,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2736:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4242,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2761:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4241,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2761:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2703:74:17"
},
"payable": false,
"returnParameters": {
"id": 4246,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4245,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4300,
"src": "2796:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4244,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2796:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2795:6:17"
},
"scope": 4973,
"src": "2683:433:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4406,
"nodeType": "Block",
"src": "3248:625:17",
"statements": [
{
"assignments": [
4310
],
"declarations": [
{
"constant": false,
"id": 4310,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3254:17:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4309,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "3254:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4315,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4311,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4302,
"src": "3274:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4312,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "3274:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4314,
"indexExpression": {
"argumentTypes": null,
"id": 4313,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4304,
"src": "3284:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3274:15:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3254:35:17"
},
{
"assignments": [
4317
],
"declarations": [
{
"constant": false,
"id": 4317,
"name": "isOrigin",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3295:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4316,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3295:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4322,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4321,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4318,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3311:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4319,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "3311:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 4320,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3323:3:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "3311:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3295:31:17"
},
{
"assignments": [
4324
],
"declarations": [
{
"constant": false,
"id": 4324,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3332:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4323,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3332:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4335,
"initialValue": {
"argumentTypes": null,
"condition": {
"argumentTypes": null,
"id": 4325,
"name": "isOrigin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4317,
"src": "3354:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4332,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3396:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4333,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": 4030,
"src": "3396:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 4334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "3354:50:17",
"trueExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4327,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3373:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4328,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "3373:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4329,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3384:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4330,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "issuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4032,
"src": "3384:8:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4326,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "3365:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4331,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3365:28:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3332:72:17"
},
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4337,
"name": "_exist",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3411:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4336,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3411:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4338,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "3411:11:17"
},
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 4340,
"name": "row2Del",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3428:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4339,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3428:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4341,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "3428:15:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4351,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"id": 4342,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4337,
"src": "3451:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 4343,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4340,
"src": "3459:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 4344,
"isConstant": false,
"isInlineArray": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "TupleExpression",
"src": "3450:17:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4346,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4302,
"src": "3481:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4347,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4324,
"src": "3487:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4348,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4310,
"src": "3500:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4349,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "3500:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4345,
"name": "existToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4236,
"src": "3470:10:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) view returns (bool,uint256)"
}
},
"id": 4350,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3470:35:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"src": "3450:55:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4352,
"nodeType": "ExpressionStatement",
"src": "3450:55:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4354,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "3515:7:17",
"subExpression": {
"argumentTypes": null,
"id": 4353,
"name": "_exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4337,
"src": "3516:6:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4358,
"nodeType": "IfStatement",
"src": "3511:40:17",
"trueBody": {
"id": 4357,
"nodeType": "Block",
"src": "3524:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4355,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3539:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4308,
"id": 4356,
"nodeType": "Return",
"src": "3532:12:17"
}
]
}
},
{
"assignments": [
4362
],
"declarations": [
{
"constant": false,
"id": 4362,
"name": "_arr",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3557:22:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 4360,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3557:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4361,
"length": null,
"nodeType": "ArrayTypeName",
"src": "3557:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4367,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4363,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4302,
"src": "3582:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4364,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "3582:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4366,
"indexExpression": {
"argumentTypes": null,
"id": 4365,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4324,
"src": "3596:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3582:26:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3557:51:17"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4373,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4368,
"name": "isOrigin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4317,
"src": "3674:8:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4372,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4369,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3686:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4370,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3686:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 4371,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3700:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "3686:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "3674:27:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4377,
"nodeType": "IfStatement",
"src": "3670:60:17",
"trueBody": {
"id": 4376,
"nodeType": "Block",
"src": "3703:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4374,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3718:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4308,
"id": 4375,
"nodeType": "Return",
"src": "3711:12:17"
}
]
}
},
{
"assignments": [
4379
],
"declarations": [
{
"constant": false,
"id": 4379,
"name": "keyToMove",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3736:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4378,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3736:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4387,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4380,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3756:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4386,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4384,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3777:1:17",
"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,
"expression": {
"argumentTypes": null,
"id": 4381,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3761:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4382,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3761:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4383,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "3761:15:17",
"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": 4385,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3761:18:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3756:24:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3736:44:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4392,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4388,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3787:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4390,
"indexExpression": {
"argumentTypes": null,
"id": 4389,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4340,
"src": "3792:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3787:13:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4391,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4379,
"src": "3803:9:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3787:25:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4393,
"nodeType": "ExpressionStatement",
"src": "3787:25:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4402,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4394,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3818:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4396,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3818:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4400,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3848:1:17",
"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,
"expression": {
"argumentTypes": null,
"id": 4397,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4362,
"src": "3832:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4398,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3832:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4399,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "3832:15:17",
"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": 4401,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3832:18:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3818:32:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4403,
"nodeType": "ExpressionStatement",
"src": "3818:32:17"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4404,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3864:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4308,
"id": 4405,
"nodeType": "Return",
"src": "3857:11:17"
}
]
},
"documentation": null,
"id": 4407,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "removeToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4305,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4302,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3177:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4301,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "3177:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4304,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3200:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4303,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3200:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3176:37:17"
},
"payable": false,
"returnParameters": {
"id": 4308,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4307,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4407,
"src": "3240:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4306,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3240:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3239:6:17"
},
"scope": 4973,
"src": "3156:717:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4431,
"nodeType": "Block",
"src": "3944:130:17",
"statements": [
{
"assignments": [
4415
],
"declarations": [
{
"constant": false,
"id": 4415,
"name": "b",
"nodeType": "VariableDeclaration",
"scope": 4432,
"src": "3950:14:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 4414,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3950:5:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4419,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4417,
"name": "_str",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4409,
"src": "3973:4:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4416,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3967:5:17",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": "bytes"
},
"id": 4418,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3967:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3950:28:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4424,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4421,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4415,
"src": "3992:1:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 4422,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3992:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31303234",
"id": 4423,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4004:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1024_by_1",
"typeString": "int_const 1024"
},
"value": "1024"
},
"src": "3992:16:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "746f6f206c6172676520737472696e67206d616b65206f766572666c6f77207269736b",
"id": 4425,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4010:37:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
"typeString": "literal_string \"too large string make overflow risk\""
},
"value": "too large string make overflow risk"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_a04837239c708b9348717c3349e4803b1f78ce229ff9fadb01d3b10ea6e3573e",
"typeString": "literal_string \"too large string make overflow risk\""
}
],
"id": 4420,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "3984:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4426,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3984:64:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4427,
"nodeType": "ExpressionStatement",
"src": "3984:64:17"
},
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4428,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4415,
"src": "4061:1:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 4429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4061:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4413,
"id": 4430,
"nodeType": "Return",
"src": "4054:15:17"
}
]
},
"documentation": null,
"id": 4432,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getStringLen",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4410,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4409,
"name": "_str",
"nodeType": "VariableDeclaration",
"scope": 4432,
"src": "3899:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4408,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3899:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3898:13:17"
},
"payable": false,
"returnParameters": {
"id": 4413,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4412,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4432,
"src": "3935:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4411,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3935:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3934:9:17"
},
"scope": 4973,
"src": "3877:197:17",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4449,
"nodeType": "Block",
"src": "4173:62:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4444,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4434,
"src": "4213:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4445,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4436,
"src": "4223:5:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"expression": {
"argumentTypes": null,
"id": 4442,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9028,
"src": "4196:3:17",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 4443,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4196:16:17",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 4446,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4196:33:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 4441,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9035,
"src": "4186:9:17",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 4447,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4186:44:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 4440,
"id": 4448,
"nodeType": "Return",
"src": "4179:51:17"
}
]
},
"documentation": null,
"id": 4450,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getHash",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4437,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4434,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "4095:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4433,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4095:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4436,
"name": "_name",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "4113:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4435,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4113:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4094:32:17"
},
"payable": false,
"returnParameters": {
"id": 4440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4439,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4450,
"src": "4162:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4438,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4162:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4161:9:17"
},
"scope": 4973,
"src": "4078:157:17",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4576,
"nodeType": "Block",
"src": "4477:883:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4468,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4495:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4469,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4454,
"src": "4501:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4467,
"name": "existId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "4487:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
}
},
"id": 4470,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4487:18:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4474,
"nodeType": "IfStatement",
"src": "4483:51:17",
"trueBody": {
"id": 4473,
"nodeType": "Block",
"src": "4507:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4471,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4522:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4472,
"nodeType": "Return",
"src": "4515:12:17"
}
]
}
},
{
"assignments": [
4476
],
"declarations": [
{
"constant": false,
"id": 4476,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4540:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4475,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4540:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4481,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4478,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4456,
"src": "4570:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4479,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4462,
"src": "4580:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4477,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "4562:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4480,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4562:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4540:48:17"
},
{
"assignments": [
4483
],
"declarations": [
{
"constant": false,
"id": 4483,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4594:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4482,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4594:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4488,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4485,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4456,
"src": "4624:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4486,
"name": "_issuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4460,
"src": "4634:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4484,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "4616:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4487,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4616:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4594:48:17"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4497,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4490,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4665:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4491,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4476,
"src": "4671:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4489,
"name": "existSymbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4137,
"src": "4653:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4653:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4494,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4699:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4495,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4483,
"src": "4705:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4493,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "4687:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4496,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4687:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "4653:64:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4501,
"nodeType": "IfStatement",
"src": "4649:97:17",
"trueBody": {
"id": 4500,
"nodeType": "Block",
"src": "4719:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4498,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4734:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4499,
"nodeType": "Return",
"src": "4727:12:17"
}
]
}
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 4510,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 4504,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4502,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4458,
"src": "4796:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "307830",
"id": 4503,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4807:3:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0x0"
},
"src": "4796:14:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"id": 4509,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "4814:27:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4506,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4827:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4507,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4458,
"src": "4833:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4505,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "4815:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4508,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4815:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "4796:45:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4514,
"nodeType": "IfStatement",
"src": "4792:78:17",
"trueBody": {
"id": 4513,
"nodeType": "Block",
"src": "4843:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4511,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4858:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4512,
"nodeType": "Return",
"src": "4851:12:17"
}
]
}
},
{
"assignments": [
4516
],
"declarations": [
{
"constant": false,
"id": 4516,
"name": "e",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4876:16:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4515,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "4876:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4527,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4518,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "4924:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4519,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "4924:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4520,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4924:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4521,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4454,
"src": "4954:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4522,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4456,
"src": "4976:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4523,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4458,
"src": "5002:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 4524,
"name": "_issuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4460,
"src": "5027:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"id": 4525,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4462,
"src": "5052:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": null,
"id": 4517,
"name": "element",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4035,
"src": "4901:7:17",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_element_$4035_storage_ptr_$",
"typeString": "type(struct TokenList.element storage pointer)"
}
},
"id": 4526,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"idx",
"id",
"chainId",
"origin",
"issuer",
"symbol"
],
"nodeType": "FunctionCall",
"src": "4901:167:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4876:192:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4533,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5090:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4528,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5075:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4531,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5075:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4532,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5075:14:17",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_element_$4035_storage_$returns$_t_uint256_$",
"typeString": "function (struct TokenList.element storage ref) returns (uint256)"
}
},
"id": 4534,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5075:17:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4535,
"nodeType": "ExpressionStatement",
"src": "5075:17:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4543,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4536,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5098:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4539,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "5098:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4540,
"indexExpression": {
"argumentTypes": null,
"id": 4538,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4454,
"src": "5109:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5098:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4541,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5116:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4542,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5116:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5098:23:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4544,
"nodeType": "ExpressionStatement",
"src": "5098:23:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4552,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4545,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5127:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4548,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "5127:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4549,
"indexExpression": {
"argumentTypes": null,
"id": 4547,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4476,
"src": "5142:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5127:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4550,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5157:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4551,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5157:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5127:35:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4553,
"nodeType": "ExpressionStatement",
"src": "5127:35:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4554,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5168:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4557,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "5168:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4558,
"indexExpression": {
"argumentTypes": null,
"id": 4556,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4483,
"src": "5183:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5168:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4559,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5198:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4560,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5198:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5168:35:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4562,
"nodeType": "ExpressionStatement",
"src": "5168:35:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4569,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "5271:38:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4564,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4452,
"src": "5284:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4565,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4483,
"src": "5290:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4566,
"name": "e",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4516,
"src": "5303:1:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element memory"
}
},
"id": 4567,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "idx",
"nodeType": "MemberAccess",
"referencedDeclaration": 4024,
"src": "5303:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4563,
"name": "insertToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4300,
"src": "5272:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32,uint256) returns (bool)"
}
},
"id": 4568,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5272:37:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4573,
"nodeType": "IfStatement",
"src": "5267:71:17",
"trueBody": {
"id": 4572,
"nodeType": "Block",
"src": "5311:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4570,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5326:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4466,
"id": 4571,
"nodeType": "Return",
"src": "5319:12:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4574,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5351:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4466,
"id": 4575,
"nodeType": "Return",
"src": "5344:11:17"
}
]
},
"documentation": "@dev 增加新定时定义,重复的ID返回失败",
"id": 4577,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "insert",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4463,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4452,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4327:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4451,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "4327:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4454,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4354:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4453,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4354:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4456,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4371:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4455,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4371:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4458,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4393:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4457,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "4393:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4460,
"name": "_issuer",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4414:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4459,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4414:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4462,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4434:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4461,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4434:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4321:131:17"
},
"payable": false,
"returnParameters": {
"id": 4466,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4465,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4577,
"src": "4471:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4464,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4471:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4470:6:17"
},
"scope": 4973,
"src": "4306:1054:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4689,
"nodeType": "Block",
"src": "5440:610:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"id": 4590,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "5450:19:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4587,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5459:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4588,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4581,
"src": "5465:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4586,
"name": "existId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "5451:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
}
},
"id": 4589,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5451:18:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4594,
"nodeType": "IfStatement",
"src": "5446:52:17",
"trueBody": {
"id": 4593,
"nodeType": "Block",
"src": "5471:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4591,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5486:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4585,
"id": 4592,
"nodeType": "Return",
"src": "5479:12:17"
}
]
}
},
{
"assignments": [
4596
],
"declarations": [
{
"constant": false,
"id": 4596,
"name": "row2Del",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5504:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4595,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5504:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4601,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4597,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5522:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4598,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "5522:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4600,
"indexExpression": {
"argumentTypes": null,
"id": 4599,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4581,
"src": "5533:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5522:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5504:33:17"
},
{
"assignments": [
4603
],
"declarations": [
{
"constant": false,
"id": 4603,
"name": "keyToMove",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5544:25:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4602,
"name": "element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "5544:7:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4613,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4604,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5572:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4605,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5572:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4612,
"indexExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4610,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5603:1:17",
"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,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4606,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5582:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4607,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5582:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4608,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5582:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4609,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "5582:20:17",
"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": 4611,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5582:23:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5572:34:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5544:62:17"
},
{
"condition": {
"argumentTypes": null,
"id": 4618,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "5617:27:17",
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4615,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5630:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4616,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5636:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4614,
"name": "removeToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4407,
"src": "5618:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) returns (bool)"
}
},
"id": 4617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5618:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4622,
"nodeType": "IfStatement",
"src": "5613:60:17",
"trueBody": {
"id": 4621,
"nodeType": "Block",
"src": "5646:27:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4619,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5661:5:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 4585,
"id": 4620,
"nodeType": "Return",
"src": "5654:12:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 4629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4623,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5679:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4626,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5679:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4627,
"indexExpression": {
"argumentTypes": null,
"id": 4625,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5689:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5679:18:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4628,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5700:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"src": "5679:30:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"id": 4630,
"nodeType": "ExpressionStatement",
"src": "5679:30:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4638,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4631,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5715:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4635,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "5715:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4636,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4633,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5726:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4634,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4026,
"src": "5726:12:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5715:24:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4637,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5742:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5715:34:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4639,
"nodeType": "ExpressionStatement",
"src": "5715:34:17"
},
{
"assignments": [
4641
],
"declarations": [
{
"constant": false,
"id": 4641,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5755:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4640,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5755:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4648,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4643,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5785:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4644,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "5785:17:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4645,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5804:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4646,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4034,
"src": "5804:16:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4642,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "5777:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4647,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5777:44:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5755:66:17"
},
{
"assignments": [
4650
],
"declarations": [
{
"constant": false,
"id": 4650,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5827:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4649,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "5827:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4657,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4652,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5857:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4653,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "chainId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4028,
"src": "5857:17:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4654,
"name": "keyToMove",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4603,
"src": "5876:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element storage pointer"
}
},
"id": 4655,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "issuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4032,
"src": "5876:16:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 4651,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "5849:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5849:44:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5827:66:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4664,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4658,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5899:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4661,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "5899:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4662,
"indexExpression": {
"argumentTypes": null,
"id": 4660,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4641,
"src": "5914:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5899:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4663,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5929:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5899:37:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4665,
"nodeType": "ExpressionStatement",
"src": "5899:37:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4672,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4666,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5942:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4669,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "5942:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4670,
"indexExpression": {
"argumentTypes": null,
"id": 4668,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4650,
"src": "5957:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5942:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4671,
"name": "row2Del",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4596,
"src": "5972:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5942:37:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4673,
"nodeType": "ExpressionStatement",
"src": "5942:37:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4685,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4674,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "5985:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4677,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "5985:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4678,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5985:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4683,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6025:1:17",
"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,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4679,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4579,
"src": "6004:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4680,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6004:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4681,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6004:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4682,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 5611,
"src": "6004:20:17",
"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": 4684,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6004:23:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5985:42:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4686,
"nodeType": "ExpressionStatement",
"src": "5985:42:17"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 4687,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6041:4:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 4585,
"id": 4688,
"nodeType": "Return",
"src": "6034:11:17"
}
]
},
"documentation": null,
"id": 4690,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "remove",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4582,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4579,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5380:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4578,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "5380:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4581,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5403:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4580,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5403:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5379:36:17"
},
"payable": false,
"returnParameters": {
"id": 4585,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4584,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4690,
"src": "5434:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4583,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5434:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5433:6:17"
},
"scope": 4973,
"src": "5364:686:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4701,
"nodeType": "Block",
"src": "6124:34:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4697,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4692,
"src": "6137:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4698,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6137:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4699,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6137:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 4696,
"id": 4700,
"nodeType": "Return",
"src": "6130:23:17"
}
]
},
"documentation": null,
"id": 4702,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "count",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4693,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4692,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4702,
"src": "6069:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4691,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6069:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6068:23:17"
},
"payable": false,
"returnParameters": {
"id": 4696,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4695,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4702,
"src": "6115:7:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4694,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6115:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6114:9:17"
},
"scope": 4973,
"src": "6054:104:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4725,
"nodeType": "Block",
"src": "6269:112:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4716,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4712,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4706,
"src": "6283:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4713,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4704,
"src": "6291:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4714,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6291:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4715,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6291:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6283:24:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "696e646578206d75737420736d616c6c207468616e2063757272656e7420636f756e74",
"id": 4717,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6309:37:17",
"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": 4711,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "6275:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4718,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6275:72:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4719,
"nodeType": "ExpressionStatement",
"src": "6275:72:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4720,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4704,
"src": "6360:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4721,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6360:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4723,
"indexExpression": {
"argumentTypes": null,
"id": 4722,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4706,
"src": "6370:5:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6360:16:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4710,
"id": 4724,
"nodeType": "Return",
"src": "6353:23:17"
}
]
},
"documentation": null,
"id": 4726,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "get",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4707,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4704,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4726,
"src": "6175:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4703,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6175:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4706,
"name": "index",
"nodeType": "VariableDeclaration",
"scope": 4726,
"src": "6198:13:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4705,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6198:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6174:38:17"
},
"payable": false,
"returnParameters": {
"id": 4710,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4709,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4726,
"src": "6248:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4708,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "6248:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6247:19:17"
},
"scope": 4973,
"src": "6162:219:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4751,
"nodeType": "Block",
"src": "6494:105:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4737,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4728,
"src": "6516:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4738,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4730,
"src": "6522:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4736,
"name": "existId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4099,
"src": "6508:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (bool)"
}
},
"id": 4739,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6508:18:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "746f6b656e2064617461206d757374206265206578697374",
"id": 4740,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6528:26:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
"typeString": "literal_string \"token data must be exist\""
},
"value": "token data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_52f5db765b8f4977098a032b3fab7ad18ac2500c70e736dccb1caf4bcb129ff6",
"typeString": "literal_string \"token data must be exist\""
}
],
"id": 4735,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "6500:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4741,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6500:55:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4742,
"nodeType": "ExpressionStatement",
"src": "6500:55:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4743,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4728,
"src": "6568:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4744,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6568:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4749,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4745,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4728,
"src": "6578:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4746,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "6578:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4748,
"indexExpression": {
"argumentTypes": null,
"id": 4747,
"name": "_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4730,
"src": "6589:3:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6578:15:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6568:26:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4734,
"id": 4750,
"nodeType": "Return",
"src": "6561:33:17"
}
]
},
"documentation": null,
"id": 4752,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getById",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4731,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4728,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4752,
"src": "6402:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4727,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6402:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4730,
"name": "_id",
"nodeType": "VariableDeclaration",
"scope": 4752,
"src": "6425:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4729,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6425:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6401:36:17"
},
"payable": false,
"returnParameters": {
"id": 4734,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4733,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4752,
"src": "6473:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4732,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "6473:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6472:19:17"
},
"scope": 4973,
"src": "6385:214:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4786,
"nodeType": "Block",
"src": "6739:184:17",
"statements": [
{
"assignments": [
4764
],
"declarations": [
{
"constant": false,
"id": 4764,
"name": "_symbolHash",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6745:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4763,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "6745:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4769,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4766,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4756,
"src": "6775:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4767,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4758,
"src": "6785:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4765,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "6767:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4768,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6767:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6745:48:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4772,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4754,
"src": "6819:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4773,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4764,
"src": "6825:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4771,
"name": "existSymbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4137,
"src": "6807:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4774,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6807:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "73796d626f6c2064617461206d757374206265206578697374",
"id": 4775,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6839:27:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
"typeString": "literal_string \"symbol data must be exist\""
},
"value": "symbol data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_75fd200b9c19399b95c55b1ced6d9e1849bfd7827958b3d4adedd95790fa0096",
"typeString": "literal_string \"symbol data must be exist\""
}
],
"id": 4770,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "6799:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4776,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6799:68:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4777,
"nodeType": "ExpressionStatement",
"src": "6799:68:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4778,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4754,
"src": "6880:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4779,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "6880:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4784,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4780,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4754,
"src": "6890:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4781,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapSymbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 4043,
"src": "6890:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4783,
"indexExpression": {
"argumentTypes": null,
"id": 4782,
"name": "_symbolHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4764,
"src": "6905:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6890:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6880:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4762,
"id": 4785,
"nodeType": "Return",
"src": "6873:45:17"
}
]
},
"documentation": null,
"id": 4787,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBySymbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4759,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4754,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6629:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4753,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6629:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4756,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6656:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4755,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6656:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4758,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6678:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4757,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6678:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6623:73:17"
},
"payable": false,
"returnParameters": {
"id": 4762,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4761,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4787,
"src": "6720:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4760,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "6720:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6719:19:17"
},
"scope": 4973,
"src": "6603:320:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4821,
"nodeType": "Block",
"src": "7063:184:17",
"statements": [
{
"assignments": [
4799
],
"declarations": [
{
"constant": false,
"id": 4799,
"name": "_issuerHash",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "7069:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4798,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7069:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4804,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4801,
"name": "_chainId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4791,
"src": "7099:8:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4802,
"name": "_issuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4793,
"src": "7109:7:17",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 4800,
"name": "getHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4450,
"src": "7091:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 4803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7091:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7069:48:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4807,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4789,
"src": "7143:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4808,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4799,
"src": "7149:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4806,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "7131:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4809,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7131:30:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6973737565722064617461206d757374206265206578697374",
"id": 4810,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7163:27:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
"typeString": "literal_string \"issuer data must be exist\""
},
"value": "issuer data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_1883bfc1645a9f18d8d3f4fa03cbf9b4e202e67b76ba8036769bfa219fb7e913",
"typeString": "literal_string \"issuer data must be exist\""
}
],
"id": 4805,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "7123:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4811,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7123:68:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4812,
"nodeType": "ExpressionStatement",
"src": "7123:68:17"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4813,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4789,
"src": "7204:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4814,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "7204:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4819,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4815,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4789,
"src": "7214:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4816,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapIssuer",
"nodeType": "MemberAccess",
"referencedDeclaration": 4047,
"src": "7214:14:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
}
},
"id": 4818,
"indexExpression": {
"argumentTypes": null,
"id": 4817,
"name": "_issuerHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4799,
"src": "7229:11:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7214:27:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7204:38:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"functionReturnParameters": 4797,
"id": 4820,
"nodeType": "Return",
"src": "7197:45:17"
}
]
},
"documentation": null,
"id": 4822,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getByIssuer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4794,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4789,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "6953:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4788,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "6953:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4791,
"name": "_chainId",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "6980:16:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4790,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6980:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4793,
"name": "_issuer",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "7002:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4792,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "7002:6:17",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6947:73:17"
},
"payable": false,
"returnParameters": {
"id": 4797,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4796,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4822,
"src": "7044:17:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory_ptr",
"typeString": "struct TokenList.element"
},
"typeName": {
"contractScope": null,
"id": 4795,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7044:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7043:19:17"
},
"scope": 4973,
"src": "6927:320:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4898,
"nodeType": "Block",
"src": "7414:379:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4834,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7440:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
{
"argumentTypes": null,
"id": 4835,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4826,
"src": "7446:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 4833,
"name": "existIssuer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4175,
"src": "7428:11:17",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
"typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (bool)"
}
},
"id": 4836,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7428:26:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6f726967696e2064617461206d757374206265206578697374",
"id": 4837,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7456:27:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
"typeString": "literal_string \"origin data must be exist\""
},
"value": "origin data must be exist"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_43ade6fbed43f70a45d8cf9646ea156425b17a19cffa70b27fc35093b0c6dc4e",
"typeString": "literal_string \"origin data must be exist\""
}
],
"id": 4832,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "7420:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4838,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7420:64:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4839,
"nodeType": "ExpressionStatement",
"src": "7420:64:17"
},
{
"assignments": [
4843
],
"declarations": [
{
"constant": false,
"id": 4843,
"name": "_arr",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7491:22:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 4841,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7491:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4842,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7491:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4848,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4844,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7516:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4845,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 4052,
"src": "7516:13:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(bytes32 => uint256[] storage ref)"
}
},
"id": 4847,
"indexExpression": {
"argumentTypes": null,
"id": 4846,
"name": "_origin",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4826,
"src": "7530:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7516:22:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7491:47:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4853,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4850,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7552:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4851,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7552:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4852,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7566:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "7552:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6f726967696e206c69737420686176652064617461",
"id": 4854,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7569:23:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
"typeString": "literal_string \"origin list have data\""
},
"value": "origin list have data"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_f0f483e739bee6157e8ff6bfbe043271c0109d1500c2312c1b234022776613d3",
"typeString": "literal_string \"origin list have data\""
}
],
"id": 4849,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "7544:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4855,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7544:49:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4856,
"nodeType": "ExpressionStatement",
"src": "7544:49:17"
},
{
"assignments": [
4861
],
"declarations": [
{
"constant": false,
"id": 4861,
"name": "res",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7600:30:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4859,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7600:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4860,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7600:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4868,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4865,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7657:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4866,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7657:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4864,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "7633:23:17",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4862,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7637:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4863,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7637:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
}
},
"id": 4867,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7633:36:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
"typeString": "struct TokenList.element memory[] memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7600:69:17"
},
{
"body": {
"id": 4894,
"nodeType": "Block",
"src": "7718:54:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 4892,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4880,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4861,
"src": "7726:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"id": 4882,
"indexExpression": {
"argumentTypes": null,
"id": 4881,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7730:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7726:6:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4883,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7735:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4884,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "7735:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4891,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4885,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4824,
"src": "7745:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4886,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "mapId",
"nodeType": "MemberAccess",
"referencedDeclaration": 4039,
"src": "7745:10:17",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 4890,
"indexExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4887,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7756:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4889,
"indexExpression": {
"argumentTypes": null,
"id": 4888,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7761:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7756:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7745:19:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7735:30:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"src": "7726:39:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"id": 4893,
"nodeType": "ExpressionStatement",
"src": "7726:39:17"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4876,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4873,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7696:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4874,
"name": "_arr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4843,
"src": "7700:4:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[] storage pointer"
}
},
"id": 4875,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7700:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7696:15:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4895,
"initializationExpression": {
"assignments": [
4870
],
"declarations": [
{
"constant": false,
"id": 4870,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7681:9:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4869,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7681:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4872,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4871,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7693:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "7681:13:17"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 4878,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7713:3:17",
"subExpression": {
"argumentTypes": null,
"id": 4877,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4870,
"src": "7713:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4879,
"nodeType": "ExpressionStatement",
"src": "7713:3:17"
},
"nodeType": "ForStatement",
"src": "7676:96:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4896,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4861,
"src": "7785:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"functionReturnParameters": 4831,
"id": 4897,
"nodeType": "Return",
"src": "7778:10:17"
}
]
},
"documentation": "获取通证跨链映射表",
"id": 4899,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getCrossList",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4827,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4824,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7316:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4823,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "7316:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4826,
"name": "_origin",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7339:15:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 4825,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "7339:7:17",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7315:40:17"
},
"payable": false,
"returnParameters": {
"id": 4831,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4830,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4899,
"src": "7391:19:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4828,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "7391:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4829,
"length": null,
"nodeType": "ArrayTypeName",
"src": "7391:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7390:21:17"
},
"scope": 4973,
"src": "7294:499:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4971,
"nodeType": "Block",
"src": "8035:348:17",
"statements": [
{
"assignments": [
4912
],
"declarations": [
{
"constant": false,
"id": 4912,
"name": "_idx",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8041:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4911,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8041:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4914,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4913,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8056:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "8041:16:17"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4918,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4916,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4905,
"src": "8071:6:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4917,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8080:1:17",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "8071:10:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "72657475726e206e756d626572206d75737420626967676572207468616e2030",
"id": 4919,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8083:34:17",
"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": 4915,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
9044,
9045
],
"referencedDeclaration": 9045,
"src": "8063:7:17",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4920,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8063:55:17",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4921,
"nodeType": "ExpressionStatement",
"src": "8063:55:17"
},
{
"assignments": [
4926
],
"declarations": [
{
"constant": false,
"id": 4926,
"name": "res",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8124:30:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4924,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "8124:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4925,
"length": null,
"nodeType": "ArrayTypeName",
"src": "8124:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4932,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4930,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4905,
"src": "8181:6:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 4929,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "8157:23:17",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct TokenList.element memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4927,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "8161:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4928,
"length": null,
"nodeType": "ArrayTypeName",
"src": "8161:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
}
},
"id": 4931,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8157:31:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory",
"typeString": "struct TokenList.element memory[] memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8124:64:17"
},
{
"body": {
"id": 4967,
"nodeType": "Block",
"src": "8245:117:17",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4947,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4945,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8257:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 4946,
"name": "_count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4905,
"src": "8265:6:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "8257:14:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4950,
"nodeType": "IfStatement",
"src": "8253:44:17",
"trueBody": {
"id": 4949,
"nodeType": "Block",
"src": "8273:24:17",
"statements": [
{
"id": 4948,
"nodeType": "Break",
"src": "8283:5:17"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 4958,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 4951,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4926,
"src": "8305:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"id": 4953,
"indexExpression": {
"argumentTypes": null,
"id": 4952,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8309:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "8305:9:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4954,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4901,
"src": "8317:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4955,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "8317:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4957,
"indexExpression": {
"argumentTypes": null,
"id": 4956,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4934,
"src": "8327:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8317:12:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage",
"typeString": "struct TokenList.element storage ref"
}
},
"src": "8305:24:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_memory",
"typeString": "struct TokenList.element memory"
}
},
"id": 4959,
"nodeType": "ExpressionStatement",
"src": "8305:24:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4965,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4960,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8337:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 4963,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "8353:1:17",
"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": 4961,
"name": "_idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4912,
"src": "8344:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4962,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 5635,
"src": "8344:8:17",
"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": 4964,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8344:11:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "8337:18:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4966,
"nodeType": "ExpressionStatement",
"src": "8337:18:17"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4941,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4937,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4934,
"src": "8218:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4938,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4901,
"src": "8222:4:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap storage pointer"
}
},
"id": 4939,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "list",
"nodeType": "MemberAccess",
"referencedDeclaration": 4055,
"src": "8222:9:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage",
"typeString": "struct TokenList.element storage ref[] storage ref"
}
},
"id": 4940,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "8222:16:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "8218:20:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4968,
"initializationExpression": {
"assignments": [
4934
],
"declarations": [
{
"constant": false,
"id": 4934,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8200:9:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4933,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8200:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4936,
"initialValue": {
"argumentTypes": null,
"id": 4935,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4903,
"src": "8212:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8200:16:17"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 4943,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "8240:3:17",
"subExpression": {
"argumentTypes": null,
"id": 4942,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4934,
"src": "8240:1:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4944,
"nodeType": "ExpressionStatement",
"src": "8240:3:17"
},
"nodeType": "ForStatement",
"src": "8195:167:17"
},
{
"expression": {
"argumentTypes": null,
"id": 4969,
"name": "res",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4926,
"src": "8375:3:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element memory[] memory"
}
},
"functionReturnParameters": 4910,
"id": 4970,
"nodeType": "Return",
"src": "8368:10:17"
}
]
},
"documentation": "@dev 从指定位置返回多条(不多于count)地址记录,如果不足则空缺",
"id": 4972,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getList",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4906,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4901,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "7920:21:17",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
},
"typeName": {
"contractScope": null,
"id": 4900,
"name": "tokenMap",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4056,
"src": "7920:8:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
"typeString": "struct TokenList.tokenMap"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4903,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "7947:12:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4902,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7947:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4905,
"name": "_count",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "7965:14:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4904,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7965:7:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7914:69:17"
},
"payable": false,
"returnParameters": {
"id": 4910,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4909,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4972,
"src": "8007:19:17",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
"typeString": "struct TokenList.element[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4907,
"name": "TokenList.element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4035,
"src": "8007:17:17",
"typeDescriptions": {
"typeIdentifier": "t_struct$_element_$4035_storage_ptr",
"typeString": "struct TokenList.element"
}
},
"id": 4908,
"length": null,
"nodeType": "ArrayTypeName",
"src": "8007:19:17",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
"typeString": "struct TokenList.element[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8006:28:17"
},
"scope": 4973,
"src": "7898:485:17",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 4974,
"src": "94:8291:17"
}
],
"src": "0:8386:17"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.16",
"updatedAt": "2021-03-06T09:30:01.006Z",
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
}