tokenboost-solidity-erc20token
Version:
Solidity contracts for TokenBoost (ERC20Token)
1,062 lines (1,061 loc) • 212 kB
JSON
{
"contractName": "Actions",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200578aff91cdab8fa8b304203bc1a543e6e1e176b128043c8f16aecadf6ce84660029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058200578aff91cdab8fa8b304203bc1a543e6e1e176b128043c8f16aecadf6ce84660029",
"sourceMap": "94:1124:10:-;;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:10:-;;;;;;;;",
"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": [
2848
]
},
"id": 2849,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2702,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:10"
},
{
"absolutePath": "tokenboost-solidity/contracts/utils/strings.sol",
"file": "../utils/strings.sol",
"id": 2703,
"nodeType": "ImportDirective",
"scope": 2849,
"sourceUnit": 2701,
"src": "26:30:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "tokenboost-solidity/contracts/utils/AddressUtils.sol",
"file": "../utils/AddressUtils.sol",
"id": 2704,
"nodeType": "ImportDirective",
"scope": 2849,
"sourceUnit": 915,
"src": "57:35:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 2848,
"linearizedBaseContracts": [
2848
],
"name": "Actions",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 2706,
"libraryName": {
"contractScope": null,
"id": 2705,
"name": "strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2700,
"src": "122:7:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_strings_$2700",
"typeString": "library strings"
}
},
"nodeType": "UsingForDirective",
"src": "116:20:10",
"typeName": null
},
{
"id": 2709,
"libraryName": {
"contractScope": null,
"id": 2707,
"name": "AddressUtils",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 914,
"src": "147:12:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AddressUtils_$914",
"typeString": "library AddressUtils"
}
},
"nodeType": "UsingForDirective",
"src": "141:31:10",
"typeName": {
"id": 2708,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "164:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
{
"canonicalName": "Actions.Action",
"id": 2720,
"members": [
{
"constant": false,
"id": 2711,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 2720,
"src": "202:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2710,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "202:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2713,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 2720,
"src": "223:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2712,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "223:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2715,
"name": "functionSelector",
"nodeType": "VariableDeclaration",
"scope": 2720,
"src": "243:23:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 2714,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "243:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2717,
"name": "arguments",
"nodeType": "VariableDeclaration",
"scope": 2720,
"src": "276:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 2716,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "276:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2719,
"name": "confirm",
"nodeType": "VariableDeclaration",
"scope": 2720,
"src": "302:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 2718,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "302:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Action",
"nodeType": "StructDefinition",
"scope": 2848,
"src": "178:145:10",
"visibility": "public"
},
{
"body": {
"id": 2735,
"nodeType": "Block",
"src": "384:61:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 2726,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "408:5:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 2728,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "423:1:10",
"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": 2727,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "415:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 2729,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "415:10:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"hexValue": "",
"id": 2730,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "427:2:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 2731,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "431:2:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 2732,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "435:2:10",
"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": 2725,
"name": "Action",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2720,
"src": "401:6:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Action_$2720_storage_ptr_$",
"typeString": "type(struct Actions.Action storage pointer)"
}
},
"id": 2733,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "401:37:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$2720_memory",
"typeString": "struct Actions.Action memory"
}
},
"functionReturnParameters": 2724,
"id": 2734,
"nodeType": "Return",
"src": "394:44:10"
}
]
},
"documentation": null,
"id": 2736,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "empty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2721,
"nodeType": "ParameterList",
"parameters": [],
"src": "343:2:10"
},
"payable": false,
"returnParameters": {
"id": 2724,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2723,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2736,
"src": "369:6:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
"typeString": "struct Actions.Action"
},
"typeName": {
"contractScope": null,
"id": 2722,
"name": "Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2720,
"src": "369:6:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$2720_storage_ptr",
"typeString": "struct Actions.Action"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "368:15:10"
},
"scope": 2848,
"src": "329:116:10",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 2846,
"nodeType": "Block",
"src": "519:697:10",
"statements": [
{
"condition": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2743,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2738,
"src": "533:5:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 2744,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 2711,
"src": "533:12:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 2844,
"nodeType": "Block",
"src": "1172:38:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "6e756c6c",
"id": 2842,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1193:6:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
"typeString": "literal_string \"null\""
},
"value": "null"
},
"functionReturnParameters": 2742,
"id": 2843,
"nodeType": "Return",
"src": "1186:13:10"
}
]
},
"id": 2845,
"nodeType": "IfStatement",
"src": "529:681:10",
"trueBody": {
"id": 2841,
"nodeType": "Block",
"src": "547:619:10",
"statements": [
{
"assignments": [
2746
],
"declarations": [
{
"constant": false,
"id": 2746,
"name": "json",
"nodeType": "VariableDeclaration",
"scope": 2847,
"src": "561:18:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 2745,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "561:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2748,
"initialValue": {
"argumentTypes": null,
"hexValue": "7b2261646472657373223a22",
"id": 2747,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "582:14:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_44809c325c685992218e65a7cd52ab64712bb8f19767919ea44cbfa2eeb49ae9",
"typeString": "literal_string \"{\"address\":\"\""
},
"value": "{\"address\":\""
},
"nodeType": "VariableDeclarationStatement",
"src": "561:35:10"
},
{
"expression": {
"argumentTypes": null,
"id": 2761,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2749,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2746,
"src": "610:4:10",
"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": 2754,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2738,
"src": "639:5:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 2755,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "to",
"nodeType": "MemberAccess",
"referencedDeclaration": 2713,
"src": "639:8:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2756,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toString",
"nodeType": "MemberAccess",
"referencedDeclaration": 913,
"src": "639:17:10",
"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": 2757,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "639:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 2758,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 1072,
"src": "639:27:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 2759,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "639:29:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
"typeString": "struct strings.slice memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
"typeString": "struct strings.slice memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 2750,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2746,
"src": "617:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 2751,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 1072,
"src": "617:12:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 2752,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "617:14:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 2753,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 2585,
"src": "617:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1012_memory_ptr_$_t_struct$_slice_$1012_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1012_memory_ptr_$",
"typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
}
},
"id": 2760,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "617:52:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "610:59:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 2762,
"nodeType": "ExpressionStatement",
"src": "610:59:10"
},
{
"expression": {
"argumentTypes": null,
"id": 2772,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2763,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2746,
"src": "683:4:10",
"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": 2768,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "712:24:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_07bc42a4e638db01b08907e06d690a4eb3a44d39ef30e7460012025394fc4133",
"typeString": "literal_string \"\",\"functionSelector\":\"\""
},
"value": "\",\"functionSelector\":\""
},
"id": 2769,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 1072,
"src": "712:32:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 2770,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "712:34:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
"typeString": "struct strings.slice memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
"typeString": "struct strings.slice memory"
}
],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 2764,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2746,
"src": "690:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 2765,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 1072,
"src": "690:12:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_struct$_slice_$1012_memory_ptr_$bound_to$_t_string_memory_ptr_$",
"typeString": "function (string memory) pure returns (struct strings.slice memory)"
}
},
"id": 2766,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "690:14:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$1012_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 2767,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 2585,
"src": "690:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_struct$_slice_$1012_memory_ptr_$_t_struct$_slice_$1012_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_slice_$1012_memory_ptr_$",
"typeString": "function (struct strings.slice memory,struct strings.slice memory) pure returns (string memory)"
}
},
"id": 2771,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "690:57:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "683:64:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 2773,
"nodeType": "ExpressionStatement",
"src": "683:64:10"
},
{
"expression": {
"argumentTypes": null,
"id": 2784,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2774,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2746,
"src": "761:4:10",
"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": 2779,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2738,
"src": "790:5:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$2720_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 2780,
"isConstant": false,
"isLValue": true,