tokenboost-solidity-erc20sale
Version:
Solidity contracts for TokenBoost (ERC20Sale)
1,053 lines (1,052 loc) • 495 kB
JSON
{
"contractName": "Tables",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058204d5d9f1c291541beb4db8ff2a9396ef28fb34f2fd058f326081ef2981ddba2130029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058204d5d9f1c291541beb4db8ff2a9396ef28fb34f2fd058f326081ef2981ddba2130029",
"sourceMap": "51:2348:23:-;;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": "51:2348:23:-;;;;;;;;",
"source": "pragma solidity ^0.4.24;\n\nimport \"./Actions.sol\";\n\nlibrary Tables {\n using Actions for Actions.Action;\n using strings for *;\n\n struct Column {\n bool exists;\n string id;\n string type_;\n string label;\n Actions.Action action;\n }\n\n struct Table {\n bool exists;\n Column[] columns;\n string[] rows;\n }\n\n function empty() internal pure returns (Table memory) {\n return Table(false, new Column[](0), new string[](0));\n }\n\n function toJson(Table memory _self) internal pure returns (string) {\n if (_self.exists) {\n string memory json = '{\"columns\":[';\n uint length = 0;\n for (uint i = 0; i < _self.columns.length; i++) {\n if (length > 0) {\n json = json.toSlice().concat(','.toSlice());\n }\n json = json.toSlice().concat(_columnToJson(_self.columns[i]).toSlice());\n length += 1;\n }\n json = json.toSlice().concat('],\"rows\":['.toSlice());\n length = 0;\n for (i = 0; i < _self.rows.length; i++) {\n if (length > 0) {\n json = json.toSlice().concat(','.toSlice());\n }\n json = json.toSlice().concat(_self.rows[i].toSlice());\n length += 1;\n }\n return json.toSlice().concat(']}'.toSlice());\n } else {\n return \"null\";\n }\n }\n\n function _columnToJson(Column 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(','.toSlice());\n json = json.toSlice().concat('\"action\":'.toSlice());\n json = json.toSlice().concat(_self.action.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 return json.toSlice().concat('\"}'.toSlice());\n } else {\n return \"null\";\n }\n }\n}\n",
"sourcePath": "tokenboost-solidity/contracts/widget/Tables.sol",
"ast": {
"absolutePath": "tokenboost-solidity/contracts/widget/Tables.sol",
"exportedSymbols": {
"Tables": [
5114
]
},
"id": 5115,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4784,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:23"
},
{
"absolutePath": "tokenboost-solidity/contracts/widget/Actions.sol",
"file": "./Actions.sol",
"id": 4785,
"nodeType": "ImportDirective",
"scope": 5115,
"sourceUnit": 4482,
"src": "26:23:23",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 5114,
"linearizedBaseContracts": [
5114
],
"name": "Tables",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4788,
"libraryName": {
"contractScope": null,
"id": 4786,
"name": "Actions",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4481,
"src": "78:7:23",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Actions_$4481",
"typeString": "library Actions"
}
},
"nodeType": "UsingForDirective",
"src": "72:33:23",
"typeName": {
"contractScope": null,
"id": 4787,
"name": "Actions.Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4353,
"src": "90:14:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_storage_ptr",
"typeString": "struct Actions.Action"
}
}
},
{
"id": 4790,
"libraryName": {
"contractScope": null,
"id": 4789,
"name": "strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4333,
"src": "116:7:23",
"typeDescriptions": {
"typeIdentifier": "t_contract$_strings_$4333",
"typeString": "library strings"
}
},
"nodeType": "UsingForDirective",
"src": "110:20:23",
"typeName": null
},
{
"canonicalName": "Tables.Column",
"id": 4801,
"members": [
{
"constant": false,
"id": 4792,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 4801,
"src": "160:11:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4791,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "160:4:23",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4794,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 4801,
"src": "181:9:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4793,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "181:6:23",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4796,
"name": "type_",
"nodeType": "VariableDeclaration",
"scope": 4801,
"src": "200:12:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4795,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "200:6:23",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4798,
"name": "label",
"nodeType": "VariableDeclaration",
"scope": 4801,
"src": "222:12:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4797,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "222:6:23",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4800,
"name": "action",
"nodeType": "VariableDeclaration",
"scope": 4801,
"src": "244:21:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_storage_ptr",
"typeString": "struct Actions.Action"
},
"typeName": {
"contractScope": null,
"id": 4799,
"name": "Actions.Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4353,
"src": "244:14:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_storage_ptr",
"typeString": "struct Actions.Action"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Column",
"nodeType": "StructDefinition",
"scope": 5114,
"src": "136:136:23",
"visibility": "public"
},
{
"canonicalName": "Tables.Table",
"id": 4810,
"members": [
{
"constant": false,
"id": 4803,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 4810,
"src": "301:11:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4802,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "301:4:23",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4806,
"name": "columns",
"nodeType": "VariableDeclaration",
"scope": 4810,
"src": "322:16:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4801_storage_$dyn_storage_ptr",
"typeString": "struct Tables.Column[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4804,
"name": "Column",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4801,
"src": "322:6:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Column_$4801_storage_ptr",
"typeString": "struct Tables.Column"
}
},
"id": 4805,
"length": null,
"nodeType": "ArrayTypeName",
"src": "322:8:23",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4801_storage_$dyn_storage_ptr",
"typeString": "struct Tables.Column[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4809,
"name": "rows",
"nodeType": "VariableDeclaration",
"scope": 4810,
"src": "348:13:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
"typeString": "string[]"
},
"typeName": {
"baseType": {
"id": 4807,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "348:6:23",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"id": 4808,
"length": null,
"nodeType": "ArrayTypeName",
"src": "348:8:23",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
"typeString": "string[]"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Table",
"nodeType": "StructDefinition",
"scope": 5114,
"src": "278:90:23",
"visibility": "public"
},
{
"body": {
"id": 4829,
"nodeType": "Block",
"src": "428:70:23",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4816,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "451:5:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 4820,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "471:1:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 4819,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "458:12:23",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Column_$4801_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct Tables.Column memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4817,
"name": "Column",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4801,
"src": "462:6:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Column_$4801_storage_ptr",
"typeString": "struct Tables.Column"
}
},
"id": 4818,
"length": null,
"nodeType": "ArrayTypeName",
"src": "462:8:23",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4801_storage_$dyn_storage_ptr",
"typeString": "struct Tables.Column[]"
}
}
},
"id": 4821,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "458:15:23",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4801_memory_$dyn_memory",
"typeString": "struct Tables.Column memory[] memory"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 4825,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "488:1:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 4824,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "475:12:23",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (string memory[] memory)"
},
"typeName": {
"baseType": {
"id": 4822,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "479:6:23",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"id": 4823,
"length": null,
"nodeType": "ArrayTypeName",
"src": "479:8:23",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
"typeString": "string[]"
}
}
},
"id": 4826,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "475:15:23",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_memory_$dyn_memory",
"typeString": "string memory[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_array$_t_struct$_Column_$4801_memory_$dyn_memory",
"typeString": "struct Tables.Column memory[] memory"
},
{
"typeIdentifier": "t_array$_t_string_memory_$dyn_memory",
"typeString": "string memory[] memory"
}
],
"id": 4815,
"name": "Table",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4810,
"src": "445:5:23",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Table_$4810_storage_ptr_$",
"typeString": "type(struct Tables.Table storage pointer)"
}
},
"id": 4827,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "445:46:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_memory",
"typeString": "struct Tables.Table memory"
}
},
"functionReturnParameters": 4814,
"id": 4828,
"nodeType": "Return",
"src": "438:53:23"
}
]
},
"documentation": null,
"id": 4830,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "empty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4811,
"nodeType": "ParameterList",
"parameters": [],
"src": "388:2:23"
},
"payable": false,
"returnParameters": {
"id": 4814,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4813,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4830,
"src": "414:5:23",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
"typeString": "struct Tables.Table"
},
"typeName": {
"contractScope": null,
"id": 4812,
"name": "Table",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4810,
"src": "414:5:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_storage_ptr",
"typeString": "struct Tables.Table"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "413:14:23"
},
"scope": 5114,
"src": "374:124:23",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4974,
"nodeType": "Block",
"src": "571:911:23",
"statements": [
{
"condition": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4837,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4832,
"src": "585:5:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4810_memory_ptr",
"typeString": "struct Tables.Table memory"
}
},
"id": 4838,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 4803,
"src": "585:12:23",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 4972,
"nodeType": "Block",
"src": "1438:38:23",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "6e756c6c",
"id": 4970,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1459:6:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
"typeString": "literal_string \"null\""
},
"value": "null"
},
"functionReturnParameters": 4836,
"id": 4971,
"nodeType": "Return",
"src": "1452:13:23"
}
]
},
"id": 4973,
"nodeType": "IfStatement",
"src": "581:895:23",
"trueBody": {
"id": 4969,
"nodeType": "Block",
"src": "599:833:23",
"statements": [
{
"assignments": [
4840
],
"declarations": [
{
"constant": false,
"id": 4840,
"name": "json",
"nodeType": "VariableDeclaration",
"scope": 4975,
"src": "613:18:23",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4839,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "613:6:23",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4842,
"initialValue": {
"argumentTypes": null,
"hexValue": "7b22636f6c756d6e73223a5b",
"id": 4841,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "634:14:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_8e64e7187bf7031021ca4dc06621e631ccf0169e82e53e6eddc7651e66a38d18",
"typeString": "literal_string \"{\"columns\":[\""
},
"value": "{\"columns\":["
},
"nodeType": "VariableDeclarationStatement",
"src": "613:35:23"
},
{
"assignments": [
4844
],
"declarations": [
{
"constant": false,
"id": 4844,
"name": "length",
"nodeType": "VariableDeclaration",
"scope": 4975,
"src": "662:11:23",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4843,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "662:4:23",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4846,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4845,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "676:1:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "662:15:23"
},
{
"body": {
"id": 4895,
"nodeType": "Block",
"src": "739:250:23",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4861,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4859,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4844,
"src": "761:6:23",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4860,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "770:1:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "761:10:23",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4874,
"nodeType": "IfStatement",
"src": "757:100:23",
"trueBody": {
"id": 4873,
"nodeType": "Block",
"src": "773:84:23",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 4871,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4862,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4840,
"src": "795:4:23",
"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": "2c",
"id": 4867,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "824:3:23",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3e7a35b97029f9e0cf6effd71c1a7958822e9a217d3a3aec886668a7dd8231cb",
"typeString": "literal_string \",\""
},
"value": ","
},
"id": 4868,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "824:11:23",
"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": 4869,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "824:13:23",
"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": 4863,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4840,
"src": "802:4:23",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4864,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "802:12:23",
"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": 4865,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "802:14:23",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 4866,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 4218,
"src": "802:21:23",
"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": 4870,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "802:36:23",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "795:43:23",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}