tokenboost-solidity
Version:
Solidity contracts for TokenBoost
1,059 lines (1,058 loc) • 213 kB
JSON
{
"contractName": "Actions",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058203f4814719e1211140fccf87eb75be3f93e3c86f4d90f3e361616daead713005c0029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058203f4814719e1211140fccf87eb75be3f93e3c86f4d90f3e361616daead713005c0029",
"sourceMap": "94:1124:14:-;;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:14:-;;;;;;;;",
"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": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/widget/Actions.sol",
"ast": {
"absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/widget/Actions.sol",
"exportedSymbols": {
"Actions": [
3876
]
},
"id": 3877,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3730,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:14"
},
{
"absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/utils/strings.sol",
"file": "../utils/strings.sol",
"id": 3731,
"nodeType": "ImportDirective",
"scope": 3877,
"sourceUnit": 3729,
"src": "26:30:14",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/utils/AddressUtils.sol",
"file": "../utils/AddressUtils.sol",
"id": 3732,
"nodeType": "ImportDirective",
"scope": 3877,
"sourceUnit": 1943,
"src": "57:35:14",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 3876,
"linearizedBaseContracts": [
3876
],
"name": "Actions",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 3734,
"libraryName": {
"contractScope": null,
"id": 3733,
"name": "strings",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3728,
"src": "122:7:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_strings_$3728",
"typeString": "library strings"
}
},
"nodeType": "UsingForDirective",
"src": "116:20:14",
"typeName": null
},
{
"id": 3737,
"libraryName": {
"contractScope": null,
"id": 3735,
"name": "AddressUtils",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1942,
"src": "147:12:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AddressUtils_$1942",
"typeString": "library AddressUtils"
}
},
"nodeType": "UsingForDirective",
"src": "141:31:14",
"typeName": {
"id": 3736,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "164:7:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
{
"canonicalName": "Actions.Action",
"id": 3748,
"members": [
{
"constant": false,
"id": 3739,
"name": "exists",
"nodeType": "VariableDeclaration",
"scope": 3748,
"src": "202:11:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3738,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "202:4:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3741,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 3748,
"src": "223:10:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3740,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "223:7:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3743,
"name": "functionSelector",
"nodeType": "VariableDeclaration",
"scope": 3748,
"src": "243:23:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 3742,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "243:6:14",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3745,
"name": "arguments",
"nodeType": "VariableDeclaration",
"scope": 3748,
"src": "276:16:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 3744,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "276:6:14",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3747,
"name": "confirm",
"nodeType": "VariableDeclaration",
"scope": 3748,
"src": "302:14:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 3746,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "302:6:14",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Action",
"nodeType": "StructDefinition",
"scope": 3876,
"src": "178:145:14",
"visibility": "public"
},
{
"body": {
"id": 3763,
"nodeType": "Block",
"src": "384:61:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 3754,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "408:5:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3756,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "423:1:14",
"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": 3755,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "415:7:14",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3757,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "415:10:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"hexValue": "",
"id": 3758,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "427:2:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 3759,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "431:2:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
{
"argumentTypes": null,
"hexValue": "",
"id": 3760,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "435:2:14",
"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": 3753,
"name": "Action",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3748,
"src": "401:6:14",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Action_$3748_storage_ptr_$",
"typeString": "type(struct Actions.Action storage pointer)"
}
},
"id": 3761,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "401:37:14",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_memory",
"typeString": "struct Actions.Action memory"
}
},
"functionReturnParameters": 3752,
"id": 3762,
"nodeType": "Return",
"src": "394:44:14"
}
]
},
"documentation": null,
"id": 3764,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "empty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3749,
"nodeType": "ParameterList",
"parameters": [],
"src": "343:2:14"
},
"payable": false,
"returnParameters": {
"id": 3752,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3751,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3764,
"src": "369:6:14",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_memory_ptr",
"typeString": "struct Actions.Action"
},
"typeName": {
"contractScope": null,
"id": 3750,
"name": "Action",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3748,
"src": "369:6:14",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_storage_ptr",
"typeString": "struct Actions.Action"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "368:15:14"
},
"scope": 3876,
"src": "329:116:14",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 3874,
"nodeType": "Block",
"src": "519:697:14",
"statements": [
{
"condition": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3771,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3766,
"src": "533:5:14",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 3772,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 3739,
"src": "533:12:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 3872,
"nodeType": "Block",
"src": "1172:38:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "6e756c6c",
"id": 3870,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1193:6:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_efbde2c3aee204a69b7696d4b10ff31137fe78e3946306284f806e2dfc68b805",
"typeString": "literal_string \"null\""
},
"value": "null"
},
"functionReturnParameters": 3770,
"id": 3871,
"nodeType": "Return",
"src": "1186:13:14"
}
]
},
"id": 3873,
"nodeType": "IfStatement",
"src": "529:681:14",
"trueBody": {
"id": 3869,
"nodeType": "Block",
"src": "547:619:14",
"statements": [
{
"assignments": [
3774
],
"declarations": [
{
"constant": false,
"id": 3774,
"name": "json",
"nodeType": "VariableDeclaration",
"scope": 3875,
"src": "561:18:14",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 3773,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "561:6:14",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 3776,
"initialValue": {
"argumentTypes": null,
"hexValue": "7b2261646472657373223a22",
"id": 3775,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "582:14:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_44809c325c685992218e65a7cd52ab64712bb8f19767919ea44cbfa2eeb49ae9",
"typeString": "literal_string \"{\"address\":\"\""
},
"value": "{\"address\":\""
},
"nodeType": "VariableDeclarationStatement",
"src": "561:35:14"
},
{
"expression": {
"argumentTypes": null,
"id": 3789,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3777,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3774,
"src": "610:4:14",
"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": 3782,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3766,
"src": "639:5:14",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},
"id": 3783,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "to",
"nodeType": "MemberAccess",
"referencedDeclaration": 3741,
"src": "639:8:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3784,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toString",
"nodeType": "MemberAccess",
"referencedDeclaration": 1941,
"src": "639:17:14",
"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": 3785,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "639:19:14",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 3786,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2100,
"src": "639:27:14",
"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": 3787,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "639:29:14",
"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": 3778,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3774,
"src": "617:4:14",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 3779,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2100,
"src": "617:12:14",
"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": 3780,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "617:14:14",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2040_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 3781,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 3613,
"src": "617:21:14",
"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": 3788,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "617:52:14",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "610:59:14",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 3790,
"nodeType": "ExpressionStatement",
"src": "610:59:14"
},
{
"expression": {
"argumentTypes": null,
"id": 3800,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3791,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3774,
"src": "683:4:14",
"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": 3796,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "712:24:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_07bc42a4e638db01b08907e06d690a4eb3a44d39ef30e7460012025394fc4133",
"typeString": "literal_string \"\",\"functionSelector\":\"\""
},
"value": "\",\"functionSelector\":\""
},
"id": 3797,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2100,
"src": "712:32:14",
"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": 3798,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "712:34:14",
"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": 3792,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3774,
"src": "690:4:14",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 3793,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toSlice",
"nodeType": "MemberAccess",
"referencedDeclaration": 2100,
"src": "690:12:14",
"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": 3794,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "690:14:14",
"typeDescriptions": {
"typeIdentifier": "t_struct$_slice_$2040_memory_ptr",
"typeString": "struct strings.slice memory"
}
},
"id": 3795,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "concat",
"nodeType": "MemberAccess",
"referencedDeclaration": 3613,
"src": "690:21:14",
"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": 3799,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "690:57:14",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "683:64:14",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 3801,
"nodeType": "ExpressionStatement",
"src": "683:64:14"
},
{
"expression": {
"argumentTypes": null,
"id": 3812,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3802,
"name": "json",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3774,
"src": "761:4:14",
"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": 3807,
"name": "_self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3766,
"src": "790:5:14",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Action_$3748_memory_ptr",
"typeString": "struct Actions.Action memory"
}
},