UNPKG

@zjbtest/contracts

Version:
1,127 lines 246 kB
{ "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