[ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "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" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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": "_tokenIds", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "burnNft", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "isOwnerOf", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "mintBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "mintNft", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "returnArrayWithNfts", "outputs": [ { "internalType": "uint256[]", "name": "indexArray_", "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": "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": "address", "name": "_stakeContract", "type": "address" } ], "name": "setStakeContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakeContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "id", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c0604052600d60809081526c29ba30b5b2b2102222a228292d60991b60a052600b906200002e90826200030d565b5060408051808201909152600481526314d1115160e21b6020820152600c906200005990826200030d565b503480156200006757600080fd5b5060405162001bc038038062001bc08339810160408190526200008a91620003d9565b80600b80546200009a906200027e565b80601f0160208091040260200160405190810160405280929190818152602001828054620000c8906200027e565b8015620001195780601f10620000ed5761010080835404028352916020019162000119565b820191906000526020600020905b815481529060010190602001808311620000fb57829003601f168201915b5050505050600c80546200012d906200027e565b80601f01602080910402602001604051908101604052809291908181526020018280546200015b906200027e565b8015620001ac5780601f106200018057610100808354040283529160200191620001ac565b820191906000526020600020905b8154815290600101906020018083116200018e57829003601f168201915b50505050508160009081620001c291906200030d565b506001620001d182826200030d565b5050506001600160a01b0381166200020357604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200020e8162000216565b50506200040b565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029357607f821691505b602082108103620002b457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030857600081815260208120601f850160051c81016020861015620002e35750805b601f850160051c820191505b818110156200030457828155600101620002ef565b5050505b505050565b81516001600160401b0381111562000329576200032962000268565b62000341816200033a84546200027e565b84620002ba565b602080601f831160018114620003795760008415620003605750858301515b600019600386901b1c1916600185901b17855562000304565b600085815260208120601f198616915b82811015620003aa5788860151825594840194600190910190840162000389565b5085821015620003c95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620003ec57600080fd5b81516001600160a01b03811681146200040457600080fd5b9392505050565b6117a5806200041b6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063bbdc080911610097578063d1194e2b11610071578063d1194e2b14610383578063e4623c1b14610396578063e985e9c5146103a9578063f2fde38b146103bc57600080fd5b8063bbdc08091461033d578063c5b8f7721461035d578063c87b56dd1461037057600080fd5b80638da5cb5b116100d35780638da5cb5b1461030357806395d89b4114610314578063a22cb4651461031c578063b88d4fde1461032f57600080fd5b806370a08231146102d5578063715018a6146102e857806375ceb341146102f057600080fd5b806323b872dd1161016657806342842e0e1161014057806342842e0e146102895780634f6ccce71461029c578063509484d5146102af5780636352211e146102c257600080fd5b806323b872dd146102505780632f745c59146102635780633d5efefe1461027657600080fd5b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b5780631a1862271461023d575b600080fd5b6101c16101bc36600461120d565b6103cf565b60405190151581526020015b60405180910390f35b6101de6103fa565b6040516101cd9190611262565b6101fe6101f9366004611295565b61048c565b6040516001600160a01b0390911681526020016101cd565b6102296102243660046112ca565b6104b5565b005b6008545b6040519081526020016101cd565b600d546101fe906001600160a01b031681565b61022961025e3660046112f4565b6104c4565b61022f6102713660046112ca565b610537565b610229610284366004611295565b61059c565b6102296102973660046112f4565b6105d2565b61022f6102aa366004611295565b6105f2565b6102296102bd366004611330565b61064b565b6101fe6102d0366004611295565b610675565b61022f6102e3366004611330565b610680565b6102296106c8565b6102296102fe366004611412565b6106dc565b600a546001600160a01b03166101fe565b6101de610747565b61022961032a366004611460565b610756565b61022961025e36600461149c565b61035061034b366004611330565b610761565b6040516101cd919061155c565b6101c161036b3660046112ca565b6107bb565b6101de61037e366004611295565b6107e1565b6102296103913660046112ca565b61082c565b6102296103a43660046115a0565b610860565b6101c16103b73660046115d5565b6108ca565b6102296103ca366004611330565b6108f8565b60006001600160e01b0319821663780e9d6360e01b14806103f457506103f482610933565b92915050565b60606000805461040990611608565b80601f016020809104026020016040519081016040528092919081815260200182805461043590611608565b80156104825780601f1061045757610100808354040283529160200191610482565b820191906000526020600020905b81548152906001019060200180831161046557829003601f168201915b5050505050905090565b600061049782610983565b506000828152600460205260409020546001600160a01b03166103f4565b6104c08282336109bc565b5050565b60405162461bcd60e51b815260206004820152603b60248201527f5553415374616b65526563656970744e46543a2054686973206465706f73697460448201527f204e46542063616e6e6f74206265207472616e736665727265642e000000000060648201526084015b60405180910390fd5b600061054283610680565b82106105735760405163295f44f760e21b81526001600160a01b03841660048201526024810183905260440161052e565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600d546001600160a01b031633146105c65760405162461bcd60e51b815260040161052e90611642565b6105cf816109c9565b50565b6105ed838383604051806020016040528060008152506104c4565b505050565b60006105fd60085490565b82106106265760405163295f44f760e21b8152600060048201526024810183905260440161052e565b6008828154811061063957610639611696565b90600052602060002001549050919050565b610653610a04565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b60006103f482610983565b60006001600160a01b0382166106ac576040516322718ad960e21b81526000600482015260240161052e565b506001600160a01b031660009081526003602052604090205490565b6106d0610a04565b6106da6000610a31565b565b600d546001600160a01b031633146107065760405162461bcd60e51b815260040161052e90611642565b60005b81518110156105ed576107358383838151811061072857610728611696565b6020026020010151610a83565b8061073f816116c2565b915050610709565b60606001805461040990611608565b6104c0338383610ae8565b6060600061076e83610680565b905060005b818110156107b4576107858482610537565b83828151811061079757610797611696565b6020908102919091010152806107ac816116c2565b915050610773565b5050919050565b6000826001600160a01b03166107d083610675565b6001600160a01b0316149392505050565b60606040518060600160405280602c8152602001611744602c913961080583610b87565b6040516020016108169291906116db565b6040516020818303038152906040529050919050565b600d546001600160a01b031633146108565760405162461bcd60e51b815260040161052e90611642565b6104c08282610a83565b600d546001600160a01b0316331461088a5760405162461bcd60e51b815260040161052e90611642565b60005b81518110156104c0576108b88282815181106108ab576108ab611696565b60200260200101516109c9565b806108c2816116c2565b91505061088d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610900610a04565b6001600160a01b03811661092a57604051631e4fbdf760e01b81526000600482015260240161052e565b6105cf81610a31565b60006001600160e01b031982166380ac58cd60e01b148061096457506001600160e01b03198216635b5e139f60e01b145b806103f457506301ffc9a760e01b6001600160e01b03198316146103f4565b6000818152600260205260408120546001600160a01b0316806103f457604051637e27328960e01b81526004810184905260240161052e565b6105ed8383836001610c1a565b60006109d86000836000610d20565b90506001600160a01b0381166104c057604051637e27328960e01b81526004810183905260240161052e565b600a546001600160a01b031633146106da5760405163118cdaa760e01b815233600482015260240161052e565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610aad57604051633250574960e11b81526000600482015260240161052e565b6000610abb83836000610d20565b90506001600160a01b038116156105ed576040516339e3563760e11b81526000600482015260240161052e565b6001600160a01b038216610b1a57604051630b61174360e31b81526001600160a01b038316600482015260240161052e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606000610b9483610df5565b600101905060008167ffffffffffffffff811115610bb457610bb461134b565b6040519080825280601f01601f191660200182016040528015610bde576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610be857509392505050565b8080610c2e57506001600160a01b03821615155b15610cf0576000610c3e84610983565b90506001600160a01b03831615801590610c6a5750826001600160a01b0316816001600160a01b031614155b8015610c7d5750610c7b81846108ca565b155b15610ca65760405163a9fbf51f60e01b81526001600160a01b038416600482015260240161052e565b8115610cee5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610d2e858585610ecd565b90506001600160a01b038116610d8b57610d8684600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b610dae565b846001600160a01b0316816001600160a01b031614610dae57610dae8185610fc6565b6001600160a01b038516610dca57610dc584611047565b610ded565b846001600160a01b0316816001600160a01b031614610ded57610ded85856110f6565b949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610e345772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610e60576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610e7e57662386f26fc10000830492506010015b6305f5e1008310610e96576305f5e100830492506008015b6127108310610eaa57612710830492506004015b60648310610ebc576064830492506002015b600a83106103f45760010192915050565b6000828152600260205260408120546001600160a01b0390811690831615610efa57610efa818486611146565b6001600160a01b03811615610f3857610f17600085600080610c1a565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610f67576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000610fd183610680565b6000838152600760209081526040808320546001600160a01b038816845260069092529091209192509081831461102857600083815260208281526040808320548584528184208190558352600790915290208290555b6000938452600760209081526040808620869055938552525081205550565b6008546000906110599060019061171a565b6000838152600960205260408120546008805493945090928490811061108157611081611696565b9060005260206000200154905080600883815481106110a2576110a2611696565b60009182526020808320909101929092558281526009909152604080822084905585825281205560088054806110da576110da61172d565b6001900381819060005260206000200160009055905550505050565b6000600161110384610680565b61110d919061171a565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6111518383836111aa565b6105ed576001600160a01b03831661117f57604051637e27328960e01b81526004810182905260240161052e565b60405163177e802f60e01b81526001600160a01b03831660048201526024810182905260440161052e565b60006001600160a01b03831615801590610ded5750826001600160a01b0316846001600160a01b031614806111e457506111e484846108ca565b80610ded5750506000908152600460205260409020546001600160a01b03908116911614919050565b60006020828403121561121f57600080fd5b81356001600160e01b03198116811461123757600080fd5b9392505050565b60005b83811015611259578181015183820152602001611241565b50506000910152565b602081526000825180602084015261128181604085016020870161123e565b601f01601f19169190910160400192915050565b6000602082840312156112a757600080fd5b5035919050565b80356001600160a01b03811681146112c557600080fd5b919050565b600080604083850312156112dd57600080fd5b6112e6836112ae565b946020939093013593505050565b60008060006060848603121561130957600080fd5b611312846112ae565b9250611320602085016112ae565b9150604084013590509250925092565b60006020828403121561134257600080fd5b611237826112ae565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561138a5761138a61134b565b604052919050565b600082601f8301126113a357600080fd5b8135602067ffffffffffffffff8211156113bf576113bf61134b565b8160051b6113ce828201611361565b92835284810182019282810190878511156113e857600080fd5b83870192505b84831015611407578235825291830191908301906113ee565b979650505050505050565b6000806040838503121561142557600080fd5b61142e836112ae565b9150602083013567ffffffffffffffff81111561144a57600080fd5b61145685828601611392565b9150509250929050565b6000806040838503121561147357600080fd5b61147c836112ae565b91506020830135801515811461149157600080fd5b809150509250929050565b600080600080608085870312156114b257600080fd5b6114bb856112ae565b935060206114ca8187016112ae565b935060408601359250606086013567ffffffffffffffff808211156114ee57600080fd5b818801915088601f83011261150257600080fd5b8135818111156115145761151461134b565b611526601f8201601f19168501611361565b9150808252898482850101111561153c57600080fd5b808484018584013760008482840101525080935050505092959194509250565b6020808252825182820181905260009190848201906040850190845b8181101561159457835183529284019291840191600101611578565b50909695505050505050565b6000602082840312156115b257600080fd5b813567ffffffffffffffff8111156115c957600080fd5b610ded84828501611392565b600080604083850312156115e857600080fd5b6115f1836112ae565b91506115ff602084016112ae565b90509250929050565b600181811c9082168061161c57607f821691505b60208210810361163c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526034908201527f5553415374616b65526563656970744e46543a204f6e6c79207374616b6520636040820152731bdb9d1c9858dd0818d85b881b5a5b9d0813919560621b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016116d4576116d46116ac565b5060010190565b600083516116ed81846020880161123e565b83519083019061170181836020880161123e565b64173539b7b760d91b9101908152600501949350505050565b818103818111156103f4576103f46116ac565b634e487b7160e01b600052603160045260246000fdfe68747470733a2f2f64656470727a2d313737362d7374616b65642e73332e616d617a6f6e6177732e636f6d2fa2646970667358221220353ead1aefadf45a1cc42be008e9eb8cbb22380bb8434c74386cc38db5e6579564736f6c63430008150033000000000000000000000000095cb2dd19ad95dba033889c2b0965e6fe357309