@etherisc/registry-contracts
Version:
Etherisc's smart contracts for the registry.
1,484 lines (1,483 loc) • 197 kB
JSON
{
"abi": [
{
"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": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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",
"19": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
"20": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/IERC721Enumerable.sol",
"21": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/IERC721Metadata.sol",
"23": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Context.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"
},
"ast": {
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
"exportedSymbols": {
"Address": [
17676
],
"Context": [
16878
],
"ERC165": [
17700
],
"ERC721": [
15797
],
"ERC721Enumerable": [
12088
],
"IERC165": [
17712
],
"IERC721": [
16778
],
"IERC721Enumerable": [
12485
],
"IERC721Metadata": [
17346
],
"IERC721Receiver": [
17319
],
"Math": [
13636
],
"Strings": [
17301
]
},
"id": 12089,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 11736,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "128:23:19"
},
{
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/ERC721.sol",
"file": "../ERC721.sol",
"id": 11737,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 12089,
"sourceUnit": 15798,
"src": "153:23:19",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/extensions/IERC721Enumerable.sol",
"file": "./IERC721Enumerable.sol",
"id": 11738,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 12089,
"sourceUnit": 12486,
"src": "177:33:19",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": true,
"baseContracts": [
{
"baseName": {
"id": 11740,
"name": "ERC721",
"nameLocations": [
"450:6:19"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 15797,
"src": "450:6:19"
},
"id": 11741,
"nodeType": "InheritanceSpecifier",
"src": "450:6:19"
},
{
"baseName": {
"id": 11742,
"name": "IERC721Enumerable",
"nameLocations": [
"458:17:19"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 12485,
"src": "458:17:19"
},
"id": 11743,
"nodeType": "InheritanceSpecifier",
"src": "458:17:19"
}
],
"canonicalName": "ERC721Enumerable",
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 11739,
"nodeType": "StructuredDocumentation",
"src": "212:199:19",
"text": " @dev This implements an optional extension of {ERC721} defined in the EIP that adds\n enumerability of all the token ids in the contract as well as all token ids owned by each\n account."
},
"fullyImplemented": true,
"id": 12088,
"linearizedBaseContracts": [
12088,
12485,
15797,
17346,
16778,
17700,
17712,
16878
],
"name": "ERC721Enumerable",
"nameLocation": "430:16:19",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 11749,
"mutability": "mutable",
"name": "_ownedTokens",
"nameLocation": "591:12:19",
"nodeType": "VariableDeclaration",
"scope": 12088,
"src": "535:68:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(uint256 => uint256))"
},
"typeName": {
"id": 11748,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 11744,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "543:7:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "535:47:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(uint256 => uint256))"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 11747,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 11745,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "562:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "554:27:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 11746,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "573:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
}
},
"visibility": "private"
},
{
"constant": false,
"id": 11753,
"mutability": "mutable",
"name": "_ownedTokensIndex",
"nameLocation": "709:17:19",
"nodeType": "VariableDeclaration",
"scope": 12088,
"src": "673:53:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 11752,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 11750,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "681:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "673:27:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 11751,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "692:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "private"
},
{
"constant": false,
"id": 11756,
"mutability": "mutable",
"name": "_allTokens",
"nameLocation": "805:10:19",
"nodeType": "VariableDeclaration",
"scope": 12088,
"src": "787:28:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 11754,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "787:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 11755,
"nodeType": "ArrayTypeName",
"src": "787:9:19",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"visibility": "private"
},
{
"constant": false,
"id": 11760,
"mutability": "mutable",
"name": "_allTokensIndex",
"nameLocation": "922:15:19",
"nodeType": "VariableDeclaration",
"scope": 12088,
"src": "886:51:19",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 11759,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 11757,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "894:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "886:27:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 11758,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "905:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "private"
},
{
"baseFunctions": [
14964,
17711
],
"body": {
"id": 11783,
"nodeType": "Block",
"src": "1113:114:19",
"statements": [
{
"expression": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 11781,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 11776,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 11771,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11763,
"src": "1130:11:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 11773,
"name": "IERC721Enumerable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12485,
"src": "1150:17:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IERC721Enumerable_$12485_$",
"typeString": "type(contract IERC721Enumerable)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_type$_t_contract$_IERC721Enumerable_$12485_$",
"typeString": "type(contract IERC721Enumerable)"
}
],
"id": 11772,
"name": "type",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -27,
"src": "1145:4:19",
"typeDescriptions": {
"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 11774,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1145:23:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Enumerable_$12485",
"typeString": "type(contract IERC721Enumerable)"
}
},
"id": 11775,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1169:11:19",
"memberName": "interfaceId",
"nodeType": "MemberAccess",
"src": "1145:35:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "1130:50:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"arguments": [
{
"id": 11779,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11763,
"src": "1208:11:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"id": 11777,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -25,
"src": "1184:5:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_super$_ERC721Enumerable_$12088_$",
"typeString": "type(contract super ERC721Enumerable)"
}
},
"id": 11778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1190:17:19",
"memberName": "supportsInterface",
"nodeType": "MemberAccess",
"referencedDeclaration": 14964,
"src": "1184:23:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
"typeString": "function (bytes4) view returns (bool)"
}
},
"id": 11780,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1184:36:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1130:90:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 11770,
"id": 11782,
"nodeType": "Return",
"src": "1123:97:19"
}
]
},
"documentation": {
"id": 11761,
"nodeType": "StructuredDocumentation",
"src": "944:56:19",
"text": " @dev See {IERC165-supportsInterface}."
},
"functionSelector": "01ffc9a7",
"id": 11784,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "1014:17:19",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 11767,
"nodeType": "OverrideSpecifier",
"overrides": [
{
"id": 11765,
"name": "IERC165",
"nameLocations": [
"1081:7:19"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 17712,
"src": "1081:7:19"
},
{
"id": 11766,
"name": "ERC721",
"nameLocations": [
"1090:6:19"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 15797,
"src": "1090:6:19"
}
],
"src": "1072:25:19"
},
"parameters": {
"id": 11764,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11763,
"mutability": "mutable",
"name": "interfaceId",
"nameLocation": "1039:11:19",
"nodeType": "VariableDeclaration",
"scope": 11784,
"src": "1032:18:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 11762,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1032:6:19",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "1031:20:19"
},
"returnParameters": {
"id": 11770,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11769,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 11784,
"src": "1107:4:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 11768,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1107:4:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "1106:6:19"
},
"scope": 12088,
"src": "1005:222:19",
"stateMutability": "view",
"virtual": true,
"visibility": "public"
},
{
"baseFunctions": [
12476
],
"body": {
"id": 11811,
"nodeType": "Block",
"src": "1412:147:19",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 11801,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 11796,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11789,
"src": "1430:5:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"arguments": [
{
"id": 11799,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11787,
"src": "1455:5:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 11797,
"name": "ERC721",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15797,
"src": "1438:6:19",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC721_$15797_$",
"typeString": "type(contract ERC721)"
}
},
"id": 11798,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1445:9:19",
"memberName": "balanceOf",
"nodeType": "MemberAccess",
"referencedDeclaration": 14988,
"src": "1438:16:19",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view returns (uint256)"
}
},
"id": 11800,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1438:23:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1430:31:19",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473",
"id": 11802,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1463:45:19",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c",
"typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\""
},
"value": "ERC721Enumerable: owner index out of bounds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c",
"typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\""
}
],
"id": 11795,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1422:7:19",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 11803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1422:87:19",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 11804,
"nodeType": "ExpressionStatement",
"src": "1422:87:19"
},
{
"expression": {
"baseExpression": {
"baseExpression": {
"id": 11805,
"name": "_ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11749,
"src": "1526:12:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$",
"typeString": "mapping(address => mapping(uint256 => uint256))"
}
},
"id": 11807,
"indexExpression": {
"id": 11806,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11787,
"src": "1539:5:19",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1526:19:19",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 11809,
"indexExpression": {
"id": 11808,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11789,
"src": "1546:5:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1526:26:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 11794,
"id": 11810,
"nodeType": "Return",
"src": "1519:33:19"
}
]
},
"documentation": {
"id": 11785,
"nodeType": "StructuredDocumentation",
"src": "1233:68:19",
"text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}."
},
"functionSelector": "2f745c59",
"id": 11812,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "tokenOfOwnerByIndex",
"nameLocation": "1315:19:19",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 11791,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "1385:8:19"
},
"parameters": {
"id": 11790,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11787,
"mutability": "mutable",
"name": "owner",
"nameLocation": "1343:5:19",
"nodeType": "VariableDeclaration",
"scope": 11812,
"src": "1335:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 11786,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1335:7:19",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 11789,
"mutability": "mutable",
"name": "index",
"nameLocation": "1358:5:19",
"nodeType": "VariableDeclaration",
"scope": 11812,
"src": "1350:13:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 11788,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1350:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1334:30:19"
},
"returnParameters": {
"id": 11794,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11793,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 11812,
"src": "1403:7:19",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 11792,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1403:7:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1402:9:19"
},
"scope": 12088,
"src": "1306:253:19",
"stateMutability": "view",
"virtual": true,
"visibility": "public"
},
{
"baseFunctions": [
12466
],
"body": {
"id": 11822,
"nodeType": "Block",
"src": "1700:41:19",
"statements": [
{
"expression": {
"expression": {
"id": 11819,
"name": "_allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11756,
"src": "1717:10:19",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 11820,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1728:6:19",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "1717:17:19",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 11818,
"id": 11821,
"nodeType": "Return",
"src": "1710:24:19"
}
]
},
"documentation": {
"id": 11813,
"nodeType": "StructuredDocumentation",
"src": "1565:60:19",
"text": " @dev See {IERC721Enumerable-totalSupply}."
},
"functionSelector": "18160ddd",
"id": 11823,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "totalSupply",
"nameLocation": "1639:11:19",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 11815,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "1673:8:19"
},
"parameters": {
"id": 11814,