[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "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": "mint", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "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" } ]
60c0604052600e60809081526d46757a7a792050656e6775696e7360901b60a052600a906200002f908262000264565b50604080518082019091526006815265465a59504e4760d01b6020820152600b906200005c908262000264565b506000600c553480156200006f57600080fd5b50600a80546200007f90620001d5565b80601f0160208091040260200160405190810160405280929190818152602001828054620000ad90620001d5565b8015620000fe5780601f10620000d257610100808354040283529160200191620000fe565b820191906000526020600020905b815481529060010190602001808311620000e057829003601f168201915b5050505050600b80546200011290620001d5565b80601f01602080910402602001604051908101604052809291908181526020018280546200014090620001d5565b8015620001915780601f10620001655761010080835404028352916020019162000191565b820191906000526020600020905b8154815290600101906020018083116200017357829003601f168201915b50505050508160009081620001a7919062000264565b506001620001b6828262000264565b50505062000330565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001ea57607f821691505b6020821081036200020b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200025f57600081815260208120601f850160051c810160208610156200023a5750805b601f850160051c820191505b818110156200025b5782815560010162000246565b5050505b505050565b81516001600160401b03811115620002805762000280620001bf565b6200029881620002918454620001d5565b8462000211565b602080601f831160018114620002d05760008415620002b75750858301515b600019600386901b1c1916600185901b1785556200025b565b600085815260208120601f198616915b828110156200030157888601518255948401946001909101908401620002e0565b5085821015620003205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6113a280620003406000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806342842e0e116100a257806395d89b411161007157806395d89b411461021d578063a22cb46514610225578063b88d4fde14610238578063c87b56dd1461024b578063e985e9c51461025e57600080fd5b806342842e0e146101d15780634f6ccce7146101e45780636352211e146101f757806370a082311461020a57600080fd5b80631249c58b116100de5780631249c58b1461018d57806318160ddd146101a357806323b872dd146101ab5780632f745c59146101be57600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e366004610fa4565b610271565b60405190151581526020015b60405180910390f35b61014061029c565b60405161012f9190611011565b61016061015b366004611024565b61032e565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611059565b610357565b005b610195610366565b60405190815260200161012f565b600854610195565b61018b6101b9366004611083565b61039d565b6101956101cc366004611059565b61042d565b61018b6101df366004611083565b610492565b6101956101f2366004611024565b6104b2565b610160610205366004611024565b61050b565b6101956102183660046110bf565b610516565b61014061055e565b61018b6102333660046110da565b61056d565b61018b61024636600461112c565b610578565b610140610259366004611024565b61058f565b61012361026c366004611208565b610604565b60006001600160e01b0319821663780e9d6360e01b1480610296575061029682610632565b92915050565b6060600080546102ab9061123b565b80601f01602080910402602001604051908101604052809291908181526020018280546102d79061123b565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b600061033982610682565b506000828152600460205260409020546001600160a01b0316610296565b6103628282336106bb565b5050565b600061037433600c546106c8565b600c80549060006103848361128b565b91905055506001600c5461039891906112a4565b905090565b6001600160a01b0382166103cc57604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d983833361072d565b9050836001600160a01b0316816001600160a01b031614610427576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103c3565b50505050565b600061043883610516565b82106104695760405163295f44f760e21b81526001600160a01b0384166004820152602481018390526044016103c3565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6104ad83838360405180602001604052806000815250610578565b505050565b60006104bd60085490565b82106104e65760405163295f44f760e21b815260006004820152602481018390526044016103c3565b600882815481106104f9576104f96112b7565b90600052602060002001549050919050565b600061029682610682565b60006001600160a01b038216610542576040516322718ad960e21b8152600060048201526024016103c3565b506001600160a01b031660009081526003602052604090205490565b6060600180546102ab9061123b565b610362338383610802565b61058384848461039d565b610427848484846108a1565b606061059a82610682565b5060006105b260408051602081019091526000815290565b905060008151116105d257604051806020016040528060008152506105fd565b806105dc846109ca565b6040516020016105ed9291906112cd565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061066357506001600160e01b03198216635b5e139f60e01b145b8061029657506301ffc9a760e01b6001600160e01b0319831614610296565b6000818152600260205260408120546001600160a01b03168061029657604051637e27328960e01b8152600481018490526024016103c3565b6104ad8383836001610a5d565b6001600160a01b0382166106f257604051633250574960e11b8152600060048201526024016103c3565b60006107008383600061072d565b90506001600160a01b038116156104ad576040516339e3563760e11b8152600060048201526024016103c3565b60008061073b858585610b63565b90506001600160a01b0381166107985761079384600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6107bb565b846001600160a01b0316816001600160a01b0316146107bb576107bb8185610c5c565b6001600160a01b0385166107d7576107d284610ced565b6107fa565b846001600160a01b0316816001600160a01b0316146107fa576107fa8585610d9c565b949350505050565b6001600160a01b03821661083457604051630b61174360e31b81526001600160a01b03831660048201526024016103c3565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561042757604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906108e39033908890879087906004016112fc565b6020604051808303816000875af192505050801561091e575060408051601f3d908101601f1916820190925261091b91810190611339565b60015b610987573d80801561094c576040519150601f19603f3d011682016040523d82523d6000602084013e610951565b606091505b50805160000361097f57604051633250574960e11b81526001600160a01b03851660048201526024016103c3565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146109c357604051633250574960e11b81526001600160a01b03851660048201526024016103c3565b5050505050565b606060006109d783610dec565b600101905060008167ffffffffffffffff8111156109f7576109f7611116565b6040519080825280601f01601f191660200182016040528015610a21576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a2b57509392505050565b8080610a7157506001600160a01b03821615155b15610b33576000610a8184610682565b90506001600160a01b03831615801590610aad5750826001600160a01b0316816001600160a01b031614155b8015610ac05750610abe8184610604565b155b15610ae95760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016103c3565b8115610b315783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152600260205260408120546001600160a01b0390811690831615610b9057610b90818486610ec4565b6001600160a01b03811615610bce57610bad600085600080610a5d565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610bfd576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000610c6783610516565b600083815260076020526040902054909150808214610cba576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090610cff906001906112a4565b60008381526009602052604081205460088054939450909284908110610d2757610d276112b7565b906000526020600020015490508060088381548110610d4857610d486112b7565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480610d8057610d80611356565b6001900381819060005260206000200160009055905550505050565b60006001610da984610516565b610db391906112a4565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e2b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e57576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e7557662386f26fc10000830492506010015b6305f5e1008310610e8d576305f5e100830492506008015b6127108310610ea157612710830492506004015b60648310610eb3576064830492506002015b600a83106102965760010192915050565b610ecf838383610f28565b6104ad576001600160a01b038316610efd57604051637e27328960e01b8152600481018290526024016103c3565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103c3565b60006001600160a01b038316158015906107fa5750826001600160a01b0316846001600160a01b03161480610f625750610f628484610604565b806107fa5750506000908152600460205260409020546001600160a01b03908116911614919050565b6001600160e01b031981168114610fa157600080fd5b50565b600060208284031215610fb657600080fd5b81356105fd81610f8b565b60005b83811015610fdc578181015183820152602001610fc4565b50506000910152565b60008151808452610ffd816020860160208601610fc1565b601f01601f19169290920160200192915050565b6020815260006105fd6020830184610fe5565b60006020828403121561103657600080fd5b5035919050565b80356001600160a01b038116811461105457600080fd5b919050565b6000806040838503121561106c57600080fd5b6110758361103d565b946020939093013593505050565b60008060006060848603121561109857600080fd5b6110a18461103d565b92506110af6020850161103d565b9150604084013590509250925092565b6000602082840312156110d157600080fd5b6105fd8261103d565b600080604083850312156110ed57600080fd5b6110f68361103d565b91506020830135801515811461110b57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561114257600080fd5b61114b8561103d565b93506111596020860161103d565b925060408501359150606085013567ffffffffffffffff8082111561117d57600080fd5b818701915087601f83011261119157600080fd5b8135818111156111a3576111a3611116565b604051601f8201601f19908116603f011681019083821181831017156111cb576111cb611116565b816040528281528a60208487010111156111e457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561121b57600080fd5b6112248361103d565b91506112326020840161103d565b90509250929050565b600181811c9082168061124f57607f821691505b60208210810361126f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60006001820161129d5761129d611275565b5060010190565b8181038181111561029657610296611275565b634e487b7160e01b600052603260045260246000fd5b600083516112df818460208801610fc1565b8351908301906112f3818360208801610fc1565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061132f90830184610fe5565b9695505050505050565b60006020828403121561134b57600080fd5b81516105fd81610f8b565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d5fba44d4b6fb6df7aa49225050945d80086f599c4c4362ecb9343d59457471a64736f6c63430008140033