UNPKG

@vporton/future-contracts

Version:

Ethereum accounts bid on future financing (essentially, transfer money from the future) - smart contracts

1,308 lines 55.2 kB
{ "contractName": "ERC165", "abi": [ { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts may inherit from this and call {_registerInterface} to declare their support of an interface.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}},\"stateVariables\":{\"_supportedInterfaces\":{\"details\":\"Mapping of interface ids to whether or not it's supported.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xd6b90e604fb2eb2d641c7110c72440bf2dc999ec6ab8ff60f200e71ca75d1d90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b92d8ab83b21ff984b1f0d6d66897d5afb1f2052004cbcb133cea023e0ae468\",\"dweb:/ipfs/QmTarypkQrFp4UMjTh7Zzhz2nZLz5uPS4nJQtHDEuwBVe6\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xf70bc25d981e4ec9673a995ad2995d5d493ea188d3d8f388bba9c227ce09fb82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd970f51e3a77790c2f02b5b1759827c3b897c3d98c407b3631e8af32e3dc93c\",\"dweb:/ipfs/QmPF85Amgbqjk3SNZKsPCsqCw8JfwYEPMnnhvMJUyX58je\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () internal {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n", "sourcePath": "@openzeppelin/contracts/introspection/ERC165.sol", "ast": { "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ 4381 ], "IERC165": [ 4393 ] }, "id": 4382, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 4326, "literals": [ "solidity", ">=", "0.6", ".0", "<", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:31:18" }, { "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "file": "./IERC165.sol", "id": 4327, "nodeType": "ImportDirective", "scope": 4382, "sourceUnit": 4394, "src": "66:23:18", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [ { "baseName": { "id": 4329, "name": "IERC165", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4393, "src": "291:7:18", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC165_$4393", "typeString": "contract IERC165" } }, "id": 4330, "nodeType": "InheritanceSpecifier", "src": "291:7:18" } ], "contractDependencies": [ 4393 ], "contractKind": "contract", "documentation": { "id": 4328, "nodeType": "StructuredDocumentation", "src": "91:171:18", "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." }, "fullyImplemented": true, "id": 4381, "linearizedBaseContracts": [ 4381, 4393 ], "name": "ERC165", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "id": 4333, "mutability": "constant", "name": "_INTERFACE_ID_ERC165", "nodeType": "VariableDeclaration", "scope": 4381, "src": "388:57:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4331, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "388:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": { "hexValue": "30783031666663396137", "id": 4332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "435:10:18", "typeDescriptions": { "typeIdentifier": "t_rational_33540519_by_1", "typeString": "int_const 33540519" }, "value": "0x01ffc9a7" }, "visibility": "private" }, { "constant": false, "documentation": { "id": 4334, "nodeType": "StructuredDocumentation", "src": "452:82:18", "text": " @dev Mapping of interface ids to whether or not it's supported." }, "id": 4338, "mutability": "mutable", "name": "_supportedInterfaces", "nodeType": "VariableDeclaration", "scope": 4381, "src": "539:52:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" }, "typeName": { "id": 4337, "keyType": { "id": 4335, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "547:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "539:23:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" }, "valueType": { "id": 4336, "name": "bool", "nodeType": "ElementaryTypeName", "src": "557:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "visibility": "private" }, { "body": { "id": 4345, "nodeType": "Block", "src": "622:193:18", "statements": [ { "expression": { "arguments": [ { "id": 4342, "name": "_INTERFACE_ID_ERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4333, "src": "787:20:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 4341, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4380, "src": "768:18:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "768:40:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4344, "nodeType": "ExpressionStatement", "src": "768:40:18" } ] }, "id": 4346, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 4339, "nodeType": "ParameterList", "parameters": [], "src": "610:2:18" }, "returnParameters": { "id": 4340, "nodeType": "ParameterList", "parameters": [], "src": "622:0:18" }, "scope": 4381, "src": "598:217:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ 4392 ], "body": { "id": 4359, "nodeType": "Block", "src": "1048:57:18", "statements": [ { "expression": { "baseExpression": { "id": 4355, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4338, "src": "1065:20:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, "id": 4357, "indexExpression": { "id": 4356, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4349, "src": "1086:11:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1065:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 4354, "id": 4358, "nodeType": "Return", "src": "1058:40:18" } ] }, "documentation": { "id": 4347, "nodeType": "StructuredDocumentation", "src": "821:139:18", "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." }, "functionSelector": "01ffc9a7", "id": 4360, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nodeType": "FunctionDefinition", "overrides": { "id": 4351, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1024:8:18" }, "parameters": { "id": 4350, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4349, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 4360, "src": "992:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4348, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "992:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "991:20:18" }, "returnParameters": { "id": 4354, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4353, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 4360, "src": "1042:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4352, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1042:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "1041:6:18" }, "scope": 4381, "src": "965:140:18", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 4379, "nodeType": "Block", "src": "1564:133:18", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 4369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4367, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4363, "src": "1582:11:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30786666666666666666", "id": 4368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1597:10:18", "typeDescriptions": { "typeIdentifier": "t_rational_4294967295_by_1", "typeString": "int_const 4294967295" }, "value": "0xffffffff" }, "src": "1582:25:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", "id": 4370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1609:30:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", "typeString": "literal_string \"ERC165: invalid interface id\"" }, "value": "ERC165: invalid interface id" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", "typeString": "literal_string \"ERC165: invalid interface id\"" } ], "id": 4366, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "1574:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 4371, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1574:66:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4372, "nodeType": "ExpressionStatement", "src": "1574:66:18" }, { "expression": { "id": 4377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 4373, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4338, "src": "1650:20:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, "id": 4375, "indexExpression": { "id": 4374, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4363, "src": "1671:11:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1650:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 4376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1686:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1650:40:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 4378, "nodeType": "ExpressionStatement", "src": "1650:40:18" } ] }, "documentation": { "id": 4361, "nodeType": "StructuredDocumentation", "src": "1111:383:18", "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." }, "id": 4380, "implemented": true, "kind": "function", "modifiers": [], "name": "_registerInterface", "nodeType": "FunctionDefinition", "parameters": { "id": 4364, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4363, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 4380, "src": "1527:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4362, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1527:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "1526:20:18" }, "returnParameters": { "id": 4365, "nodeType": "ParameterList", "parameters": [], "src": "1564:0:18" }, "scope": 4381, "src": "1499:198:18", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], "scope": 4382, "src": "263:1436:18" } ], "src": "33:1667:18" }, "legacyAST": { "attributes": { "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ 4381 ], "IERC165": [ 4393 ] }, "license": "MIT" }, "children": [ { "attributes": { "literals": [ "solidity", ">=", "0.6", ".0", "<", "0.8", ".0" ] }, "id": 4326, "name": "PragmaDirective", "src": "33:31:18" }, { "attributes": { "SourceUnit": 4394, "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol", "file": "./IERC165.sol", "scope": 4382, "symbolAliases": [ null ], "unitAlias": "" }, "id": 4327, "name": "ImportDirective", "src": "66:23:18" }, { "attributes": { "abstract": true, "contractDependencies": [ 4393 ], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 4381, 4393 ], "name": "ERC165", "scope": 4382 }, "children": [ { "attributes": { "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." }, "id": 4328, "name": "StructuredDocumentation", "src": "91:171:18" }, { "attributes": {}, "children": [ { "attributes": { "name": "IERC165", "referencedDeclaration": 4393, "type": "contract IERC165" }, "id": 4329, "name": "UserDefinedTypeName", "src": "291:7:18" } ], "id": 4330, "name": "InheritanceSpecifier", "src": "291:7:18" }, { "attributes": { "constant": true, "mutability": "constant", "name": "_INTERFACE_ID_ERC165", "scope": 4381, "stateVariable": true, "storageLocation": "default", "type": "bytes4", "visibility": "private" }, "children": [ { "attributes": { "name": "bytes4", "type": "bytes4" }, "id": 4331, "name": "ElementaryTypeName", "src": "388:6:18" }, { "attributes": { "hexvalue": "30783031666663396137", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "token": "number", "type": "int_const 33540519", "value": "0x01ffc9a7" }, "id": 4332, "name": "Literal", "src": "435:10:18" } ], "id": 4333, "name": "VariableDeclaration", "src": "388:57:18" }, { "attributes": { "constant": false, "mutability": "mutable", "name": "_supportedInterfaces", "scope": 4381, "stateVariable": true, "storageLocation": "default", "type": "mapping(bytes4 => bool)", "visibility": "private" }, "children": [ { "attributes": { "type": "mapping(bytes4 => bool)" }, "children": [ { "attributes": { "name": "bytes4", "type": "bytes4" }, "id": 4335, "name": "ElementaryTypeName", "src": "547:6:18" }, { "attributes": { "name": "bool", "type": "bool" }, "id": 4336, "name": "ElementaryTypeName", "src": "557:4:18" } ], "id": 4337, "name": "Mapping", "src": "539:23:18" }, { "attributes": { "text": " @dev Mapping of interface ids to whether or not it's supported." }, "id": 4334, "name": "StructuredDocumentation", "src": "452:82:18" } ], "id": 4338, "name": "VariableDeclaration", "src": "539:52:18" }, { "attributes": { "implemented": true, "isConstructor": true, "kind": "constructor", "modifiers": [ null ], "name": "", "scope": 4381, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, "children": [ { "attributes": { "parameters": [ null ] }, "children": [], "id": 4339, "name": "ParameterList", "src": "610:2:18" }, { "attributes": { "parameters": [ null ] }, "children": [], "id": 4340, "name": "ParameterList", "src": "622:0:18" }, { "children": [ { "children": [ { "attributes": { "isConstant": false, "isLValue": false, "isPure": false, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "tuple()", "type_conversion": false }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "overloadedDeclarations": [ null ], "referencedDeclaration": 4380, "type": "function (bytes4)", "value": "_registerInterface" }, "id": 4341, "name": "Identifier", "src": "768:18:18" }, { "attributes": { "overloadedDeclarations": [ null ], "referencedDeclaration": 4333, "type": "bytes4", "value": "_INTERFACE_ID_ERC165" }, "id": 4342, "name": "Identifier", "src": "787:20:18" } ], "id": 4343, "name": "FunctionCall", "src": "768:40:18" } ], "id": 4344, "name": "ExpressionStatement", "src": "768:40:18" } ], "id": 4345, "name": "Block", "src": "622:193:18" } ], "id": 4346, "name": "FunctionDefinition", "src": "598:217:18" }, { "attributes": { "baseFunctions": [ 4392 ], "functionSelector": "01ffc9a7", "implemented": true, "isConstructor": false, "kind": "function", "modifiers": [ null ], "name": "supportsInterface", "scope": 4381, "stateMutability": "view", "virtual": false, "visibility": "public" }, "children": [ { "attributes": { "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." }, "id": 4347, "name": "StructuredDocumentation", "src": "821:139:18" }, { "attributes": { "overrides": [ null ] }, "id": 4351, "name": "OverrideSpecifier", "src": "1024:8:18" }, { "children": [ { "attributes": { "constant": false, "mutability": "mutable", "name": "interfaceId", "scope": 4360, "stateVariable": false, "storageLocation": "default", "type": "bytes4", "visibility": "internal" }, "children": [ { "attributes": { "name": "bytes4", "type": "bytes4" }, "id": 4348, "name": "ElementaryTypeName", "src": "992:6:18" } ], "id": 4349, "name": "VariableDeclaration", "src": "992:18:18" } ], "id": 4350, "name": "ParameterList", "src": "991:20:18" }, { "children": [ { "attributes": { "constant": false, "mutability": "mutable", "name": "", "scope": 4360, "stateVariable": false, "storageLocation": "default", "type": "bool", "visibility": "internal" }, "children": [ { "attributes": { "name": "bool", "type": "bool" }, "id": 4352, "name": "ElementaryTypeName", "src": "1042:4:18" } ], "id": 4353, "name": "VariableDeclaration", "src": "1042:4:18" } ], "id": 4354, "name": "ParameterList", "src": "1041:6:18" }, { "children": [ { "attributes": { "functionReturnParameters": 4354 }, "children": [ { "attributes": { "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "type": "bool" }, "children": [ { "attributes": { "overloadedDeclarations": [ null ], "referencedDeclaration": 4338, "type": "mapping(bytes4 => bool)", "value": "_supportedInterfaces" }, "id": 4355, "name": "Identifier", "src": "1065:20:18" }, { "attributes": { "overloadedDeclarations": [ null ], "referencedDeclaration": 4349, "type": "bytes4", "value": "interfaceId" }, "id": 4356, "name": "Identifier", "src": "1086:11:18" } ], "id": 4357, "name": "IndexAccess", "src": "1065:33:18" } ], "id": 4358, "name": "Return", "src": "1058:40:18" } ], "id": 4359, "name": "Block", "src": "1048:57:18" } ], "id": 4360, "name": "FunctionDefinition", "src": "965:140:18" }, { "attributes": { "implemented": true, "isConstructor": false, "kind": "function", "modifiers": [ null ], "name": "_registerInterface", "scope": 4381, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, "children": [ { "attributes": { "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." }, "id": 4361, "name": "StructuredDocumentation", "src": "1111:383:18" }, { "children": [ { "attributes": { "constant": false, "mutability": "mutable", "name": "interfaceId", "scope": 4380, "stateVariable": false, "storageLocation": "default", "type": "bytes4", "visibility": "internal" }, "children": [ { "attributes": { "name": "bytes4", "type": "bytes4" }, "id": 4362, "name": "ElementaryTypeName", "src": "1527:6:18" } ], "id": 4363, "name": "VariableDeclaration", "src": "1527:18:18" } ], "id": 4364, "name": "ParameterList", "src": "1526:20:18" }, { "attributes": { "parameters": [ null ] }, "children": [], "id": 4365, "name": "ParameterList", "src": "1564:0:18" }, { "children": [ { "children": [ { "attributes": { "isConstant": false, "isLValue": false, "isPure": false, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "tuple()", "type_conversion": false }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", "typeString": "literal_string \"ERC165: invalid interface id\"" } ], "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "type": "function (bool,string memory) pure", "value": "require" }, "id": 4366, "name": "Identifier", "src": "1574:7:18" }, { "attributes": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "!=", "type": "bool" }, "children": [ { "attributes": { "overloadedDeclarations": [ null ], "referencedDeclaration": 4363, "type": "bytes4", "value": "interfaceId" }, "id": 4367, "name": "Identifier", "src": "1582:11:18" }, { "attributes": { "hexvalue": "30786666666666666666", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "token": "number", "type": "int_const 4294967295", "value": "0xffffffff" }, "id": 4368, "name": "Literal", "src": "1597:10:18" } ], "id": 4369, "name": "BinaryOperation", "src": "1582:25:18" }, { "attributes": { "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "token": "string", "type": "literal_string \"ER