[ { "inputs": [ { "internalType": "address", "name": "_b0x", "type": "address" }, { "internalType": "address", "name": "_renderer", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OnlyB0xContract", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "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": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "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": "payable", "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": "burn", "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": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "internalBurn", "outputs": [], "stateMutability": "nonpayable", "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": "recipient", "type": "address" } ], "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": "payable", "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": "payable", "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": "_renderer", "type": "address" } ], "name": "setRenderer", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "triggerBatchMetadataUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "triggerMetadataUpdate", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162001aa438038062001aa4833981016040819052620000349162000142565b6040518060400160405280600681526020016542307837323160d01b8152506040518060400160405280600381526020016208460b60eb1b81525081600290816200008091906200021f565b5060036200008f82826200021f565b50506000805550620000a133620000d3565b600a80546001600160a01b039384166001600160a01b03199182161790915560098054929093169116179055620002eb565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200013d57600080fd5b919050565b600080604083850312156200015657600080fd5b620001618362000125565b9150620001716020840162000125565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001a557607f821691505b602082108103620001c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021a57600081815260208120601f850160051c81016020861015620001f55750805b601f850160051c820191505b81811015620002165782815560010162000201565b5050505b505050565b81516001600160401b038111156200023b576200023b6200017a565b62000253816200024c845462000190565b84620001cc565b602080601f8311600181146200028b5760008415620002725750858301515b600019600386901b1c1916600185901b17855562000216565b600085815260208120601f198616915b82811015620002bc578886015182559484019460019091019084016200029b565b5085821015620002db5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6117a980620002fb6000396000f3fe6080604052600436106101405760003560e01c80636352211e116100b657806395d89b411161006f57806395d89b4114610365578063a22cb4651461037a578063b88d4fde1461039a578063c87b56dd146103ad578063e985e9c5146103cd578063f2fde38b1461041657600080fd5b80636352211e146102b25780636a627842146102d257806370a08231146102f2578063715018a6146103125780638da5cb5b14610327578063902c878e1461034557600080fd5b806323b872dd1161010857806323b872dd1461020c5780632f3885601461021f57806342842e0e1461023f57806342966c681461025257806356d2ec1b1461027257806356d3163d1461029257600080fd5b806301ffc9a71461014557806306fdde031461017a578063081812fc1461019c578063095ea7b3146101d457806318160ddd146101e9575b600080fd5b34801561015157600080fd5b50610165610160366004610ff7565b610436565b60405190151581526020015b60405180910390f35b34801561018657600080fd5b5061018f610471565b6040516101719190611064565b3480156101a857600080fd5b506101bc6101b7366004611077565b610503565b6040516001600160a01b039091168152602001610171565b6101e76101e23660046110a5565b610547565b005b3480156101f557600080fd5b50600154600054035b604051908152602001610171565b6101e761021a3660046110d1565b6105e7565b34801561022b57600080fd5b506101e761023a366004611077565b610777565b6101e761024d3660046110d1565b6107ad565b34801561025e57600080fd5b506101e761026d366004611077565b6107cd565b34801561027e57600080fd5b506101e761028d366004611077565b6107db565b34801561029e57600080fd5b506101e76102ad366004611112565b61080f565b3480156102be57600080fd5b506101bc6102cd366004611077565b610839565b3480156102de57600080fd5b506101e76102ed366004611112565b610844565b3480156102fe57600080fd5b506101fe61030d366004611112565b61087a565b34801561031e57600080fd5b506101e76108c9565b34801561033357600080fd5b506008546001600160a01b03166101bc565b34801561035157600080fd5b506101e761036036600461112f565b6108dd565b34801561037157600080fd5b5061018f61091a565b34801561038657600080fd5b506101e761039536600461115f565b610929565b6101e76103a8366004611231565b610995565b3480156103b957600080fd5b5061018f6103c8366004611077565b6109df565b3480156103d957600080fd5b506101656103e83660046112e0565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561042257600080fd5b506101e7610431366004611112565b610ad5565b600061044182610b50565b80610450575061045082610b50565b8061046b57506001600160e01b03198216632483248360e11b145b92915050565b6060600280546104809061130e565b80601f01602080910402602001604051908101604052809291908181526020018280546104ac9061130e565b80156104f95780601f106104ce576101008083540402835291602001916104f9565b820191906000526020600020905b8154815290600101906020018083116104dc57829003601f168201915b5050505050905090565b600061050e82610b9e565b61052b576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061055282610839565b9050336001600160a01b0382161461058b5761056e81336103e8565b61058b576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60006105f282610bc5565b9050836001600160a01b0316816001600160a01b0316146106255760405162a1148160e81b815260040160405180910390fd5b600082815260066020526040902080546106518187335b6001600160a01b039081169116811491141790565b61067c5761065f86336103e8565b61067c57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166106a357604051633a954ecd60e21b815260040160405180910390fd5b80156106ae57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b841690036107405760018401600081815260046020526040812054900361073e57600054811461073e5760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b031660008051602061175483398151915260405160405180910390a4505050505050565b6040518181527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a150565b6107c883838360405180602001604052806000815250610995565b505050565b6107d8816001610c2c565b50565b600a546001600160a01b0316331461080657604051636ec9fe2360e01b815260040160405180910390fd5b6107d881610d64565b610817610d6f565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600061046b82610bc5565b600a546001600160a01b0316331461086f57604051636ec9fe2360e01b815260040160405180910390fd5b6107d8816001610dc9565b60006001600160a01b0382166108a3576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6108d1610d6f565b6108db6000610ea3565b565b60408051838152602081018390527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910160405180910390a15050565b6060600380546104809061130e565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109a08484846105e7565b6001600160a01b0383163b156109d9576109bc84848484610ef5565b6109d9576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b600a546040516313f3f72d60e31b8152600481018390526060916000916001600160a01b0390911690639f9fb96890602401600060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a569190810190611437565b600954604051632553ce0560e01b81529192506001600160a01b031690632553ce0590610a8990869085906004016115cb565b600060405180830381865afa158015610aa6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ace91908101906116ce565b9392505050565b610add610d6f565b6001600160a01b038116610b475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6107d881610ea3565b60006301ffc9a760e01b6001600160e01b031983161480610b8157506380ac58cd60e01b6001600160e01b03198316145b8061046b5750506001600160e01b031916635b5e139f60e01b1490565b600080548210801561046b575050600090815260046020526040902054600160e01b161590565b600081600054811015610c135760008181526004602052604081205490600160e01b82169003610c11575b80600003610ace575060001901600081815260046020526040902054610bf0565b505b604051636f96cda160e11b815260040160405180910390fd5b6000610c3783610bc5565b905080600080610c5586600090815260066020526040902080549091565b915091508415610c9557610c6a81843361063c565b610c9557610c7883336103e8565b610c9557604051632ce44b5f60e11b815260040160405180910390fd5b8015610ca057600082555b6001600160a01b038316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b17600087815260046020526040812091909155600160e11b85169003610d2e57600186016000818152600460205260408120549003610d2c576000548114610d2c5760008181526004602052604090208590555b505b60405186906000906001600160a01b03861690600080516020611754833981519152908390a45050600180548101905550505050565b6107d8816000610c2c565b6008546001600160a01b031633146108db5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b3e565b6000805490829003610dee5760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083906000805160206117548339815191528180a4600183015b818114610e795780836000600080516020611754833981519152600080a4600101610e53565b5081600003610e9a57604051622e076360e81b815260040160405180910390fd5b60005550505050565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290610f2a903390899088908890600401611703565b6020604051808303816000875af1925050508015610f65575060408051601f3d908101601f19168201909252610f6291810190611736565b60015b610fc3573d808015610f93576040519150601f19603f3d011682016040523d82523d6000602084013e610f98565b606091505b508051600003610fbb576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6001600160e01b0319811681146107d857600080fd5b60006020828403121561100957600080fd5b8135610ace81610fe1565b60005b8381101561102f578181015183820152602001611017565b50506000910152565b60008151808452611050816020860160208601611014565b601f01601f19169290920160200192915050565b602081526000610ace6020830184611038565b60006020828403121561108957600080fd5b5035919050565b6001600160a01b03811681146107d857600080fd5b600080604083850312156110b857600080fd5b82356110c381611090565b946020939093013593505050565b6000806000606084860312156110e657600080fd5b83356110f181611090565b9250602084013561110181611090565b929592945050506040919091013590565b60006020828403121561112457600080fd5b8135610ace81611090565b6000806040838503121561114257600080fd5b50508035926020909101359150565b80151581146107d857600080fd5b6000806040838503121561117257600080fd5b823561117d81611090565b9150602083013561118d81611151565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051610160810167ffffffffffffffff811182821017156111d2576111d2611198565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561120157611201611198565b604052919050565b600067ffffffffffffffff82111561122357611223611198565b50601f01601f191660200190565b6000806000806080858703121561124757600080fd5b843561125281611090565b9350602085013561126281611090565b925060408501359150606085013567ffffffffffffffff81111561128557600080fd5b8501601f8101871361129657600080fd5b80356112a96112a482611209565b6111d8565b8181528860208385010111156112be57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080604083850312156112f357600080fd5b82356112fe81611090565b9150602083013561118d81611090565b600181811c9082168061132257607f821691505b60208210810361134257634e487b7160e01b600052602260045260246000fd5b50919050565b805161135381611090565b919050565b805161135381611151565b600082601f83011261137457600080fd5b8151602067ffffffffffffffff82111561139057611390611198565b8160051b61139f8282016111d8565b92835284810182019282810190878511156113b957600080fd5b83870192505b848310156113d8578251825291830191908301906113bf565b979650505050505050565b80516004811061135357600080fd5b600082601f83011261140357600080fd5b81516114116112a482611209565b81815284602083860101111561142657600080fd5b610fd9826020830160208701611014565b60006020828403121561144957600080fd5b815167ffffffffffffffff8082111561146157600080fd5b90830190610160828603121561147657600080fd5b61147e6111ae565b8251815261148e60208401611348565b602082015261149f60408401611348565b6040820152606083015160608201526114ba60808401611358565b60808201526114cb60a08401611358565b60a08201526114dc60c08401611348565b60c082015260e0830151828111156114f357600080fd5b6114ff87828601611363565b60e083015250610100808401518381111561151957600080fd5b61152588828701611363565b8284015250506101206115398185016113e3565b90820152610140838101518381111561155157600080fd5b61155d888287016113f2565b918301919091525095945050505050565b600081518084526020808501945080840160005b8381101561159e57815187529582019590820190600101611582565b509495945050505050565b600481106115c757634e487b7160e01b600052602160045260246000fd5b9052565b8281526040602082015281516040820152600060208301516115f860608401826001600160a01b03169052565b5060408301516001600160a01b038116608084015250606083015160a0830152608083015180151560c08401525060a083015180151560e08401525060c0830151610100611650818501836001600160a01b03169052565b60e0850151915061016061012081818701526116706101a087018561156e565b9350828701519250603f19610140818887030181890152611691868661156e565b95508289015194506116a5848901866115a9565b8089015194505080878603016101808801525050506116c48282611038565b9695505050505050565b6000602082840312156116e057600080fd5b815167ffffffffffffffff8111156116f757600080fd5b610fd9848285016113f2565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906116c490830184611038565b60006020828403121561174857600080fd5b8151610ace81610fe156feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200353773ce76e48ef0fb352268d0595c7ad4b0d89d83d499819958baa1615bbb064736f6c63430008110033000000000000000000000000c6ab90506a697dc202f223a32270d8d7391828680000000000000000000000006851ebabab3ca41cdd066eb5f7936da109fdfd86