[ { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "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": "account", "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": false, "internalType": "address", "name": "burner", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetBurner", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetMinter", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBurner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "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": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "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": "burner", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setBurner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "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": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561001057600080fd5b50604051611b1b380380611b1b83398101604081905261002f91610123565b338161003a816100ab565b506001600160a01b03811661006957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b610072816100bb565b50503360009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055610336565b60026100b78282610278565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561013557600080fd5b81516001600160401b0381111561014b57600080fd5b8201601f8101841361015c57600080fd5b80516001600160401b038111156101755761017561010d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101a3576101a361010d565b6040528181528282016020018610156101bb57600080fd5b60005b828110156101da576020818501810151838301820152016101be565b50600091810160200191909152949350505050565b600181811c9082168061020357607f821691505b60208210810361022357634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561027357806000526020600020601f840160051c810160208510156102505750805b601f840160051c820191505b81811015610270576000815560010161025c565b50505b505050565b81516001600160401b038111156102915761029161010d565b6102a58161029f84546101ef565b84610229565b6020601f8211600181146102d957600083156102c15750848201515b600019600385901b1c1916600184901b178455610270565b600084815260208120601f198516915b8281101561030957878501518255602094850194600190920191016102e9565b50848210156103275786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6117d6806103456000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c8063715018a6116100a2578063cf456ae711610071578063cf456ae71461026d578063e985e9c514610280578063f242432a14610293578063f2fde38b146102a6578063f5298aca146102b957600080fd5b8063715018a6146102145780638da5cb5b1461021c578063a22cb46514610237578063aa271e1a1461024a57600080fd5b80630e89341c116100e95780630e89341c1461018b578063156e29f6146101ab5780632eb2c2d6146101be5780634334614a146101d15780634e1273f4146101f457600080fd5b8062fdd58e1461011a57806301ffc9a71461014057806302fe5305146101635780630d895ee114610178575b600080fd5b61012d610128366004610fdc565b6102cc565b6040519081526020015b60405180910390f35b61015361014e36600461101c565b6102f4565b6040519015158152602001610137565b6101766101713660046110e3565b610344565b005b610176610186366004611134565b610358565b61019e610199366004611170565b610427565b60405161013791906111cf565b6101766101b93660046111e2565b6104bb565b6101766101cc3660046112c6565b610532565b6101536101df36600461137c565b60056020526000908152604090205460ff1681565b610207610202366004611397565b610599565b604051610137919061149c565b610176610666565b6003546040516001600160a01b039091168152602001610137565b610176610245366004611134565b61067a565b61015361025836600461137c565b60046020526000908152604090205460ff1681565b61017661027b366004611134565b610689565b61015361028e3660046114af565b61074b565b6101766102a13660046114e2565b610779565b6101766102b436600461137c565b6107d8565b6101766102c73660046111e2565b610813565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061032557506001600160e01b031982166303a24d0760e21b145b806102ee57506301ffc9a760e01b6001600160e01b03198316146102ee565b61034c610875565b610355816108a2565b50565b610360610875565b6001600160a01b03821660009081526005602052604090205481151560ff9091161515036103c35760405162461bcd60e51b815260206004820152600b60248201526a105b1c9958591e481cd95d60aa1b60448201526064015b60405180910390fd5b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f0bdf09706f801a2715bf57b2317eb8608c34792ad040988dc6e5f0c3687a9bac91015b60405180910390a15050565b6060600280546104369061153b565b80601f01602080910402602001604051908101604052809291908181526020018280546104629061153b565b80156104af5780601f10610484576101008083540402835291602001916104af565b820191906000526020600020905b81548152906001019060200180831161049257829003601f168201915b50505050509050919050565b3360009081526004602052604090205460ff166105125760405162461bcd60e51b815260206004820152601560248201527413db9b1e481b5a5b9d195c9cc818d85b881b5a5b9d605a1b60448201526064016103ba565b61052d838383604051806020016040528060008152506108ae565b505050565b336001600160a01b03861681148015906105535750610551868261074b565b155b156105845760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016103ba565b610591868686868661090b565b505050505050565b606081518351146105ca5781518351604051635b05999160e01b8152600481019290925260248201526044016103ba565b6000835167ffffffffffffffff8111156105e6576105e6611040565b60405190808252806020026020018201604052801561060f578160200160208202803683370190505b50905060005b845181101561065e57602080820286010151610639906020808402870101516102cc565b82828151811061064b5761064b611575565b6020908102919091010152600101610615565b509392505050565b61066e610875565b6106786000610972565b565b6106853383836109c4565b5050565b610691610875565b6001600160a01b03821660009081526004602052604090205481151560ff9091161515036106ef5760405162461bcd60e51b815260206004820152600b60248201526a105b1c9958591e481cd95d60aa1b60448201526064016103ba565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f1f96bc657d385fd83da973a43f2ad969e6d96b6779b779571a7306db7ca1cd00910161041b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b038616811480159061079a5750610798868261074b565b155b156107cb5760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044016103ba565b6105918686868686610a5a565b6107e0610875565b6001600160a01b03811661080a57604051631e4fbdf760e01b8152600060048201526024016103ba565b61035581610972565b3360009081526005602052604090205460ff1661086a5760405162461bcd60e51b815260206004820152601560248201527427b7363c90313ab93732b9399031b0b710313ab93760591b60448201526064016103ba565b61052d838383610ae8565b6003546001600160a01b031633146106785760405163118cdaa760e01b81523360048201526024016103ba565b600261068582826115d2565b6001600160a01b0384166108d857604051632bfa23e760e11b8152600060048201526024016103ba565b60408051600180825260208201869052818301908152606082018590526080820190925290610591600087848487610b4c565b6001600160a01b03841661093557604051632bfa23e760e11b8152600060048201526024016103ba565b6001600160a01b03851661095e57604051626a0d4560e21b8152600060048201526024016103ba565b61096b8585858585610b4c565b5050505050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166109ed5760405162ced3e160e81b8152600060048201526024016103ba565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416610a8457604051632bfa23e760e11b8152600060048201526024016103ba565b6001600160a01b038516610aad57604051626a0d4560e21b8152600060048201526024016103ba565b60408051600180825260208201869052818301908152606082018590526080820190925290610adf8787848487610b4c565b50505050505050565b6001600160a01b038316610b1157604051626a0d4560e21b8152600060048201526024016103ba565b604080516001808252602082018590528183019081526060820184905260a0820190925260006080820181815291929161096b918791859085905b610b5885858585610b9f565b6001600160a01b0384161561096b5782513390600103610b915760208481015190840151610b8a838989858589610db3565b5050610591565b610591818787878787610ed7565b8051825114610bce5781518151604051635b05999160e01b8152600481019290925260248201526044016103ba565b3360005b8351811015610cd4576020818102858101820151908501909101516001600160a01b03881615610c85576000828152602081815260408083206001600160a01b038c16845290915290205481811015610c5e576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016103ba565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615610cca576000828152602081815260408083206001600160a01b038b16845290915281208054839290610cc4908490611691565b90915550505b5050600101610bd2565b508251600103610d555760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051610d46929190918252602082015260400190565b60405180910390a4505061096b565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610da49291906116b2565b60405180910390a45050505050565b6001600160a01b0384163b156105915760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610df790899089908890889088906004016116e0565b6020604051808303816000875af1925050508015610e32575060408051601f3d908101601f19168201909252610e2f91810190611725565b60015b610e9b573d808015610e60576040519150601f19603f3d011682016040523d82523d6000602084013e610e65565b606091505b508051600003610e9357604051632bfa23e760e11b81526001600160a01b03861660048201526024016103ba565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610adf57604051632bfa23e760e11b81526001600160a01b03861660048201526024016103ba565b6001600160a01b0384163b156105915760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610f1b9089908990889088908890600401611742565b6020604051808303816000875af1925050508015610f56575060408051601f3d908101601f19168201909252610f5391810190611725565b60015b610f84573d808015610e60576040519150601f19603f3d011682016040523d82523d6000602084013e610e65565b6001600160e01b0319811663bc197c8160e01b14610adf57604051632bfa23e760e11b81526001600160a01b03861660048201526024016103ba565b80356001600160a01b0381168114610fd757600080fd5b919050565b60008060408385031215610fef57600080fd5b610ff883610fc0565b946020939093013593505050565b6001600160e01b03198116811461035557600080fd5b60006020828403121561102e57600080fd5b813561103981611006565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561107f5761107f611040565b604052919050565b60008067ffffffffffffffff8411156110a2576110a2611040565b50601f8301601f19166020016110b781611056565b9150508281528383830111156110cc57600080fd5b828260208301376000602084830101529392505050565b6000602082840312156110f557600080fd5b813567ffffffffffffffff81111561110c57600080fd5b8201601f8101841361111d57600080fd5b61112c84823560208401611087565b949350505050565b6000806040838503121561114757600080fd5b61115083610fc0565b91506020830135801515811461116557600080fd5b809150509250929050565b60006020828403121561118257600080fd5b5035919050565b6000815180845260005b818110156111af57602081850181015186830182015201611193565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006110396020830184611189565b6000806000606084860312156111f757600080fd5b61120084610fc0565b95602085013595506040909401359392505050565b600067ffffffffffffffff82111561122f5761122f611040565b5060051b60200190565b600082601f83011261124a57600080fd5b813561125d61125882611215565b611056565b8082825260208201915060208360051b86010192508583111561127f57600080fd5b602085015b8381101561129c578035835260209283019201611284565b5095945050505050565b600082601f8301126112b757600080fd5b61103983833560208501611087565b600080600080600060a086880312156112de57600080fd5b6112e786610fc0565b94506112f560208701610fc0565b9350604086013567ffffffffffffffff81111561131157600080fd5b61131d88828901611239565b935050606086013567ffffffffffffffff81111561133a57600080fd5b61134688828901611239565b925050608086013567ffffffffffffffff81111561136357600080fd5b61136f888289016112a6565b9150509295509295909350565b60006020828403121561138e57600080fd5b61103982610fc0565b600080604083850312156113aa57600080fd5b823567ffffffffffffffff8111156113c157600080fd5b8301601f810185136113d257600080fd5b80356113e061125882611215565b8082825260208201915060208360051b85010192508783111561140257600080fd5b6020840193505b8284101561142b5761141a84610fc0565b825260209384019390910190611409565b9450505050602083013567ffffffffffffffff81111561144a57600080fd5b61145685828601611239565b9150509250929050565b600081518084526020840193506020830160005b82811015611492578151865260209586019590910190600101611474565b5093949350505050565b6020815260006110396020830184611460565b600080604083850312156114c257600080fd5b6114cb83610fc0565b91506114d960208401610fc0565b90509250929050565b600080600080600060a086880312156114fa57600080fd5b61150386610fc0565b945061151160208701610fc0565b93506040860135925060608601359150608086013567ffffffffffffffff81111561136357600080fd5b600181811c9082168061154f57607f821691505b60208210810361156f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b601f82111561052d57806000526020600020601f840160051c810160208510156115b25750805b601f840160051c820191505b8181101561096b57600081556001016115be565b815167ffffffffffffffff8111156115ec576115ec611040565b611600816115fa845461153b565b8461158b565b6020601f821160018114611634576000831561161c5750848201515b600019600385901b1c1916600184901b17845561096b565b600084815260208120601f198516915b828110156116645787850151825560209485019460019092019101611644565b50848210156116825786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b808201808211156102ee57634e487b7160e01b600052601160045260246000fd5b6040815260006116c56040830185611460565b82810360208401526116d78185611460565b95945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061171a90830184611189565b979650505050505050565b60006020828403121561173757600080fd5b815161103981611006565b6001600160a01b0386811682528516602082015260a06040820181905260009061176e90830186611460565b82810360608401526117808186611460565b905082810360808401526117948185611189565b9897505050505050505056fea2646970667358221220013121e9a0de60538d95f3a8df75454b919a294bc526cd457384308806e6456d64736f6c634300081a00330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006768747470733a2f2f616d6574687973742d6e6561742d6368696d70616e7a65652d3239392e6d7970696e6174612e636c6f75642f697066732f516d51484845685a396b71536577664d655362343370474b42425974754874544d736356786d793341736871335900000000000000000000000000000000000000000000000000