@zjbtest/contracts
Version:
AcalaNetwork Smart Contract library for Solidity
1,127 lines • 246 kB
JSON
{
"contractName": "MultiCurrency",
"abi": [],
"metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/token/MultiCurrency.sol\":\"MultiCurrency\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/token/MultiCurrency.sol\":{\"keccak256\":\"0x7c72d006b384a4d9ea46fdb44487830344b279cfaa21089e38072fae434016ae\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d9d3c819db7d8890cfe4a898ef02516d80d77416f987d0bb80eadbd7bac37ab7\",\"dweb:/ipfs/QmZNxxC9MYu4n3YDywsZ77SUKp4isQS8zfhk17u86wTYvi\"]}},\"version\":1}",
"bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eb2940bfa4cc584963b7f00a9b1d0e64928ad55088b831b3974d69477222d7864736f6c63430008000033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eb2940bfa4cc584963b7f00a9b1d0e64928ad55088b831b3974d69477222d7864736f6c63430008000033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "71:2374:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "71:2374:10:-:0;;;;;;;;",
"source": "// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\nlibrary MultiCurrency {\n address constant private precompile = address(0x0000000000000000000000000000000000000400);\n\n function name() internal view returns (string memory) {\n (bool success, bytes memory returnData) = precompile.staticcall(abi.encodeWithSignature(\"name()\"));\n assembly {\n if eq(success, 0) {\n revert(add(returnData, 0x20), returndatasize())\n }\n }\n\n return abi.decode(returnData, (string));\n }\n\n function symbol() internal view returns (string memory) {\n (bool success, bytes memory returnData) = precompile.staticcall(abi.encodeWithSignature(\"symbol()\"));\n assembly {\n if eq(success, 0) {\n revert(add(returnData, 0x20), returndatasize())\n }\n }\n\n return abi.decode(returnData, (string));\n }\n\n function decimals() internal view returns (uint8) {\n (bool success, bytes memory returnData) = precompile.staticcall(abi.encodeWithSignature(\"decimals()\"));\n assembly {\n if eq(success, 0) {\n revert(add(returnData, 0x20), returndatasize())\n }\n }\n\n return abi.decode(returnData, (uint8));\n }\n\n function totalSupply() internal view returns (uint256) {\n (bool success, bytes memory returnData) = precompile.staticcall(abi.encodeWithSignature(\"totalSupply()\"));\n assembly {\n if eq(success, 0) {\n revert(add(returnData, 0x20), returndatasize())\n }\n }\n\n return abi.decode(returnData, (uint256));\n }\n\n function balanceOf(address account) internal view returns (uint256) {\n (bool success, bytes memory returnData) = precompile.staticcall(abi.encodeWithSignature(\"balanceOf(address)\", account));\n assembly {\n if eq(success, 0) {\n revert(add(returnData, 0x20), returndatasize())\n }\n }\n\n return abi.decode(returnData, (uint256));\n }\n\n function transfer(address sender, address recipient, uint256 amount) internal {\n (bool success, bytes memory returnData) = precompile.call(abi.encodeWithSignature(\"transfer(address,address,uint256)\", sender, recipient, amount));\n assembly {\n if eq(success, 0) {\n revert(add(returnData, 0x20), returndatasize())\n }\n }\n }\n}\n",
"sourcePath": "/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/token/MultiCurrency.sol",
"ast": {
"absolutePath": "/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/token/MultiCurrency.sol",
"exportedSymbols": {
"MultiCurrency": [
1557
]
},
"id": 1558,
"license": "GPL-3.0-or-later",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1386,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "46:23:10"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"fullyImplemented": true,
"id": 1557,
"linearizedBaseContracts": [
1557
],
"name": "MultiCurrency",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 1392,
"mutability": "constant",
"name": "precompile",
"nodeType": "VariableDeclaration",
"scope": 1557,
"src": "99:89:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1387,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "99:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": {
"arguments": [
{
"hexValue": "307830303030303030303030303030303030303030303030303030303030303030303030303030343030",
"id": 1390,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "145:42:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"value": "0x0000000000000000000000000000000000000400"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 1389,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "137:7:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 1388,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "137:7:10",
"typeDescriptions": {}
}
},
"id": 1391,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "137:51:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "private"
},
{
"body": {
"id": 1418,
"nodeType": "Block",
"src": "249:304:10",
"statements": [
{
"assignments": [
1398,
1400
],
"declarations": [
{
"constant": false,
"id": 1398,
"mutability": "mutable",
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 1418,
"src": "260:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1397,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "260:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1400,
"mutability": "mutable",
"name": "returnData",
"nodeType": "VariableDeclaration",
"scope": 1418,
"src": "274:23:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 1399,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "274:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 1408,
"initialValue": {
"arguments": [
{
"arguments": [
{
"hexValue": "6e616d652829",
"id": 1405,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "347:8:10",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796",
"typeString": "literal_string \"name()\""
},
"value": "name()"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796",
"typeString": "literal_string \"name()\""
}
],
"expression": {
"id": 1403,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "323:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 1404,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "323:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 1406,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "323:33:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 1401,
"name": "precompile",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1392,
"src": "301:10:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 1402,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "301:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
}
},
"id": 1407,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "301:56:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "259:98:10"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "376:121:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "408:79:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "returnData",
"nodeType": "YulIdentifier",
"src": "437:10:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "449:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "433:3:10"
},
"nodeType": "YulFunctionCall",
"src": "433:21:10"
},
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "456:14:10"
},
"nodeType": "YulFunctionCall",
"src": "456:16:10"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "426:6:10"
},
"nodeType": "YulFunctionCall",
"src": "426:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "426:47:10"
}
]
},
"condition": {
"arguments": [
{
"name": "success",
"nodeType": "YulIdentifier",
"src": "396:7:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "405:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "393:2:10"
},
"nodeType": "YulFunctionCall",
"src": "393:14:10"
},
"nodeType": "YulIf",
"src": "390:2:10"
}
]
},
"evmVersion": "istanbul",
"externalReferences": [
{
"declaration": 1400,
"isOffset": false,
"isSlot": false,
"src": "437:10:10",
"valueSize": 1
},
{
"declaration": 1398,
"isOffset": false,
"isSlot": false,
"src": "396:7:10",
"valueSize": 1
}
],
"id": 1409,
"nodeType": "InlineAssembly",
"src": "367:130:10"
},
{
"expression": {
"arguments": [
{
"id": 1412,
"name": "returnData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1400,
"src": "525:10:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 1414,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "538:6:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
},
"typeName": {
"id": 1413,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "538:6:10",
"typeDescriptions": {}
}
}
],
"id": 1415,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "537:8:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
}
],
"expression": {
"id": 1410,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "514:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 1411,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "514:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 1416,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "514:32:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 1396,
"id": 1417,
"nodeType": "Return",
"src": "507:39:10"
}
]
},
"id": 1419,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "name",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1393,
"nodeType": "ParameterList",
"parameters": [],
"src": "208:2:10"
},
"returnParameters": {
"id": 1396,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1395,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1419,
"src": "234:13:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1394,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "234:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "233:15:10"
},
"scope": 1557,
"src": "195:358:10",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 1445,
"nodeType": "Block",
"src": "615:306:10",
"statements": [
{
"assignments": [
1425,
1427
],
"declarations": [
{
"constant": false,
"id": 1425,
"mutability": "mutable",
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 1445,
"src": "626:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1424,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "626:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1427,
"mutability": "mutable",
"name": "returnData",
"nodeType": "VariableDeclaration",
"scope": 1445,
"src": "640:23:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 1426,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "640:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 1435,
"initialValue": {
"arguments": [
{
"arguments": [
{
"hexValue": "73796d626f6c2829",
"id": 1432,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "713:10:10",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec",
"typeString": "literal_string \"symbol()\""
},
"value": "symbol()"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec",
"typeString": "literal_string \"symbol()\""
}
],
"expression": {
"id": 1430,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "689:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 1431,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"src": "689:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 1433,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "689:35:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 1428,
"name": "precompile",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1392,
"src": "667:10:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 1429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "staticcall",
"nodeType": "MemberAccess",
"src": "667:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) view returns (bool,bytes memory)"
}
},
"id": 1434,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "667:58:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "625:100:10"
},
{
"AST": {
"nodeType": "YulBlock",
"src": "744:121:10",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "776:79:10",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "returnData",
"nodeType": "YulIdentifier",
"src": "805:10:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "817:4:10",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "801:3:10"
},
"nodeType": "YulFunctionCall",
"src": "801:21:10"
},
{
"arguments": [],
"functionName": {
"name": "returndatasize",
"nodeType": "YulIdentifier",
"src": "824:14:10"
},
"nodeType": "YulFunctionCall",
"src": "824:16:10"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "794:6:10"
},
"nodeType": "YulFunctionCall",
"src": "794:47:10"
},
"nodeType": "YulExpressionStatement",
"src": "794:47:10"
}
]
},
"condition": {
"arguments": [
{
"name": "success",
"nodeType": "YulIdentifier",
"src": "764:7:10"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "773:1:10",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "761:2:10"
},
"nodeType": "YulFunctionCall",
"src": "761:14:10"
},
"nodeType": "YulIf",
"src": "758:2:10"
}
]
},
"evmVersion": "istanbul",
"externalReferences": [
{
"declaration": 1427,
"isOffset": false,
"isSlot": false,
"src": "805:10:10",
"valueSize": 1
},
{
"declaration": 1425,
"isOffset": false,
"isSlot": false,
"src": "764:7:10",
"valueSize": 1
}
],
"id": 1436,
"nodeType": "InlineAssembly",
"src": "735:130:10"
},
{
"expression": {
"arguments": [
{
"id": 1439,
"name": "returnData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1427,
"src": "893:10:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 1441,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "906:6:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
},
"typeName": {
"id": 1440,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "906:6:10",
"typeDescriptions": {}
}
}
],
"id": 1442,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "905:8:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
}
],
"expression": {
"id": 1437,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "882:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 1438,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "882:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 1443,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "882:32:10",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 1423,
"id": 1444,
"nodeType": "Return",
"src": "875:39:10"
}
]
},
"id": 1446,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "symbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1420,
"nodeType": "ParameterList",
"parameters": [],
"src": "574:2:10"
},
"returnParameters": {
"id": 1423,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1422,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1446,
"src": "600:13:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1421,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "600:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "599:15:10"
},
"scope": 1557,
"src": "559:362:10",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 1472,
"nodeType": "Block",
"src": "977:307:10",
"statements": [
{
"assignments": [
1452,
1454
],
"declarations": [
{
"constant": false,
"id": 1452,
"mutability": "mutable",
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 1472,
"src": "988:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1451,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "988:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 1454,
"mutability": "mutable",
"name": "returnData",
"nodeType": "VariableDeclaration",
"scope": 1472,
"src": "1002:23:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 1453,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1002:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 1462,
"initialValue": {
"arguments": [
{
"arguments": [
{
"hexValue": "646563696d616c732829",
"id": 1459,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1075:12:10",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_313ce567add4d438edf58b94ff34