tokenboost-solidity-erc20sale
Version:
Solidity contracts for TokenBoost (ERC20Sale)
1,088 lines (1,087 loc) • 347 kB
JSON
{
"contractName": "Elements",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582034fb50fe095dd244cfeee8e5f897b1fba19d0dcb3b43b6f7acba95ef6ea676c40029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582034fb50fe095dd244cfeee8e5f897b1fba19d0dcb3b43b6f7acba95ef6ea676c40029",
"sourceMap": "105:1637:20:-;;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": "105:1637:20:-;;;;;;;;",
"source": "pragma solidity ^0.4.24;\n\nimport \"./Actions.sol\";\nimport \"./Tables.sol\";\nimport \"../utils/strings.sol\";\n\nlibrary Elements {\n using strings for *;\n using Actions for Actions.Action;\n using Tables for Tables.Table;\n\n struct Element {\n bool exists;\n string id;\n string type_;\n string label;\n string data;\n Actions.Action action;\n Tables.Table table;\n }\n\n function empty() internal pure returns (Element memory) {\n return Element(false, \"\", \"\", \"\", \"\", Actions.empty(), Tables.empty());\n }\n\n function toJson(Element memory _self) internal pure returns (string) {\n if (_self.exists) {\n string memory json = '{\"id\":\"';\n json = json.toSlice().concat(_self.id.toSlice());\n json = json.toSlice().concat('\"'.toSlice());\n if (_self.action.exists) {\n json = json.toSlice().concat(', \"action\":'.toSlice());\n json = json.toSlice().concat(_self.action.toJson().toSlice());\n }\n if (_self.table.exists) {\n json = json.toSlice().concat(', \"table\":'.toSlice());\n json = json.toSlice().concat(_self.table.toJson().toSlice());\n }\n json = json.toSlice().concat(',\"type\":\"'.toSlice());\n json = json.toSlice().concat(_self.type_.toSlice());\n json = json.toSlice().concat('\",\"label\":\"'.toSlice());\n json = json.toSlice().concat(_self.label.toSlice());\n json = json.toSlice().concat('\",\"data\":'.toSlice());\n json = json.toSlice().concat(_self.data.toSlice());\n return json.toSlice().concat('}'.toSlice());\n } else {\n return \"null\";\n }\n }\n}",
"sourcePath": "tokenboost-solidity/contracts/widget/Elements.sol",
"ast": {
"absolutePath": "tokenboost-solidity/contracts/widget/Elements.sol",
"exportedSymbols": {
"Elements": [
4710
]
},
"id": 4711,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4483,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:20"
},
{
"absolutePath": "tokenboost-solidity/contracts/widget/Actions.sol",
"file": "./Actions.sol",
"id": 4484,
"nodeType": "ImportDirective",
"scope": 4711,
"sourceUnit": 4482,
"src": "26:23:20",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "tokenboost-solidity/contracts/widget/Tables.sol",
"file": "./Tables.sol",
"id": 4485,
"nodeType": "ImportDirective",
"scope": 4711,
"sourceUnit": 5115,
"src": "50:22:20",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "tokenboost-solidity/contracts/utils/strings.sol",
"file": "../utils/strings.sol",
"id": 4486,
"nodeType": "ImportDirective",
"scope": 4711,
"sourceUnit": 4334,
"src": "73:30:20",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 4710,
"linearizedBaseContracts": [
4710
],
"name": "Elements",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4488,
"libraryName": {
"contractScope": null,
"id": 4487,
"name": "strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4333,
"src": "134:7:20",
"typeDescriptions": {
"typeIdentifier": "t_contract$_strings_$4333",
"typeString": "library strings"
}
},
"nodeType": "UsingForDirective",
"src": "128:20:20",
"typeName": null
},
{
"id": 4491,
"libraryName": {
"contractScope": null,
"id": 4489,
"name": "Actions",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4481,
"src": "159:7:20",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Actions_$4481",
"typeString": "library Actions"
}
},
"nodeType": "UsingForDirective",
"src": "153:33:20",
"typeName": {
"contractScope": null,
"id": 4490,
"name": "Actions.Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4353,
"src": "171:14:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_storage_ptr",
"typeString": "struct Actions.Action"
}
}
},
{
"id": 4494,
"libraryName": {
"contractScope": null,
"id": 4492,
"name": "Tables",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5114,
"src": "197:6:20",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Tables_$5114",
"typeString": "library Tables"
}
},
"nodeType": "UsingForDirective",
"src": "191:30:20",
"typeName": {
"contractScope": null,
"id": 4493,
"name": "Tables.Table",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4810,
"src": "208:12:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_storage_ptr",
"typeString": "struct Tables.Table"
}
}
},
{
"canonicalName": "Elements.Element",
"id": 4509,
"members": [
{
"constant": false,
"id": 4496,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 4509,
"src": "252:11:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4495,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "252:4:20",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4498,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 4509,
"src": "273:9:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4497,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "273:6:20",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4500,
"name": "type_",
"nodeType": "VariableDeclaration",
"scope": 4509,
"src": "292:12:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4499,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "292:6:20",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4502,
"name": "label",
"nodeType": "VariableDeclaration",
"scope": 4509,
"src": "314:12:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4501,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "314:6:20",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4504,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 4509,
"src": "336:11:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4503,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "336:6:20",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4506,
"name": "action",
"nodeType": "VariableDeclaration",
"scope": 4509,
"src": "357:21:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_storage_ptr",
"typeString": "struct Actions.Action"
},
"typeName": {
"contractScope": null,
"id": 4505,
"name": "Actions.Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4353,
"src": "357:14:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_storage_ptr",
"typeString": "struct Actions.Action"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4508,
"name": "table",
"nodeType": "VariableDeclaration",
"scope": 4509,
"src": "388:18:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_storage_ptr",
"typeString": "struct Tables.Table"
},
"typeName": {
"contractScope": null,
"id": 4507,
"name": "Tables.Table",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4810,
"src": "388:12:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_storage_ptr",
"typeString": "struct Tables.Table"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Element",
"nodeType": "StructDefinition",
"scope": 4710,
"src": "227:186:20",
"visibility": "public"
},
{
"body": {
"id": 4528,
"nodeType": "Block",
"src": "475:87:20",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4515,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "500:5:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "",
"id": 4516,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "507:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 4517,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "511:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 4518,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "515:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 4519,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "519:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 4520,
"name": "Actions",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4481,
"src": "523:7:20",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Actions_$4481_$",
"typeString": "type(library Actions)"
}
},
"id": 4521,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "empty",
"nodeType": "MemberAccess",
"referencedDeclaration": 4369,
"src": "523:13:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$4353_memory_ptr_$",
"typeString": "function () pure returns (struct Actions.Action memory)"
}
},
"id": 4522,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "523:15:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 4523,
"name": "Tables",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5114,
"src": "540:6:20",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Tables_$5114_$",
"typeString": "type(library Tables)"
}
},
"id": 4524,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "empty",
"nodeType": "MemberAccess",
"referencedDeclaration": 4830,
"src": "540:12:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$4810_memory_ptr_$",
"typeString": "function () pure returns (struct Tables.Table memory)"
}
},
"id": 4525,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "540:14:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
"typeString": "struct Tables.Table memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
{
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
{
"typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
"typeString": "struct Actions.Action memory"
},
{
"typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
"typeString": "struct Tables.Table memory"
}
],
"id": 4514,
"name": "Element",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4509,
"src": "492:7:20",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Element_$4509_storage_ptr_$",
"typeString": "type(struct Elements.Element storage pointer)"
}
},
"id": 4526,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "492:63:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Element_$4509_memory",
"typeString": "struct Elements.Element memory"
}
},
"functionReturnParameters": 4513,
"id": 4527,
"nodeType": "Return",
"src": "485:70:20"
}
]
},
"documentation": null,
"id": 4529,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "empty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4510,
"nodeType": "ParameterList",
"parameters": [],
"src": "433:2:20"
},
"payable": false,
"returnParameters": {
"id": 4513,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4512,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4529,
"src": "459:7:20",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Element_$4509_memory_ptr",
"typeString": "struct Elements.Element"
},
"typeName": {
"contractScope": null,
"id": 4511,
"name": "Element",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4509,
"src": "459:7:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Element_$4509_storage_ptr",
"typeString": "struct Elements.Element"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "458:16:20"
},
"scope": 4710,
"src": "419:143:20",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4708,
"nodeType": "Block",
"src": "637:1103:20",
"statements": [
{
"condition": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4536,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4531,
"src": "651:5:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Element_$4509_memory_ptr",
"typeString": "struct Elements.Element memory"
}
},
"id": 4537,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 4496,
"src": "651:12:20",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 4706,
"nodeType": "Block",
"src": "1696:38:20",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "6e756c6c",
"id": 4704,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1717:6:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
"typeString": "literal_string \"null\""
},
"value": "null"
},
"functionReturnParameters": 4535,
"id": 4705,
"nodeType": "Return",
"src": "1710:13:20"
}
]
},
"id": 4707,
"nodeType": "IfStatement",
"src": "647:1087:20",
"trueBody": {
"id": 4703,
"nodeType": "Block",
"src": "665:1025:20",
"statements": [
{
"assignments": [
4539
],
"declarations": [
{
"constant": false,
"id": 4539,
"name": "json",
"nodeType": "VariableDeclaration",
"scope": 4709,
"src": "679:18:20",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4538,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "679:6:20",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4541,
"initialValue": {
"argumentTypes": null,
"hexValue": "7b226964223a22",
"id": 4540,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "700:9:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_334dd9a3f36c190d9290f44b1b75d9f1f0e8c64c9d2b286cea8c274de5e469a6",
"typeString": "literal_string \"{\"id\":\"\""
},
"value": "{\"id\":\""
},
"nodeType": "VariableDeclarationStatement",
"src": "679:30:20"
},
{
"expression": {
"argumentTypes": null,
"id": 4552,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4542,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4539,
"src": "723:4:20",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4547,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4531,
"src": "752:5:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Element_$4509_memory_ptr",
"typeString": "struct Elements.Element memory"
}
},
"id": 4548,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 4498,
"src": "752:8:20",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
},
"id": 4549,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "752:16:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 4550,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "752:18:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 4543,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4539,
"src": "730:4:20",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4544,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "730:12:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 4545,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "730:14:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 4546,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 4218,
"src": "730:21:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2645_memory_ptr_$_t_struct$_slice_$2645_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2645_memory_ptr_$",
"typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
}
},
"id": 4551,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "730:41:20",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "723:48:20",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4553,
"nodeType": "ExpressionStatement",
"src": "723:48:20"
},
{
"expression": {
"argumentTypes": null,
"id": 4563,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4554,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4539,
"src": "785:4:20",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"hexValue": "22",
"id": 4559,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "814:3:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0",
"typeString": "literal_string \"\"\""
},
"value": "\""
},
"id": 4560,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "814:11:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 4561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "814:13:20",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 4555,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4539,
"src": "792:4:20",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4556,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "792:12:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2645_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},