UNPKG

@etherisc/registry-contracts

Version:

Etherisc's smart contracts for the registry.

1,484 lines (1,483 loc) 878 kB
{ "abi": [ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "allSourcePaths": { "16": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/ERC721.sol", "17": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol", "18": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721Receiver.sol", "21": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/IERC721Metadata.sol", "22": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Address.sol", "23": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Context.sol", "25": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Strings.sol", "28": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/introspection/ERC165.sol", "29": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/introspection/IERC165.sol", "30": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/math/Math.sol" }, "ast": { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/ERC721.sol", "exportedSymbols": { "Address": [ 17676 ], "Context": [ 16878 ], "ERC165": [ 17700 ], "ERC721": [ 15797 ], "IERC165": [ 17712 ], "IERC721": [ 16778 ], "IERC721Metadata": [ 17346 ], "IERC721Receiver": [ 17319 ], "Math": [ 13636 ], "Strings": [ 17301 ] }, "id": 15798, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 14872, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "107:23:16" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", "id": 14873, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15798, "sourceUnit": 16779, "src": "132:23:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721Receiver.sol", "file": "./IERC721Receiver.sol", "id": 14874, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15798, "sourceUnit": 17320, "src": "156:31:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/IERC721Metadata.sol", "file": "./extensions/IERC721Metadata.sol", "id": 14875, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15798, "sourceUnit": 17347, "src": "188:42:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Address.sol", "file": "../../utils/Address.sol", "id": 14876, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15798, "sourceUnit": 17677, "src": "231:33:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Context.sol", "file": "../../utils/Context.sol", "id": 14877, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15798, "sourceUnit": 16879, "src": "265:33:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Strings.sol", "file": "../../utils/Strings.sol", "id": 14878, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15798, "sourceUnit": 17302, "src": "299:33:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/introspection/ERC165.sol", "file": "../../utils/introspection/ERC165.sol", "id": 14879, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 15798, "sourceUnit": 17701, "src": "333:46:16", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 14881, "name": "Context", "nameLocations": [ "647:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 16878, "src": "647:7:16" }, "id": 14882, "nodeType": "InheritanceSpecifier", "src": "647:7:16" }, { "baseName": { "id": 14883, "name": "ERC165", "nameLocations": [ "656:6:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 17700, "src": "656:6:16" }, "id": 14884, "nodeType": "InheritanceSpecifier", "src": "656:6:16" }, { "baseName": { "id": 14885, "name": "IERC721", "nameLocations": [ "664:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 16778, "src": "664:7:16" }, "id": 14886, "nodeType": "InheritanceSpecifier", "src": "664:7:16" }, { "baseName": { "id": 14887, "name": "IERC721Metadata", "nameLocations": [ "673:15:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 17346, "src": "673:15:16" }, "id": 14888, "nodeType": "InheritanceSpecifier", "src": "673:15:16" } ], "canonicalName": "ERC721", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 14880, "nodeType": "StructuredDocumentation", "src": "381:246:16", "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." }, "fullyImplemented": true, "id": 15797, "linearizedBaseContracts": [ 15797, 17346, 16778, 17700, 17712, 16878 ], "name": "ERC721", "nameLocation": "637:6:16", "nodeType": "ContractDefinition", "nodes": [ { "global": false, "id": 14891, "libraryName": { "id": 14889, "name": "Address", "nameLocations": [ "701:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 17676, "src": "701:7:16" }, "nodeType": "UsingForDirective", "src": "695:26:16", "typeName": { "id": 14890, "name": "address", "nodeType": "ElementaryTypeName", "src": "713:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "global": false, "id": 14894, "libraryName": { "id": 14892, "name": "Strings", "nameLocations": [ "732:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 17301, "src": "732:7:16" }, "nodeType": "UsingForDirective", "src": "726:26:16", "typeName": { "id": 14893, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "744:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "constant": false, "id": 14896, "mutability": "mutable", "name": "_name", "nameLocation": "791:5:16", "nodeType": "VariableDeclaration", "scope": 15797, "src": "776:20:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 14895, "name": "string", "nodeType": "ElementaryTypeName", "src": "776:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "constant": false, "id": 14898, "mutability": "mutable", "name": "_symbol", "nameLocation": "838:7:16", "nodeType": "VariableDeclaration", "scope": 15797, "src": "823:22:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 14897, "name": "string", "nodeType": "ElementaryTypeName", "src": "823:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "constant": false, "id": 14902, "mutability": "mutable", "name": "_owners", "nameLocation": "934:7:16", "nodeType": "VariableDeclaration", "scope": 15797, "src": "898:43:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "typeName": { "id": 14901, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 14899, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "906:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "898:27:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 14900, "name": "address", "nodeType": "ElementaryTypeName", "src": "917:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "visibility": "private" }, { "constant": false, "id": 14906, "mutability": "mutable", "name": "_balances", "nameLocation": "1028:9:16", "nodeType": "VariableDeclaration", "scope": 15797, "src": "992:45:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 14905, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 14903, "name": "address", "nodeType": "ElementaryTypeName", "src": "1000:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "992:27:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 14904, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1011:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "visibility": "private" }, { "constant": false, "id": 14910, "mutability": "mutable", "name": "_tokenApprovals", "nameLocation": "1129:15:16", "nodeType": "VariableDeclaration", "scope": 15797, "src": "1093:51:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "typeName": { "id": 14909, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 14907, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1101:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1093:27:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 14908, "name": "address", "nodeType": "ElementaryTypeName", "src": "1112:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "visibility": "private" }, { "constant": false, "id": 14916, "mutability": "mutable", "name": "_operatorApprovals", "nameLocation": "1252:18:16", "nodeType": "VariableDeclaration", "scope": 15797, "src": "1199:71:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { "id": 14915, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 14911, "name": "address", "nodeType": "ElementaryTypeName", "src": "1207:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1199:44:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 14914, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 14912, "name": "address", "nodeType": "ElementaryTypeName", "src": "1226:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1218:24:16", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 14913, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1237:4:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "visibility": "private" }, { "body": { "id": 14932, "nodeType": "Block", "src": "1446:57:16", "statements": [ { "expression": { "id": 14926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 14924, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14896, "src": "1456:5:16", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 14925, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14919, "src": "1464:5:16", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "1456:13:16", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 14927, "nodeType": "ExpressionStatement", "src": "1456:13:16" }, { "expression": { "id": 14930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 14928, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14898, "src": "1479:7:16", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 14929, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14921, "src": "1489:7:16", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "1479:17:16", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 14931, "nodeType": "ExpressionStatement", "src": "1479:17:16" } ] }, "documentation": { "id": 14917, "nodeType": "StructuredDocumentation", "src": "1277:108:16", "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." }, "id": 14933, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 14922, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 14919, "mutability": "mutable", "name": "name_", "nameLocation": "1416:5:16", "nodeType": "VariableDeclaration", "scope": 14933, "src": "1402:19:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 14918, "name": "string", "nodeType": "ElementaryTypeName", "src": "1402:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 14921, "mutability": "mutable", "name": "symbol_", "nameLocation": "1437:7:16", "nodeType": "VariableDeclaration", "scope": 14933, "src": "1423:21:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 14920, "name": "string", "nodeType": "ElementaryTypeName", "src": "1423:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1401:44:16" }, "returnParameters": { "id": 14923, "nodeType": "ParameterList", "parameters": [], "src": "1446:0:16" }, "scope": 15797, "src": "1390:113:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "baseFunctions": [ 17699, 17711 ], "body": { "id": 14963, "nodeType": "Block", "src": "1678:192:16", "statements": [ { "expression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 14961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 14956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 14949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 14944, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14936, "src": "1707:11:16", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "arguments": [ { "id": 14946, "name": "IERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16778, "src": "1727:7:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC721_$16778_$", "typeString": "type(contract IERC721)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_type$_t_contract$_IERC721_$16778_$", "typeString": "type(contract IERC721)" } ], "id": 14945, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1722:4:16", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 14947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1722:13:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$16778", "typeString": "type(contract IERC721)" } }, "id": 14948, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1736:11:16", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1722:25:16", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1707:40:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 14955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 14950, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14936, "src": "1763:11:16", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "arguments": [ { "id": 14952, "name": "IERC721Metadata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17346, "src": "1783:15:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$17346_$", "typeString": "type(contract IERC721Metadata)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$17346_$", "typeString": "type(contract IERC721Metadata)" } ], "id": 14951, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1778:4:16", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 14953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1778:21:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$17346", "typeString": "type(contract IERC721Metadata)" } }, "id": 14954, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1800:11:16", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1778:33:16", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1763:48:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1707:104:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "arguments": [ { "id": 14959, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14936, "src": "1851:11:16", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "expression": { "id": 14957, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1827:5:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_super$_ERC721_$15797_$", "typeString": "type(contract super ERC721)" } }, "id": 14958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1833:17:16", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 17699, "src": "1827:23:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view returns (bool)" } }, "id": 14960, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1827:36:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1707:156:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 14943, "id": 14962, "nodeType": "Return", "src": "1688:175:16" } ] }, "documentation": { "id": 14934, "nodeType": "StructuredDocumentation", "src": "1509:56:16", "text": " @dev See {IERC165-supportsInterface}." }, "functionSelector": "01ffc9a7", "id": 14964, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "1579:17:16", "nodeType": "FunctionDefinition", "overrides": { "id": 14940, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 14938, "name": "ERC165", "nameLocations": [ "1646:6:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 17700, "src": "1646:6:16" }, { "id": 14939, "name": "IERC165", "nameLocations": [ "1654:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 17712, "src": "1654:7:16" } ], "src": "1637:25:16" }, "parameters": { "id": 14937, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 14936, "mutability": "mutable", "name": "interfaceId", "nameLocation": "1604:11:16", "nodeType": "VariableDeclaration", "scope": 14964, "src": "1597:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 14935, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1597:6:16", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "1596:20:16" }, "returnParameters": { "id": 14943, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 14942, "mutability": "mutable",