@etherisc/registry-contracts
Version:
Etherisc's smart contracts for the registry.
1,484 lines (1,483 loc) • 878 kB
JSON
{
"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",