[ { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_buterinTower", "type": "address" } ], "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": "buterinTower", "type": "address" } ], "name": "ButerinTowerUpdated", "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": "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": [], "name": "TOTAL_CODERS", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "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": [], "name": "buterinTower", "outputs": [ { "internalType": "contract IButerinTower", "name": "", "type": "address" } ], "stateMutability": "view", "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": "_account", "type": "address" } ], "name": "isMintAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMinted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "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": "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": "address", "name": "_buterinTower", "type": "address" } ], "name": "updateButerinTower", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "updateUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162001cfc38038062001cfc833981016040819052620000349162000251565b81836200004181620001ba565b506001600160a01b0381166200007257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6200007d81620001cc565b506001600160a01b038216620000d65760405162461bcd60e51b815260206004820181905260248201527f4f776e65722063616e6e6f7420626520746865207a65726f2061646472657373604482015260640162000069565b6000835111620001295760405162461bcd60e51b815260206004820152601360248201527f5552492063616e6e6f7420626520656d70747900000000000000000000000000604482015260640162000069565b6001600160a01b038116620001915760405162461bcd60e51b815260206004820152602760248201527f4275746572696e546f7765722063616e6e6f7420626520746865207a65726f206044820152666164647265737360c81b606482015260840162000069565b600480546001600160a01b0319166001600160a01b039290921691909117905550620004a89050565b6002620001c88282620003dc565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200024c57600080fd5b919050565b6000806000606084860312156200026757600080fd5b83516001600160401b03808211156200027f57600080fd5b818601915086601f8301126200029457600080fd5b815181811115620002a957620002a96200021e565b604051601f8201601f19908116603f01168101908382118183101715620002d457620002d46200021e565b81604052828152602093508984848701011115620002f157600080fd5b600091505b82821015620003155784820184015181830185015290830190620002f6565b60008484830101528097505050506200033081870162000234565b93505050620003426040850162000234565b90509250925092565b600181811c908216806200036057607f821691505b6020821081036200038157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d7576000816000526020600020601f850160051c81016020861015620003b25750805b601f850160051c820191505b81811015620003d357828155600101620003be565b5050505b505050565b81516001600160401b03811115620003f857620003f86200021e565b62000410816200040984546200034b565b8462000387565b602080601f8311600181146200044857600084156200042f5750858301515b600019600386901b1c1916600185901b178555620003d3565b600085815260208120601f198616915b82811015620004795788860151825594840194600190910190840162000458565b5085821015620004985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61184480620004b86000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c8063715018a6116100a2578063de58622211610071578063de58622214610262578063e985e9c514610275578063f242432a14610288578063f2fde38b1461029b578063f9f2a7ce146102ae57600080fd5b8063715018a6146102235780638d54a7ca1461022b5780638da5cb5b1461023e578063a22cb4651461024f57600080fd5b80634e1273f4116100e95780634e1273f414610198578063570b3c6a146101b8578063621c507a146101cb5780636a627842146101e55780636dc751e4146101f857600080fd5b8062fdd58e1461011a57806301ffc9a7146101405780630e89341c146101635780632eb2c2d614610183575b600080fd5b61012d610128366004610fd1565b6102d1565b6040519081526020015b60405180910390f35b61015361014e366004611011565b6102f9565b6040519015158152602001610137565b610176610171366004611035565b610349565b6040516101379190611094565b6101966101913660046111f9565b6103dd565b005b6101ab6101a63660046112a3565b610449565b604051610137919061139f565b6101966101c63660046113b2565b610516565b6101d3602881565b60405160ff9091168152602001610137565b6101966101f3366004611403565b610571565b60045461020b906001600160a01b031681565b6040516001600160a01b039091168152602001610137565b610196610655565b610196610239366004611403565b610669565b6003546001600160a01b031661020b565b61019661025d36600461141e565b610721565b610153610270366004611403565b610730565b61015361028336600461145a565b610806565b61019661029636600461148d565b610834565b6101966102a9366004611403565b610893565b6101536102bc366004611403565b60056020526000908152604090205460ff1681565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061032a57506001600160e01b031982166303a24d0760e21b145b806102f357506301ffc9a760e01b6001600160e01b03198316146102f3565b606060028054610358906114f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610384906114f2565b80156103d15780601f106103a6576101008083540402835291602001916103d1565b820191906000526020600020905b8154815290600101906020018083116103b457829003601f168201915b50505050509050919050565b336001600160a01b03861681148015906103fe57506103fc8682610806565b155b156104345760405163711bec9160e11b81526001600160a01b038083166004830152871660248201526044015b60405180910390fd5b61044186868686866108ce565b505050505050565b6060815183511461047a5781518351604051635b05999160e01b81526004810192909252602482015260440161042b565b6000835167ffffffffffffffff811115610496576104966110a7565b6040519080825280602002602001820160405280156104bf578160200160208202803683370190505b50905060005b845181101561050e576020808202860101516104e9906020808402870101516102d1565b8282815181106104fb576104fb61152c565b60209081029190910101526001016104c5565b509392505050565b61051e610935565b60008151116105655760405162461bcd60e51b81526020600482015260136024820152725552492063616e6e6f7420626520656d70747960681b604482015260640161042b565b61056e81610962565b50565b61057a81610730565b6105b95760405162461bcd60e51b815260206004820152601060248201526f135a5b9d081b9bdd08185b1b1bddd95960821b604482015260640161042b565b6001600160a01b03811660009081526005602052604090205460ff16156106135760405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481b5a5b9d195960921b604482015260640161042b565b6001600160a01b0381166000908152600560209081526040808320805460ff19166001908117909155815192830190915282825261056e92849290919061096e565b61065d610935565b61066760006109cb565b565b610671610935565b6001600160a01b0381166106d75760405162461bcd60e51b815260206004820152602760248201527f4275746572696e546f7765722063616e6e6f7420626520746865207a65726f206044820152666164647265737360c81b606482015260840161042b565b600480546001600160a01b0319166001600160a01b0383169081179091556040517fb25e836cc6ba03542396af890f9be24cd1a04af6ebc09edc0f495fa4646cf69490600090a250565b61072c338383610a1d565b5050565b6004805460405163fe97e3f160e01b81526001600160a01b03848116938201939093526000928392169063fe97e3f19060240161010060405180830381865afa158015610781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a59190611542565b90506000805b60088160ff1610156107e557828160ff16600881106107cc576107cc61152c565b60200201516107db90836115e7565b91506001016107ab565b5060271960ff8216016107fc575060019392505050565b5060009392505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b336001600160a01b038616811480159061085557506108538682610806565b155b156108865760405163711bec9160e11b81526001600160a01b0380831660048301528716602482015260440161042b565b6104418686868686610ab3565b61089b610935565b6001600160a01b0381166108c557604051631e4fbdf760e01b81526000600482015260240161042b565b61056e816109cb565b6001600160a01b0384166108f857604051632bfa23e760e11b81526000600482015260240161042b565b6001600160a01b03851661092157604051626a0d4560e21b81526000600482015260240161042b565b61092e8585858585610b41565b5050505050565b6003546001600160a01b031633146106675760405163118cdaa760e01b815233600482015260240161042b565b600261072c828261164d565b6001600160a01b03841661099857604051632bfa23e760e11b81526000600482015260240161042b565b60408051600180825260208201869052818301908152606082018590526080820190925290610441600087848487610b41565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610a465760405162ced3e160e81b81526000600482015260240161042b565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416610add57604051632bfa23e760e11b81526000600482015260240161042b565b6001600160a01b038516610b0657604051626a0d4560e21b81526000600482015260240161042b565b60408051600180825260208201869052818301908152606082018590526080820190925290610b388787848487610b41565b50505050505050565b610b4d85858585610b94565b6001600160a01b0384161561092e5782513390600103610b865760208481015190840151610b7f838989858589610da8565b5050610441565b610441818787878787610ecc565b8051825114610bc35781518151604051635b05999160e01b81526004810192909252602482015260440161042b565b3360005b8351811015610cc9576020818102858101820151908501909101516001600160a01b03881615610c7a576000828152602081815260408083206001600160a01b038c16845290915290205481811015610c53576040516303dee4c560e01b81526001600160a01b038a16600482015260248101829052604481018390526064810184905260840161042b565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615610cbf576000828152602081815260408083206001600160a01b038b16845290915281208054839290610cb990849061170d565b90915550505b5050600101610bc7565b508251600103610d4a5760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051610d3b929190918252602082015260400190565b60405180910390a4505061092e565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610d99929190611720565b60405180910390a45050505050565b6001600160a01b0384163b156104415760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610dec908990899088908890889060040161174e565b6020604051808303816000875af1925050508015610e27575060408051601f3d908101601f19168201909252610e2491810190611793565b60015b610e90573d808015610e55576040519150601f19603f3d011682016040523d82523d6000602084013e610e5a565b606091505b508051600003610e8857604051632bfa23e760e11b81526001600160a01b038616600482015260240161042b565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610b3857604051632bfa23e760e11b81526001600160a01b038616600482015260240161042b565b6001600160a01b0384163b156104415760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610f1090899089908890889088906004016117b0565b6020604051808303816000875af1925050508015610f4b575060408051601f3d908101601f19168201909252610f4891810190611793565b60015b610f79573d808015610e55576040519150601f19603f3d011682016040523d82523d6000602084013e610e5a565b6001600160e01b0319811663bc197c8160e01b14610b3857604051632bfa23e760e11b81526001600160a01b038616600482015260240161042b565b80356001600160a01b0381168114610fcc57600080fd5b919050565b60008060408385031215610fe457600080fd5b610fed83610fb5565b946020939093013593505050565b6001600160e01b03198116811461056e57600080fd5b60006020828403121561102357600080fd5b813561102e81610ffb565b9392505050565b60006020828403121561104757600080fd5b5035919050565b6000815180845260005b8181101561107457602081850181015186830182015201611058565b506000602082860101526020601f19601f83011685010191505092915050565b60208152600061102e602083018461104e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156110e6576110e66110a7565b604052919050565b600067ffffffffffffffff821115611108576111086110a7565b5060051b60200190565b600082601f83011261112357600080fd5b81356020611138611133836110ee565b6110bd565b8083825260208201915060208460051b87010193508684111561115a57600080fd5b602086015b84811015611176578035835291830191830161115f565b509695505050505050565b600067ffffffffffffffff83111561119b5761119b6110a7565b6111ae601f8401601f19166020016110bd565b90508281528383830111156111c257600080fd5b828260208301376000602084830101529392505050565b600082601f8301126111ea57600080fd5b61102e83833560208501611181565b600080600080600060a0868803121561121157600080fd5b61121a86610fb5565b945061122860208701610fb5565b9350604086013567ffffffffffffffff8082111561124557600080fd5b61125189838a01611112565b9450606088013591508082111561126757600080fd5b61127389838a01611112565b9350608088013591508082111561128957600080fd5b50611296888289016111d9565b9150509295509295909350565b600080604083850312156112b657600080fd5b823567ffffffffffffffff808211156112ce57600080fd5b818501915085601f8301126112e257600080fd5b813560206112f2611133836110ee565b82815260059290921b8401810191818101908984111561131157600080fd5b948201945b838610156113365761132786610fb5565b82529482019490820190611316565b9650508601359250508082111561134c57600080fd5b5061135985828601611112565b9150509250929050565b60008151808452602080850194506020840160005b8381101561139457815187529582019590820190600101611378565b509495945050505050565b60208152600061102e6020830184611363565b6000602082840312156113c457600080fd5b813567ffffffffffffffff8111156113db57600080fd5b8201601f810184136113ec57600080fd5b6113fb84823560208401611181565b949350505050565b60006020828403121561141557600080fd5b61102e82610fb5565b6000806040838503121561143157600080fd5b61143a83610fb5565b91506020830135801515811461144f57600080fd5b809150509250929050565b6000806040838503121561146d57600080fd5b61147683610fb5565b915061148460208401610fb5565b90509250929050565b600080600080600060a086880312156114a557600080fd5b6114ae86610fb5565b94506114bc60208701610fb5565b93506040860135925060608601359150608086013567ffffffffffffffff8111156114e657600080fd5b611296888289016111d9565b600181811c9082168061150657607f821691505b60208210810361152657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600061010080838503121561155657600080fd5b83601f84011261156557600080fd5b60405181810181811067ffffffffffffffff82111715611587576115876110a7565b60405290830190808583111561159c57600080fd5b845b838110156115c657805160ff811681146115b85760008081fd5b82526020918201910161159e565b509095945050505050565b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156102f3576102f36115d1565b601f821115611648576000816000526020600020601f850160051c810160208610156116295750805b601f850160051c820191505b8181101561044157828155600101611635565b505050565b815167ffffffffffffffff811115611667576116676110a7565b61167b8161167584546114f2565b84611600565b602080601f8311600181146116b057600084156116985750858301515b600019600386901b1c1916600185901b178555610441565b600085815260208120601f198616915b828110156116df578886015182559484019460019091019084016116c0565b50858210156116fd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156102f3576102f36115d1565b6040815260006117336040830185611363565b82810360208401526117458185611363565b95945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906117889083018461104e565b979650505050505050565b6000602082840312156117a557600080fd5b815161102e81610ffb565b6001600160a01b0386811682528516602082015260a0604082018190526000906117dc90830186611363565b82810360608401526117ee8186611363565b90508281036080840152611802818561104e565b9897505050505050505056fea2646970667358221220637024929c9f86e5374b62c7317e78fc9c302d138b4dbe5e37b6724cabaa24d364736f6c634300081700330000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f94aee7bd5bdfc249746edf0c6fc0f5e3c1da226000000000000000000000000b4cc91df75709a2493366fc75b1ba0a83b6f1801000000000000000000000000000000000000000000000000000000000000001768747470733a2f2f697066732e696f2f697066732f516d000000000000000000