[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "_mintDay", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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" } ], "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": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "NFTRedeemed", "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": "tokenId", "type": "uint256" } ], "name": "checkNftRedeemed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "", "type": "address" } ], "name": "hasMinted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "isRedeemable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintDay", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "owner", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "redeem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561000f575f5ffd5b5060405161158838038061158883398101604081905261002e91610199565b3384845f61003c83826102b6565b50600161004982826102b6565b5050506001600160a01b03811661007957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610082816100ab565b506008829055600b805460ff19166001179055600d6100a182826102b6565b5050505050610370565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261011f575f5ffd5b81516001600160401b03811115610138576101386100fc565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610166576101666100fc565b60405281815283820160200185101561017d575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f608085870312156101ac575f5ffd5b84516001600160401b038111156101c1575f5ffd5b6101cd87828801610110565b602087015190955090506001600160401b038111156101ea575f5ffd5b6101f687828801610110565b60408701516060880151919550935090506001600160401b0381111561021a575f5ffd5b61022687828801610110565b91505092959194509250565b600181811c9082168061024657607f821691505b60208210810361026457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102b157805f5260205f20601f840160051c8101602085101561028f5750805b601f840160051c820191505b818110156102ae575f815560010161029b565b50505b505050565b81516001600160401b038111156102cf576102cf6100fc565b6102e3816102dd8454610232565b8461026a565b6020601f821160018114610315575f83156102fe5750848201515b5f19600385901b1c1916600184901b1784556102ae565b5f84815260208120601f198516915b828110156103445787850151825560209485019460019092019101610324565b508482101561036157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b61120b8061037d5f395ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c806370a08231116100bf578063b88d4fde11610079578063b88d4fde146102c1578063c87b56dd146102d4578063db006a75146102e7578063e985e9c5146102fa578063edc007441461030d578063f2fde38b14610334575f5ffd5b806370a082311461026d578063715018a6146102805780638da5cb5b1461028857806395d89b4114610299578063a22cb465146102a1578063af920582146102b4575f5ffd5b806332ece5ba1161011057806332ece5ba146101dc57806338e21cce146101f357806342842e0e146102155780636352211e14610228578063666e1b391461023b5780636a6278421461025a575f5ffd5b806301ffc9a71461014c57806306fdde0314610174578063081812fc14610189578063095ea7b3146101b457806323b872dd146101c9575b5f5ffd5b61015f61015a366004610ec2565b610347565b60405190151581526020015b60405180910390f35b61017c610398565b60405161016b9190610f12565b61019c610197366004610f24565b610427565b6040516001600160a01b03909116815260200161016b565b6101c76101c2366004610f51565b61044e565b005b6101c76101d7366004610f79565b61045d565b6101e560085481565b60405190815260200161016b565b61015f610201366004610fb3565b60096020525f908152604090205460ff1681565b6101c7610223366004610f79565b6104eb565b61019c610236366004610f24565b61050a565b6101e5610249366004610fb3565b600a6020525f908152604090205481565b6101e5610268366004610fb3565b610514565b6101e561027b366004610fb3565b61064c565b6101c7610691565b6006546001600160a01b031661019c565b61017c6106a4565b6101c76102af366004610fcc565b6106b3565b600b5461015f9060ff1681565b6101c76102cf366004611019565b6106be565b61017c6102e2366004610f24565b6106d6565b6101c76102f5366004610f24565b610772565b61015f6103083660046110f6565b61086b565b61015f61031b366004610f24565b5f908152600c602052604090205460ff16151560011490565b6101c7610342366004610fb3565b610898565b5f6001600160e01b031982166380ac58cd60e01b148061037757506001600160e01b03198216635b5e139f60e01b145b8061039257506301ffc9a760e01b6001600160e01b03198316145b92915050565b60605f80546103a690611127565b80601f01602080910402602001604051908101604052809291908181526020018280546103d290611127565b801561041d5780601f106103f45761010080835404028352916020019161041d565b820191905f5260205f20905b81548152906001019060200180831161040057829003601f168201915b5050505050905090565b5f610431826108d5565b505f828152600460205260409020546001600160a01b0316610392565b61045982823361090d565b5050565b6001600160a01b03821661048b57604051633250574960e11b81525f60048201526024015b60405180910390fd5b5f61049783833361091a565b9050836001600160a01b0316816001600160a01b0316146104e5576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610482565b50505050565b61050583838360405180602001604052805f8152506106be565b505050565b5f610392826108d5565b5f61051d610a0c565b6001600160a01b0382165f9081526009602052604090205460ff16156105905760405162461bcd60e51b815260206004820152602260248201527f416c7265616479206d696e74656420666f72207468697320636f6c6c6563746960448201526137b760f11b6064820152608401610482565b60085442101580156105b057506008546105ad906201518061115f565b42105b6105f15760405162461bcd60e51b81526020600482015260126024820152714e6f74206d696e7461626c6520746f64617960701b6044820152606401610482565b6105ff600780546001019055565b5f61060960075490565b90506106158382610a39565b6001600160a01b0383165f908152600960209081526040808320805460ff19166001179055600a909152902081905590505b919050565b5f6001600160a01b038216610676576040516322718ad960e21b81525f6004820152602401610482565b506001600160a01b03165f9081526003602052604090205490565b610699610a0c565b6106a25f610a52565b565b6060600180546103a690611127565b610459338383610aa3565b6106c984848461045d565b6104e53385858585610b41565b60606106e1826108d5565b50600d80546106ef90611127565b80601f016020809104026020016040519081016040528092919081815260200182805461071b90611127565b80156107665780601f1061073d57610100808354040283529160200191610766565b820191905f5260205f20905b81548152906001019060200180831161074957829003601f168201915b50505050509050919050565b600b5460ff166107c45760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e206973206e6f7420617661696c61626c6500000000006044820152606401610482565b336107ce8261050a565b6001600160a01b0316146108145760405162461bcd60e51b815260206004820152600d60248201526c2737ba103a34329037bbb732b960991b6044820152606401610482565b5f818152600c602052604090819020805460ff191660011790555133907f14c9b4d4f4cc58cdc10083ad4d08288a39df874bbf3e4e0846f3fd1352d48c87906108609084815260200190565b60405180910390a250565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b6108a0610a0c565b6001600160a01b0381166108c957604051631e4fbdf760e01b81525f6004820152602401610482565b6108d281610a52565b50565b5f818152600260205260408120546001600160a01b03168061039257604051637e27328960e01b815260048101849052602401610482565b6105058383836001610c69565b5f828152600260205260408120546001600160a01b039081169083161561094657610946818486610d6d565b6001600160a01b03811615610980576109615f855f5f610c69565b6001600160a01b0381165f90815260036020526040902080545f190190555b6001600160a01b038516156109ae576001600160a01b0385165f908152600360205260409020805460010190555b5f8481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6006546001600160a01b031633146106a25760405163118cdaa760e01b8152336004820152602401610482565b610459828260405180602001604052805f815250610dd1565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216610ad557604051630b61174360e31b81526001600160a01b0383166004820152602401610482565b6001600160a01b038381165f81815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b15610c6257604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610b8390889088908790879060040161117e565b6020604051808303815f875af1925050508015610bbd575060408051601f3d908101601f19168201909252610bba918101906111ba565b60015b610c24573d808015610bea576040519150601f19603f3d011682016040523d82523d5f602084013e610bef565b606091505b5080515f03610c1c57604051633250574960e11b81526001600160a01b0385166004820152602401610482565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610c6057604051633250574960e11b81526001600160a01b0385166004820152602401610482565b505b5050505050565b8080610c7d57506001600160a01b03821615155b15610d3e575f610c8c846108d5565b90506001600160a01b03831615801590610cb85750826001600160a01b0316816001600160a01b031614155b8015610ccb5750610cc9818461086b565b155b15610cf45760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610482565b8115610d3c5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50505f90815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d78838383610de8565b610505576001600160a01b038316610da657604051637e27328960e01b815260048101829052602401610482565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610482565b610ddb8383610e4c565b610505335f858585610b41565b5f6001600160a01b03831615801590610e445750826001600160a01b0316846001600160a01b03161480610e215750610e21848461086b565b80610e4457505f828152600460205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b038216610e7557604051633250574960e11b81525f6004820152602401610482565b5f610e8183835f61091a565b90506001600160a01b03811615610505576040516339e3563760e11b81525f6004820152602401610482565b6001600160e01b0319811681146108d2575f5ffd5b5f60208284031215610ed2575f5ffd5b8135610edd81610ead565b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610edd6020830184610ee4565b5f60208284031215610f34575f5ffd5b5035919050565b80356001600160a01b0381168114610647575f5ffd5b5f5f60408385031215610f62575f5ffd5b610f6b83610f3b565b946020939093013593505050565b5f5f5f60608486031215610f8b575f5ffd5b610f9484610f3b565b9250610fa260208501610f3b565b929592945050506040919091013590565b5f60208284031215610fc3575f5ffd5b610edd82610f3b565b5f5f60408385031215610fdd575f5ffd5b610fe683610f3b565b915060208301358015158114610ffa575f5ffd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f5f6080858703121561102c575f5ffd5b61103585610f3b565b935061104360208601610f3b565b925060408501359150606085013567ffffffffffffffff811115611065575f5ffd5b8501601f81018713611075575f5ffd5b803567ffffffffffffffff81111561108f5761108f611005565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156110be576110be611005565b6040528181528282016020018910156110d5575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b5f5f60408385031215611107575f5ffd5b61111083610f3b565b915061111e60208401610f3b565b90509250929050565b600181811c9082168061113b57607f821691505b60208210810361115957634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561039257634e487b7160e01b5f52601160045260245ffd5b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906111b090830184610ee4565b9695505050505050565b5f602082840312156111ca575f5ffd5b8151610edd81610ead56fea2646970667358221220bc5e89a40ac72cb65614951877d4d3a83be5f7b79161774617dd16d2d4ba541764736f6c634300081c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000006750ed0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000010534143415f584d41535f323032345f3500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d534143415f584d41535f323435000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d534666564c414d6a666a644e736f47727046564666724b5661596566757054663633523843365945593173760000000000000000000000