UNPKG

tokenboost-solidity

Version:
1,051 lines (1,050 loc) 495 kB
{ "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",