UNPKG

aibc

Version:
612 lines 24.7 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.8.0+commit.c7dfd78e\"},\"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 that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x5718c5df9bd67ac68a796961df938821bb5dc0cd4c6118d77e9145afb187409b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d10e1d9b26042424789246603906ad06143bf9a928f4e99de8b5e3bdc662f549\",\"dweb:/ipfs/Qmejonoaj5MLekPus229rJQHcC6E9dz2xorjHJR84fMfmn\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n", "sourcePath": "@openzeppelin\\contracts\\utils\\introspection\\ERC165.sol", "ast": { "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ 4308 ], "IERC165": [ 4320 ] }, "id": 4309, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 4286, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:23:15" }, { "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", "file": "./IERC165.sol", "id": 4287, "nodeType": "ImportDirective", "scope": 4309, "sourceUnit": 4321, "src": "58:23:15", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [ { "baseName": { "id": 4289, "name": "IERC165", "nodeType": "IdentifierPath", "referencedDeclaration": 4320, "src": "688:7:15" }, "id": 4290, "nodeType": "InheritanceSpecifier", "src": "688:7:15" } ], "contractDependencies": [ 4320 ], "contractKind": "contract", "documentation": { "id": 4288, "nodeType": "StructuredDocumentation", "src": "83:576:15", "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." }, "fullyImplemented": true, "id": 4308, "linearizedBaseContracts": [ 4308, 4320 ], "name": "ERC165", "nodeType": "ContractDefinition", "nodes": [ { "baseFunctions": [ 4319 ], "body": { "id": 4306, "nodeType": "Block", "src": "854:64:15", "statements": [ { "expression": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 4304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4299, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4293, "src": "871:11:15", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "arguments": [ { "id": 4301, "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4320, "src": "891:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC165_$4320_$", "typeString": "type(contract IERC165)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_type$_t_contract$_IERC165_$4320_$", "typeString": "type(contract IERC165)" } ], "id": 4300, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, "src": "886:4:15", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 4302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "886:13:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$4320", "typeString": "type(contract IERC165)" } }, "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "886:25:15", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "871:40:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 4298, "id": 4305, "nodeType": "Return", "src": "864:47:15" } ] }, "documentation": { "id": 4291, "nodeType": "StructuredDocumentation", "src": "702:56:15", "text": " @dev See {IERC165-supportsInterface}." }, "functionSelector": "01ffc9a7", "id": 4307, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nodeType": "FunctionDefinition", "overrides": { "id": 4295, "nodeType": "OverrideSpecifier", "overrides": [], "src": "830:8:15" }, "parameters": { "id": 4294, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4293, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 4307, "src": "790:18:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4292, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "790:6:15", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "789:20:15" }, "returnParameters": { "id": 4298, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4297, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 4307, "src": "848:4:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4296, "name": "bool", "nodeType": "ElementaryTypeName", "src": "848:4:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "847:6:15" }, "scope": 4308, "src": "763:155:15", "stateMutability": "view", "virtual": true, "visibility": "public" } ], "scope": 4309, "src": "660:260:15" } ], "src": "33:888:15" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ 4308 ], "IERC165": [ 4320 ] }, "id": 4309, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 4286, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:23:15" }, { "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", "file": "./IERC165.sol", "id": 4287, "nodeType": "ImportDirective", "scope": 4309, "sourceUnit": 4321, "src": "58:23:15", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [ { "baseName": { "id": 4289, "name": "IERC165", "nodeType": "IdentifierPath", "referencedDeclaration": 4320, "src": "688:7:15" }, "id": 4290, "nodeType": "InheritanceSpecifier", "src": "688:7:15" } ], "contractDependencies": [ 4320 ], "contractKind": "contract", "documentation": { "id": 4288, "nodeType": "StructuredDocumentation", "src": "83:576:15", "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation." }, "fullyImplemented": true, "id": 4308, "linearizedBaseContracts": [ 4308, 4320 ], "name": "ERC165", "nodeType": "ContractDefinition", "nodes": [ { "baseFunctions": [ 4319 ], "body": { "id": 4306, "nodeType": "Block", "src": "854:64:15", "statements": [ { "expression": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 4304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4299, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4293, "src": "871:11:15", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "arguments": [ { "id": 4301, "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4320, "src": "891:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC165_$4320_$", "typeString": "type(contract IERC165)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_type$_t_contract$_IERC165_$4320_$", "typeString": "type(contract IERC165)" } ], "id": 4300, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967269, "src": "886:4:15", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 4302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "886:13:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$4320", "typeString": "type(contract IERC165)" } }, "id": 4303, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "886:25:15", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "871:40:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 4298, "id": 4305, "nodeType": "Return", "src": "864:47:15" } ] }, "documentation": { "id": 4291, "nodeType": "StructuredDocumentation", "src": "702:56:15", "text": " @dev See {IERC165-supportsInterface}." }, "functionSelector": "01ffc9a7", "id": 4307, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nodeType": "FunctionDefinition", "overrides": { "id": 4295, "nodeType": "OverrideSpecifier", "overrides": [], "src": "830:8:15" }, "parameters": { "id": 4294, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4293, "mutability": "mutable", "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 4307, "src": "790:18:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 4292, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "790:6:15", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "789:20:15" }, "returnParameters": { "id": 4298, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4297, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "scope": 4307, "src": "848:4:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4296, "name": "bool", "nodeType": "ElementaryTypeName", "src": "848:4:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "847:6:15" }, "scope": 4308, "src": "763:155:15", "stateMutability": "view", "virtual": true, "visibility": "public" } ], "scope": 4309, "src": "660:260:15" } ], "src": "33:888:15" }, "compiler": { "name": "solc", "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.3.4", "updatedAt": "2021-05-19T08:21:33.622Z", "devdoc": { "details": "Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.", "kind": "dev", "methods": { "supportsInterface(bytes4)": { "details": "See {IERC165-supportsInterface}." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }