tokenboost-solidity
Version:
Solidity contracts for TokenBoost
1,051 lines (1,050 loc) • 495 kB
JSON
{
"contractName": "Tables",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058209378d66c6aec9843f20528fcbb05d3a11ebbbc75aa05239f2314b6a3d056395c0029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058209378d66c6aec9843f20528fcbb05d3a11ebbbc75aa05239f2314b6a3d056395c0029",
"sourceMap": "51:2348:16:-;;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:16:-;;;;;;;;",
"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": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/widget/Tables.sol",
"ast": {
"absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/widget/Tables.sol",
"exportedSymbols": {
"Tables": [
4437
]
},
"id": 4438,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4107,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:16"
},
{
"absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/widget/Actions.sol",
"file": "./Actions.sol",
"id": 4108,
"nodeType": "ImportDirective",
"scope": 4438,
"sourceUnit": 3877,
"src": "26:23:16",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 4437,
"linearizedBaseContracts": [
4437
],
"name": "Tables",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4111,
"libraryName": {
"contractScope": null,
"id": 4109,
"name": "Actions",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3876,
"src": "78:7:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Actions_$3876",
"typeString": "library Actions"
}
},
"nodeType": "UsingForDirective",
"src": "72:33:16",
"typeName": {
"contractScope": null,
"id": 4110,
"name": "Actions.Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3748,
"src": "90:14:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_storage_ptr",
"typeString": "struct Actions.Action"
}
}
},
{
"id": 4113,
"libraryName": {
"contractScope": null,
"id": 4112,
"name": "strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3728,
"src": "116:7:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_strings_$3728",
"typeString": "library strings"
}
},
"nodeType": "UsingForDirective",
"src": "110:20:16",
"typeName": null
},
{
"canonicalName": "Tables.Column",
"id": 4124,
"members": [
{
"constant": false,
"id": 4115,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 4124,
"src": "160:11:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4114,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "160:4:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4117,
"name": "id",
"nodeType": "VariableDeclaration",
"scope": 4124,
"src": "181:9:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4116,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "181:6:16",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4119,
"name": "type_",
"nodeType": "VariableDeclaration",
"scope": 4124,
"src": "200:12:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4118,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "200:6:16",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4121,
"name": "label",
"nodeType": "VariableDeclaration",
"scope": 4124,
"src": "222:12:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4120,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "222:6:16",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4123,
"name": "action",
"nodeType": "VariableDeclaration",
"scope": 4124,
"src": "244:21:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_storage_ptr",
"typeString": "struct Actions.Action"
},
"typeName": {
"contractScope": null,
"id": 4122,
"name": "Actions.Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3748,
"src": "244:14:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_storage_ptr",
"typeString": "struct Actions.Action"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Column",
"nodeType": "StructDefinition",
"scope": 4437,
"src": "136:136:16",
"visibility": "public"
},
{
"canonicalName": "Tables.Table",
"id": 4133,
"members": [
{
"constant": false,
"id": 4126,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 4133,
"src": "301:11:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4125,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "301:4:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4129,
"name": "columns",
"nodeType": "VariableDeclaration",
"scope": 4133,
"src": "322:16:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4124_storage_$dyn_storage_ptr",
"typeString": "struct Tables.Column[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4127,
"name": "Column",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4124,
"src": "322:6:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Column_$4124_storage_ptr",
"typeString": "struct Tables.Column"
}
},
"id": 4128,
"length": null,
"nodeType": "ArrayTypeName",
"src": "322:8:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4124_storage_$dyn_storage_ptr",
"typeString": "struct Tables.Column[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4132,
"name": "rows",
"nodeType": "VariableDeclaration",
"scope": 4133,
"src": "348:13:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
"typeString": "string[]"
},
"typeName": {
"baseType": {
"id": 4130,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "348:6:16",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"id": 4131,
"length": null,
"nodeType": "ArrayTypeName",
"src": "348:8:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
"typeString": "string[]"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Table",
"nodeType": "StructDefinition",
"scope": 4437,
"src": "278:90:16",
"visibility": "public"
},
{
"body": {
"id": 4152,
"nodeType": "Block",
"src": "428:70:16",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4139,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "451:5:16",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 4143,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "471:1:16",
"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": 4142,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "458:12:16",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Column_$4124_memory_$dyn_memory_$",
"typeString": "function (uint256) pure returns (struct Tables.Column memory[] memory)"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 4140,
"name": "Column",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4124,
"src": "462:6:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Column_$4124_storage_ptr",
"typeString": "struct Tables.Column"
}
},
"id": 4141,
"length": null,
"nodeType": "ArrayTypeName",
"src": "462:8:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4124_storage_$dyn_storage_ptr",
"typeString": "struct Tables.Column[]"
}
}
},
"id": 4144,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "458:15:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Column_$4124_memory_$dyn_memory",
"typeString": "struct Tables.Column memory[] memory"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 4148,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "488:1:16",
"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": 4147,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "475:12:16",
"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": 4145,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "479:6:16",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"id": 4146,
"length": null,
"nodeType": "ArrayTypeName",
"src": "479:8:16",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
"typeString": "string[]"
}
}
},
"id": 4149,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "475:15:16",
"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_$4124_memory_$dyn_memory",
"typeString": "struct Tables.Column memory[] memory"
},
{
"typeIdentifier": "t_array$_t_string_memory_$dyn_memory",
"typeString": "string memory[] memory"
}
],
"id": 4138,
"name": "Table",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4133,
"src": "445:5:16",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Table_$4133_storage_ptr_$",
"typeString": "type(struct Tables.Table storage pointer)"
}
},
"id": 4150,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "445:46:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4133_memory",
"typeString": "struct Tables.Table memory"
}
},
"functionReturnParameters": 4137,
"id": 4151,
"nodeType": "Return",
"src": "438:53:16"
}
]
},
"documentation": null,
"id": 4153,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "empty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4134,
"nodeType": "ParameterList",
"parameters": [],
"src": "388:2:16"
},
"payable": false,
"returnParameters": {
"id": 4137,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4136,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4153,
"src": "414:5:16",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4133_memory_ptr",
"typeString": "struct Tables.Table"
},
"typeName": {
"contractScope": null,
"id": 4135,
"name": "Table",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4133,
"src": "414:5:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4133_storage_ptr",
"typeString": "struct Tables.Table"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "413:14:16"
},
"scope": 4437,
"src": "374:124:16",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4297,
"nodeType": "Block",
"src": "571:911:16",
"statements": [
{
"condition": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4160,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4155,
"src": "585:5:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Table_$4133_memory_ptr",
"typeString": "struct Tables.Table memory"
}
},
"id": 4161,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 4126,
"src": "585:12:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 4295,
"nodeType": "Block",
"src": "1438:38:16",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "6e756c6c",
"id": 4293,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1459:6:16",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
"typeString": "literal_string \"null\""
},
"value": "null"
},
"functionReturnParameters": 4159,
"id": 4294,
"nodeType": "Return",
"src": "1452:13:16"
}
]
},
"id": 4296,
"nodeType": "IfStatement",
"src": "581:895:16",
"trueBody": {
"id": 4292,
"nodeType": "Block",
"src": "599:833:16",
"statements": [
{
"assignments": [
4163
],
"declarations": [
{
"constant": false,
"id": 4163,
"name": "json",
"nodeType": "VariableDeclaration",
"scope": 4298,
"src": "613:18:16",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4162,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "613:6:16",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4165,
"initialValue": {
"argumentTypes": null,
"hexValue": "7b22636f6c756d6e73223a5b",
"id": 4164,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "634:14:16",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_8e64e7187bf7031021ca4dc06621e631ccf0169e82e53e6eddc7651e66a38d18",
"typeString": "literal_string \"{\"columns\":[\""
},
"value": "{\"columns\":["
},
"nodeType": "VariableDeclarationStatement",
"src": "613:35:16"
},
{
"assignments": [
4167
],
"declarations": [
{
"constant": false,
"id": 4167,
"name": "length",
"nodeType": "VariableDeclaration",
"scope": 4298,
"src": "662:11:16",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4166,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "662:4:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4169,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 4168,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "676:1:16",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "662:15:16"
},
{
"body": {
"id": 4218,
"nodeType": "Block",
"src": "739:250:16",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 4184,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 4182,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4167,
"src": "761:6:16",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 4183,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "770:1:16",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "761:10:16",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 4197,
"nodeType": "IfStatement",
"src": "757:100:16",
"trueBody": {
"id": 4196,
"nodeType": "Block",
"src": "773:84:16",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 4194,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4185,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4163,
"src": "795:4:16",
"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": 4190,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "824:3:16",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3e7a35b97029f9e0cf6effd71c1a7958822e9a217d3a3aec886668a7dd8231cb",
"typeString": "literal_string \",\""
},
"value": ","
},
"id": 4191,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2100,
"src": "824:11:16",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2040_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 4192,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "824:13:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2040_memory_ptr",
"typeString": "struct strings.slice memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_slice_$2040_memory_ptr",
"typeString": "struct strings.slice memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 4186,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4163,
"src": "802:4:16",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4187,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2100,
"src": "802:12:16",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$2040_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 4188,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "802:14:16",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2040_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 4189,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 3613,
"src": "802:21:16",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$2040_memory_ptr_$_t_struct$_slice_$2040_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$2040_memory_ptr_$",
"typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
}
},
"id": 4193,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "802:36:16",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "795:43:16",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",