[ { "inputs": [ { "internalType": "address", "name": "paymentToken", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApprovalToCurrentOwner", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "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": false, "internalType": "uint256", "name": "batchStartIndex", "type": "uint256" } ], "name": "NewBatchCreated", "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": [], "name": "_currentBatch", "outputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "bool", "name": "active", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_feeCollector", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_paymentToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "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": "address", "name": "", "type": "address" } ], "name": "freeParticipant", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "freeParticipantControllers", "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": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "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": "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": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "bool", "name": "active", "type": "bool" } ], "name": "setCurrentBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "active", "type": "bool" } ], "name": "setCurrentBatchActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "collector", "type": "address" } ], "name": "setFeeCollector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "participant", "type": "address" }, { "internalType": "bool", "name": "free", "type": "bool" } ], "name": "setFreeParticipant", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "freeParticipantController", "type": "address" }, { "internalType": "bool", "name": "allow", "type": "bool" } ], "name": "setFreeParticipantController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "setPaymentToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxFee", "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": [], "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" } ]
60806040523480156200001157600080fd5b5060405162001bac38038062001bac83398101604081905262000034916200012d565b6040518060400160405280600881526020016710551308141b1bdd60c21b815250604051806040016040528060048152602001631c10551360e21b815250816002908162000083919062000204565b50600362000092828262000204565b50506000805550620000a433620000db565b600980546001600160a01b039092166001600160a01b0319928316179055600a8054909116331781556000600e55600f55620002d0565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200014057600080fd5b81516001600160a01b03811681146200015857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018a57607f821691505b602082108103620001ab57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ff57600081815260208120601f850160051c81016020861015620001da5750805b601f850160051c820191505b81811015620001fb57828155600101620001e6565b5050505b505050565b81516001600160401b038111156200022057620002206200015f565b620002388162000231845462000175565b84620001b1565b602080601f831160018114620002705760008415620002575750858301515b600019600386901b1c1916600185901b178555620001fb565b600085815260208120601f198616915b82811015620002a15788860151825594840194600190910190840162000280565b5085821015620002c05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6118cc80620002e06000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638da5cb5b11610104578063af981602116100a2578063e985e9c511610071578063e985e9c514610418578063f05d16f71461042b578063f2fde38b1461043e578063f77a4ba01461045157600080fd5b8063af981602146103ad578063b88d4fde146103df578063c380213e146103f2578063c87b56dd1461040557600080fd5b8063a0712d68116100de578063a0712d6814610361578063a22cb46514610374578063a42dce8014610387578063ad8bc99b1461039a57600080fd5b80638da5cb5b1461033557806395d89b41146103465780639c8c247c1461034e57600080fd5b806342842e0e1161017c5780636a326ab11161014b5780636a326ab1146102f457806370a0823114610307578063715018a61461031a5780638ca126231461032257600080fd5b806342842e0e146102a857806354ef2fad146102bb5780635a2f5963146102ce5780636352211e146102e157600080fd5b806308a7595b116101b857806308a7595b14610247578063095ea7b31461026a57806318160ddd1461027f57806323b872dd1461029557600080fd5b806301ffc9a7146101df57806306fdde0314610207578063081812fc1461021c575b600080fd5b6101f26101ed36600461145f565b610474565b60405190151581526020015b60405180910390f35b61020f6104c6565b6040516101fe91906114c2565b61022f61022a3660046114d5565b610558565b6040516001600160a01b0390911681526020016101fe565b6101f261025536600461150a565b60106020526000908152604090205460ff1681565b61027d610278366004611525565b61059c565b005b600154600054035b6040519081526020016101fe565b61027d6102a336600461154f565b610629565b61027d6102b636600461154f565b610634565b600a5461022f906001600160a01b031681565b60095461022f906001600160a01b031681565b61022f6102ef3660046114d5565b61064f565b61027d61030236600461150a565b610661565b61028761031536600461150a565b61068b565b61027d6106da565b61027d610330366004611599565b6106ee565b6008546001600160a01b031661022f565b61020f610709565b61027d61035c3660046115b6565b610718565b61027d61036f3660046114d5565b61074b565b61027d6103823660046115b6565b610935565b61027d61039536600461150a565b6109ca565b61027d6103a83660046115ed565b6109f4565b600b54600c54600d546103c292919060ff1683565b6040805193845260208401929092521515908201526060016101fe565b61027d6103ed36600461163c565b610a9f565b61027d6104003660046115b6565b610af0565b61020f6104133660046114d5565b610b23565b6101f2610426366004611718565b610b7e565b61027d6104393660046114d5565b610bac565b61027d61044c36600461150a565b610bb9565b6101f261045f36600461150a565b60116020526000908152604090205460ff1681565b60006001600160e01b031982166380ac58cd60e01b14806104a557506001600160e01b03198216635b5e139f60e01b145b806104c057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600280546104d59061174b565b80601f01602080910402602001604051908101604052809291908181526020018280546105019061174b565b801561054e5780601f106105235761010080835404028352916020019161054e565b820191906000526020600020905b81548152906001019060200180831161053157829003601f168201915b5050505050905090565b600061056382610c2f565b610580576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b60006105a78261064f565b9050806001600160a01b0316836001600160a01b0316036105db5760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b038216148015906105fb57506105f98133610b7e565b155b15610619576040516367d9dca160e11b815260040160405180910390fd5b610624838383610c5a565b505050565b610624838383610cb6565b61062483838360405180602001604052806000815250610a9f565b600061065a82610ecc565b5192915050565b610669610fe8565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166106b4576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6106e2610fe8565b6106ec6000611042565b565b6106f6610fe8565b600d805460ff1916911515919091179055565b6060600380546104d59061174b565b610720610fe8565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b600b5461079f5760405162461bcd60e51b815260206004820152601b60248201527f4e6f206d6f726520746f6b656e73206c65667420746f206d696e74000000000060448201526064015b60405180910390fd5b600d5460ff166107f15760405162461bcd60e51b815260206004820152601b60248201527f43757272656e74204261746368206973206e6f742061637469766500000000006044820152606401610796565b6000811161084c5760405162461bcd60e51b815260206004820152602260248201527f5175616e74697479206d7573742062652067726561746572207468616e207a65604482015261726f60f01b6064820152608401610796565b600f548111158061086757506008546001600160a01b031633145b6108b35760405162461bcd60e51b815260206004820152601860248201527f4d61782062757920616d6f756e74206c696d69742068697400000000000000006044820152606401610796565b3360009081526011602052604090205460ff16610917576108d43382611094565b6109175760405162461bcd60e51b81526020600482015260146024820152734d75737420706179206d696e74696e672066656560601b6044820152606401610796565b600b5461092590829061179b565b600b556109323382611146565b50565b336001600160a01b0383160361095e5760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109d2610fe8565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6109fc610fe8565b600b5415610a4c5760405162461bcd60e51b815260206004820152601b60248201527f43757272656e74206261746368206e6f742066696e69736865642e00000000006044820152606401610796565b600b839055600d805460ff1916821515179055600c8290556000546040519081527f23dc39e904e08378c98e99cea57ef2312460ae8a28311d26e28f4bd49d75c7569060200160405180910390a1505050565b610aaa848484610cb6565b6001600160a01b0383163b15158015610acc5750610aca84848484611164565b155b15610aea576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b610af8610fe8565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6060610b2e82610c2f565b610b4b57604051630a14c4b560e41b815260040160405180910390fd5b6000610b5561124f565b90508051600003610b755760405180602001604052806000815250610b77565b805b9392505050565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b610bb4610fe8565b600e55565b610bc1610fe8565b6001600160a01b038116610c265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610796565b61093281611042565b60008054821080156104c0575050600090815260046020526040902054600160e01b900460ff161590565b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000610cc182610ecc565b80519091506000906001600160a01b0316336001600160a01b03161480610cef57508151610cef9033610b7e565b80610d0a575033610cff84610558565b6001600160a01b0316145b905080610d2a57604051632ce44b5f60e11b815260040160405180910390fd5b846001600160a01b031682600001516001600160a01b031614610d5f5760405162a1148160e81b815260040160405180910390fd5b6001600160a01b038416610d8657604051633a954ecd60e21b815260040160405180910390fd5b610d966000848460000151610c5a565b6001600160a01b038581166000908152600560209081526040808320805467ffffffffffffffff1980821667ffffffffffffffff92831660001901831617909255898616808652838620805493841693831660019081018416949094179055898652600490945282852080546001600160e01b031916909417600160a01b429092169190910217909255908601808352912054909116610e8257600054811015610e82578251600082815260046020908152604090912080549186015167ffffffffffffffff16600160a01b026001600160e01b03199092166001600160a01b03909316929092171790555b5082846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b604080516060810182526000808252602082018190529181019190915281600054811015610fcf57600081815260046020908152604091829020825160608101845290546001600160a01b0381168252600160a01b810467ffffffffffffffff1692820192909252600160e01b90910460ff16151591810182905290610fcd5780516001600160a01b031615610f63579392505050565b5060001901600081815260046020908152604091829020825160608101845290546001600160a01b038116808352600160a01b820467ffffffffffffffff1693830193909352600160e01b900460ff1615159281019290925215610fc8579392505050565b610f63565b505b604051636f96cda160e11b815260040160405180910390fd5b6008546001600160a01b031633146106ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610796565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600954600a54600c546000926001600160a01b039081169283926323b872dd92889216906110c39088906117ae565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b91906117c5565b506001949350505050565b61116082826040518060200160405280600081525061126f565b5050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906111999033908990889088906004016117e2565b6020604051808303816000875af19250505080156111d4575060408051601f3d908101601f191682019092526111d19181019061181f565b60015b611232573d808015611202576040519150601f19603f3d011682016040523d82523d6000602084013e611207565b606091505b50805160000361122a576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60606040518060800160405280605a815260200161183d605a9139905090565b61062483838360016000546001600160a01b0385166112a057604051622e076360e81b815260040160405180910390fd5b836000036112c15760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b038516600081815260056020908152604080832080546fffffffffffffffffffffffffffffffff19811667ffffffffffffffff8083168c0181169182176801000000000000000067ffffffffffffffff1990941690921783900481168c01811690920217909155858452600490925290912080546001600160e01b031916909217600160a01b42909216919091021790558080850183801561137357506001600160a01b0387163b15155b156113fb575b60405182906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46113c46000888480600101955088611164565b6113e1576040516368d2bf6b60e11b815260040160405180910390fd5b8082036113795782600054146113f657600080fd5b611440565b5b6040516001830192906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a48082036113fc575b50600055610ec5565b6001600160e01b03198116811461093257600080fd5b60006020828403121561147157600080fd5b8135610b7781611449565b6000815180845260005b818110156114a257602081850181015186830182015201611486565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610b77602083018461147c565b6000602082840312156114e757600080fd5b5035919050565b80356001600160a01b038116811461150557600080fd5b919050565b60006020828403121561151c57600080fd5b610b77826114ee565b6000806040838503121561153857600080fd5b611541836114ee565b946020939093013593505050565b60008060006060848603121561156457600080fd5b61156d846114ee565b925061157b602085016114ee565b9150604084013590509250925092565b801515811461093257600080fd5b6000602082840312156115ab57600080fd5b8135610b778161158b565b600080604083850312156115c957600080fd5b6115d2836114ee565b915060208301356115e28161158b565b809150509250929050565b60008060006060848603121561160257600080fd5b8335925060208401359150604084013561161b8161158b565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561165257600080fd5b61165b856114ee565b9350611669602086016114ee565b925060408501359150606085013567ffffffffffffffff8082111561168d57600080fd5b818701915087601f8301126116a157600080fd5b8135818111156116b3576116b3611626565b604051601f8201601f19908116603f011681019083821181831017156116db576116db611626565b816040528281528a60208487010111156116f457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561172b57600080fd5b611734836114ee565b9150611742602084016114ee565b90509250929050565b600181811c9082168061175f57607f821691505b60208210810361177f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104c0576104c0611785565b80820281158282048414176104c0576104c0611785565b6000602082840312156117d757600080fd5b8151610b778161158b565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906118159083018461147c565b9695505050505050565b60006020828403121561183157600080fd5b8151610b778161144956fe68747470733a2f2f736964656b69636b66696e616e63652e6d7970696e6174612e636c6f75642f697066732f516d534737537344674d6b585241387953577864657239745159524b6758765431446d6839735374714d31687547a26469706673582212207d5bf863343b994d3c78c362228260903fe681b7136fcd58c1be0a06392244a764736f6c6343000814003300000000000000000000000019597836e83cd093d568fcaebebb8638ed37e4c5