UNPKG

@dnextco/tokenboost-solidity-erc223token

Version:

Solidity contracts for TokenBoost (ERC223Token)

1,061 lines 212 kB
{ "contractName": "Actions", "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200578aff91cdab8fa8b304203bc1a543e6e1e176b128043c8f16aecadf6ce84660029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200578aff91cdab8fa8b304203bc1a543e6e1e176b128043c8f16aecadf6ce84660029", "sourceMap": "94:1124:31:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "94:1124:31:-;;;;;;;;", "source": "pragma solidity ^0.4.24;\n\nimport \"../utils/strings.sol\";\nimport \"../utils/AddressUtils.sol\";\n\nlibrary Actions {\n using strings for *;\n using AddressUtils for address;\n\n struct Action {\n bool exists;\n address to;\n string functionSelector;\n string arguments;\n string confirm;\n }\n\n function empty() internal pure returns (Action memory) {\n return Action(false, address(0), \"\", \"\", \"\");\n }\n\n function toJson(Action memory _self) internal pure returns (string) {\n if (_self.exists) {\n string memory json = '{\"address\":\"';\n json = json.toSlice().concat(_self.to.toString().toSlice());\n json = json.toSlice().concat('\",\"functionSelector\":\"'.toSlice());\n json = json.toSlice().concat(_self.functionSelector.toSlice());\n json = json.toSlice().concat('\",\"arguments\":'.toSlice());\n json = json.toSlice().concat(_self.arguments.toSlice());\n json = json.toSlice().concat(',\"confirm\":\"'.toSlice());\n json = json.toSlice().concat(_self.confirm.toSlice());\n return json.toSlice().concat('\"}'.toSlice());\n } else {\n return \"null\";\n }\n }\n}\n", "sourcePath": "tokenboost-solidity/contracts/widget/Actions.sol", "ast": { "absolutePath": "tokenboost-solidity/contracts/widget/Actions.sol", "exportedSymbols": { "Actions": [ 5604 ] }, "id": 5605, "nodeType": "SourceUnit", "nodes": [ { "id": 5458, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:31" }, { "absolutePath": "tokenboost-solidity/contracts/utils/strings.sol", "file": "../utils/strings.sol", "id": 5459, "nodeType": "ImportDirective", "scope": 5605, "sourceUnit": 5457, "src": "26:30:31", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "tokenboost-solidity/contracts/utils/AddressUtils.sol", "file": "../utils/AddressUtils.sol", "id": 5460, "nodeType": "ImportDirective", "scope": 5605, "sourceUnit": 3622, "src": "57:35:31", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": null, "fullyImplemented": true, "id": 5604, "linearizedBaseContracts": [ 5604 ], "name": "Actions", "nodeType": "ContractDefinition", "nodes": [ { "id": 5462, "libraryName": { "contractScope": null, "id": 5461, "name": "strings", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5456, "src": "122:7:31", "typeDescriptions": { "typeIdentifier": "t_contract$_strings_$5456", "typeString": "library strings" } }, "nodeType": "UsingForDirective", "src": "116:20:31", "typeName": null }, { "id": 5465, "libraryName": { "contractScope": null, "id": 5463, "name": "AddressUtils", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3621, "src": "147:12:31", "typeDescriptions": { "typeIdentifier": "t_contract$_AddressUtils_$3621", "typeString": "library AddressUtils" } }, "nodeType": "UsingForDirective", "src": "141:31:31", "typeName": { "id": 5464, "name": "address", "nodeType": "ElementaryTypeName", "src": "164:7:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "canonicalName": "Actions.Action", "id": 5476, "members": [ { "constant": false, "id": 5467, "name": "exists", "nodeType": "VariableDeclaration", "scope": 5476, "src": "202:11:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 5466, "name": "bool", "nodeType": "ElementaryTypeName", "src": "202:4:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5469, "name": "to", "nodeType": "VariableDeclaration", "scope": 5476, "src": "223:10:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 5468, "name": "address", "nodeType": "ElementaryTypeName", "src": "223:7:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5471, "name": "functionSelector", "nodeType": "VariableDeclaration", "scope": 5476, "src": "243:23:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 5470, "name": "string", "nodeType": "ElementaryTypeName", "src": "243:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5473, "name": "arguments", "nodeType": "VariableDeclaration", "scope": 5476, "src": "276:16:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 5472, "name": "string", "nodeType": "ElementaryTypeName", "src": "276:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 5475, "name": "confirm", "nodeType": "VariableDeclaration", "scope": 5476, "src": "302:14:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 5474, "name": "string", "nodeType": "ElementaryTypeName", "src": "302:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "name": "Action", "nodeType": "StructDefinition", "scope": 5604, "src": "178:145:31", "visibility": "public" }, { "body": { "id": 5491, "nodeType": "Block", "src": "384:61:31", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "66616c7365", "id": 5482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "408:5:31", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 5484, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "423:1:31", "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": 5483, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "415:7:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 5485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "415:10:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "hexValue": "", "id": 5486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "427:2:31", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 5487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "431:2:31", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 5488, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "435:2:31", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 5481, "name": "Action", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5476, "src": "401:6:31", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Action_$5476_storage_ptr_$", "typeString": "type(struct Actions.Action storage pointer)" } }, "id": 5489, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "401:37:31", "typeDescriptions": { "typeIdentifier": "t_struct$_Action_$5476_memory", "typeString": "struct Actions.Action memory" } }, "functionReturnParameters": 5480, "id": 5490, "nodeType": "Return", "src": "394:44:31" } ] }, "documentation": null, "id": 5492, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "empty", "nodeType": "FunctionDefinition", "parameters": { "id": 5477, "nodeType": "ParameterList", "parameters": [], "src": "343:2:31" }, "payable": false, "returnParameters": { "id": 5480, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5479, "name": "", "nodeType": "VariableDeclaration", "scope": 5492, "src": "369:6:31", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_Action_$5476_memory_ptr", "typeString": "struct Actions.Action" }, "typeName": { "contractScope": null, "id": 5478, "name": "Action", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5476, "src": "369:6:31", "typeDescriptions": { "typeIdentifier": "t_struct$_Action_$5476_storage_ptr", "typeString": "struct Actions.Action" } }, "value": null, "visibility": "internal" } ], "src": "368:15:31" }, "scope": 5604, "src": "329:116:31", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 5602, "nodeType": "Block", "src": "519:697:31", "statements": [ { "condition": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 5499, "name": "_self", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5494, "src": "533:5:31", "typeDescriptions": { "typeIdentifier": "t_struct$_Action_$5476_memory_ptr", "typeString": "struct Actions.Action memory" } }, "id": 5500, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "exists", "nodeType": "MemberAccess", "referencedDeclaration": 5467, "src": "533:12:31", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 5600, "nodeType": "Block", "src": "1172:38:31", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "6e756c6c", "id": 5598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1193:6:31", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805", "typeString": "literal_string \"null\"" }, "value": "null" }, "functionReturnParameters": 5498, "id": 5599, "nodeType": "Return", "src": "1186:13:31" } ] }, "id": 5601, "nodeType": "IfStatement", "src": "529:681:31", "trueBody": { "id": 5597, "nodeType": "Block", "src": "547:619:31", "statements": [ { "assignments": [ 5502 ], "declarations": [ { "constant": false, "id": 5502, "name": "json", "nodeType": "VariableDeclaration", "scope": 5603, "src": "561:18:31", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 5501, "name": "string", "nodeType": "ElementaryTypeName", "src": "561:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "id": 5504, "initialValue": { "argumentTypes": null, "hexValue": "7b2261646472657373223a22", "id": 5503, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "582:14:31", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_44809c325c685992218e65a7cd52ab64712bb8f19767919ea44cbfa2eeb49ae9", "typeString": "literal_string \"{\"address\":\"\"" }, "value": "{\"address\":\"" }, "nodeType": "VariableDeclarationStatement", "src": "561:35:31" }, { "expression": { "argumentTypes": null, "id": 5517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 5505, "name": "json", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5502, "src": "610:4:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 5510, "name": "_self", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5494, "src": "639:5:31", "typeDescriptions": { "typeIdentifier": "t_struct$_Action_$5476_memory_ptr", "typeString": "struct Actions.Action memory" } }, "id": 5511, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "to", "nodeType": "MemberAccess", "referencedDeclaration": 5469, "src": "639:8:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 5512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toString", "nodeType": "MemberAccess", "referencedDeclaration": 3620, "src": "639:17:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$bound_to$_t_address_$", "typeString": "function (address) pure returns (string memory)" } }, "id": 5513, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "639:19:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "id": 5514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toSlice", "nodeType": "MemberAccess", "referencedDeclaration": 3828, "src": "639:27:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$3768_memory_ptr_$bound_to$_t_string_memory_ptr_$", "typeString": "function (string memory) pure returns (struct strings.slice memory)" } }, "id": 5515, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "639:29:31", "typeDescriptions": { "typeIdentifier": "t_struct$_slice_$3768_memory_ptr", "typeString": "struct strings.slice memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_slice_$3768_memory_ptr", "typeString": "struct strings.slice memory" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 5506, "name": "json", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5502, "src": "617:4:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "id": 5507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toSlice", "nodeType": "MemberAccess", "referencedDeclaration": 3828, "src": "617:12:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$3768_memory_ptr_$bound_to$_t_string_memory_ptr_$", "typeString": "function (string memory) pure returns (struct strings.slice memory)" } }, "id": 5508, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "617:14:31", "typeDescriptions": { "typeIdentifier": "t_struct$_slice_$3768_memory_ptr", "typeString": "struct strings.slice memory" } }, "id": 5509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", "referencedDeclaration": 5341, "src": "617:21:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$3768_memory_ptr_$_t_struct$_slice_$3768_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$3768_memory_ptr_$", "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)" } }, "id": 5516, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "617:52:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "610:59:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "id": 5518, "nodeType": "ExpressionStatement", "src": "610:59:31" }, { "expression": { "argumentTypes": null, "id": 5528, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 5519, "name": "json", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5502, "src": "683:4:31", "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": "222c2266756e6374696f6e53656c6563746f72223a22", "id": 5524, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "712:24:31", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_07bc42a4e638db01b08907e06d690a4eb3a44d39ef30e7460012025394fc4133", "typeString": "literal_string \"\",\"functionSelector\":\"\"" }, "value": "\",\"functionSelector\":\"" }, "id": 5525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toSlice", "nodeType": "MemberAccess", "referencedDeclaration": 3828, "src": "712:32:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$3768_memory_ptr_$bound_to$_t_string_memory_ptr_$", "typeString": "function (string memory) pure returns (struct strings.slice memory)" } }, "id": 5526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "712:34:31", "typeDescriptions": { "typeIdentifier": "t_struct$_slice_$3768_memory_ptr", "typeString": "struct strings.slice memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_slice_$3768_memory_ptr", "typeString": "struct strings.slice memory" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 5520, "name": "json", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5502, "src": "690:4:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "id": 5521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toSlice", "nodeType": "MemberAccess", "referencedDeclaration": 3828, "src": "690:12:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$3768_memory_ptr_$bound_to$_t_string_memory_ptr_$", "typeString": "function (string memory) pure returns (struct strings.slice memory)" } }, "id": 5522, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "690:14:31", "typeDescriptions": { "typeIdentifier": "t_struct$_slice_$3768_memory_ptr", "typeString": "struct strings.slice memory" } }, "id": 5523, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", "referencedDeclaration": 5341, "src": "690:21:31", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$3768_memory_ptr_$_t_struct$_slice_$3768_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$3768_memory_ptr_$", "typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)" } }, "id": 5527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "690:57:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "683:64:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "id": 5529, "nodeType": "ExpressionStatement", "src": "683:64:31" }, { "expression": { "argumentTypes": null, "id": 5540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 5530, "name": "json", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5502, "src": "761:4:31", "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": 5535, "name": "_self", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5494, "src": "790:5:31", "typeDescriptions": { "typeIdentifier": "t_struct$_Action_$5476_memory_ptr", "typeString": "struct Actions.Action memory" } }, "id": 5536, "isConstant": false, "isLValue": true