tokenboost-solidity-erc20sale
Version:
Solidity contracts for TokenBoost (ERC20Sale)
1,061 lines • 212 kB
JSON
{
"contractName": "Actions",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200578aff91cdab8fa8b304203bc1a543e6e1e176b128043c8f16aecadf6ce84660029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200578aff91cdab8fa8b304203bc1a543e6e1e176b128043c8f16aecadf6ce84660029",
"sourceMap": "94:1124:19:-;;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:19:-;;;;;;;;",
"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": [
4481
]
},
"id": 4482,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4335,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:19"
},
{
"absolutePath": "tokenboost-solidity/contracts/utils/strings.sol",
"file": "../utils/strings.sol",
"id": 4336,
"nodeType": "ImportDirective",
"scope": 4482,
"sourceUnit": 4334,
"src": "26:30:19",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "tokenboost-solidity/contracts/utils/AddressUtils.sol",
"file": "../utils/AddressUtils.sol",
"id": 4337,
"nodeType": "ImportDirective",
"scope": 4482,
"sourceUnit": 2499,
"src": "57:35:19",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 4481,
"linearizedBaseContracts": [
4481
],
"name": "Actions",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 4339,
"libraryName": {
"contractScope": null,
"id": 4338,
"name": "strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4333,
"src": "122:7:19",
"typeDescriptions": {
"typeIdentifier": "t_contract$_strings_$4333",
"typeString": "library strings"
}
},
"nodeType": "UsingForDirective",
"src": "116:20:19",
"typeName": null
},
{
"id": 4342,
"libraryName": {
"contractScope": null,
"id": 4340,
"name": "AddressUtils",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2498,
"src": "147:12:19",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AddressUtils_$2498",
"typeString": "library AddressUtils"
}
},
"nodeType": "UsingForDirective",
"src": "141:31:19",
"typeName": {
"id": 4341,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "164:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
{
"canonicalName": "Actions.Action",
"id": 4353,
"members": [
{
"constant": false,
"id": 4344,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 4353,
"src": "202:11:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4343,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "202:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4346,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 4353,
"src": "223:10:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4345,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "223:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4348,
"name": "functionSelector",
"nodeType": "VariableDeclaration",
"scope": 4353,
"src": "243:23:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4347,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "243:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4350,
"name": "arguments",
"nodeType": "VariableDeclaration",
"scope": 4353,
"src": "276:16:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4349,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "276:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4352,
"name": "confirm",
"nodeType": "VariableDeclaration",
"scope": 4353,
"src": "302:14:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 4351,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "302:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Action",
"nodeType": "StructDefinition",
"scope": 4481,
"src": "178:145:19",
"visibility": "public"
},
{
"body": {
"id": 4368,
"nodeType": "Block",
"src": "384:61:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 4359,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "408:5:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 4361,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "423:1:19",
"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": 4360,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "415:7:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 4362,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "415:10:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"hexValue": "",
"id": 4363,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "427:2:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 4364,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "431:2:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 4365,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "435:2:19",
"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": 4358,
"name": "Action",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4353,
"src": "401:6:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Action_$4353_storage_ptr_$",
"typeString": "type(struct Actions.Action storage pointer)"
}
},
"id": 4366,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "401:37:19",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_memory",
"typeString": "struct Actions.Action memory"
}
},
"functionReturnParameters": 4357,
"id": 4367,
"nodeType": "Return",
"src": "394:44:19"
}
]
},
"documentation": null,
"id": 4369,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "empty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4354,
"nodeType": "ParameterList",
"parameters": [],
"src": "343:2:19"
},
"payable": false,
"returnParameters": {
"id": 4357,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4356,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4369,
"src": "369:6:19",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
"typeString": "struct Actions.Action"
},
"typeName": {
"contractScope": null,
"id": 4355,
"name": "Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4353,
"src": "369:6:19",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_storage_ptr",
"typeString": "struct Actions.Action"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "368:15:19"
},
"scope": 4481,
"src": "329:116:19",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 4479,
"nodeType": "Block",
"src": "519:697:19",
"statements": [
{
"condition": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 4376,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4371,
"src": "533:5:19",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 4377,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 4344,
"src": "533:12:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 4477,
"nodeType": "Block",
"src": "1172:38:19",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "6e756c6c",
"id": 4475,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1193:6:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
"typeString": "literal_string \"null\""
},
"value": "null"
},
"functionReturnParameters": 4375,
"id": 4476,
"nodeType": "Return",
"src": "1186:13:19"
}
]
},
"id": 4478,
"nodeType": "IfStatement",
"src": "529:681:19",
"trueBody": {
"id": 4474,
"nodeType": "Block",
"src": "547:619:19",
"statements": [
{
"assignments": [
4379
],
"declarations": [
{
"constant": false,
"id": 4379,
"name": "json",
"nodeType": "VariableDeclaration",
"scope": 4480,
"src": "561:18:19",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 4378,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "561:6:19",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 4381,
"initialValue": {
"argumentTypes": null,
"hexValue": "7b2261646472657373223a22",
"id": 4380,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "582:14:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_44809c325c685992218e65a7cd52ab64712bb8f19767919ea44cbfa2eeb49ae9",
"typeString": "literal_string \"{\"address\":\"\""
},
"value": "{\"address\":\""
},
"nodeType": "VariableDeclarationStatement",
"src": "561:35:19"
},
{
"expression": {
"argumentTypes": null,
"id": 4394,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4382,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4379,
"src": "610:4:19",
"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": 4387,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4371,
"src": "639:5:19",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 4388,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "to",
"nodeType": "MemberAccess",
"referencedDeclaration": 4346,
"src": "639:8:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 4389,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toString",
"nodeType": "MemberAccess",
"referencedDeclaration": 2497,
"src": "639:17:19",
"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": 4390,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "639:19:19",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4391,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "639:27:19",
"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": 4392,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "639:29:19",
"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": 4383,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4379,
"src": "617:4:19",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4384,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "617:12:19",
"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": 4385,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "617:14:19",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 4386,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 4218,
"src": "617:21:19",
"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": 4393,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "617:52:19",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "610:59:19",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4395,
"nodeType": "ExpressionStatement",
"src": "610:59:19"
},
{
"expression": {
"argumentTypes": null,
"id": 4405,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4396,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4379,
"src": "683:4:19",
"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": 4401,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "712:24:19",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_07bc42a4e638db01b08907e06d690a4eb3a44d39ef30e7460012025394fc4133",
"typeString": "literal_string \"\",\"functionSelector\":\"\""
},
"value": "\",\"functionSelector\":\""
},
"id": 4402,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "712:32:19",
"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": 4403,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "712:34:19",
"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": 4397,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4379,
"src": "690:4:19",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4398,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2705,
"src": "690:12:19",
"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": 4399,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "690:14:19",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2645_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 4400,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 4218,
"src": "690:21:19",
"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": 4404,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "690:57:19",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "683:64:19",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 4406,
"nodeType": "ExpressionStatement",
"src": "683:64:19"
},
{
"expression": {
"argumentTypes": null,
"id": 4417,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4407,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4379,
"src": "761:4:19",
"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": 4412,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4371,
"src": "790:5:19",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$4353_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 4413,
"isConstant": false,
"isLValue": true