[ { "inputs": [], "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": 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": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "degreeName", "type": "string" } ], "name": "addDegree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getDegreeName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "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": "address", "name": "minter", "type": "address" } ], "name": "removeMinter", "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": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "pure", "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": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60c0604052600c60809081526b53616d706c6544656772656560a01b60a05260049061002b90826101dc565b50604080518082019091526002815261135160f21b602082015260059061005290826101dc565b5034801561005f57600080fd5b503360405180606001604052806034815260200161191c60349139610083816100db565b506001600160a01b0381166100b257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100bb816100eb565b50336000908152600760205260409020805460ff1916600117905561029a565b60026100e782826101dc565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061016757607f821691505b60208210810361018757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101d757806000526020600020601f840160051c810160208510156101b45750805b601f840160051c820191505b818110156101d457600081556001016101c0565b50505b505050565b81516001600160401b038111156101f5576101f561013d565b610209816102038454610153565b8461018d565b6020601f82116001811461023d57600083156102255750848201515b600019600385901b1c1916600184901b1784556101d4565b600084815260208120601f198516915b8281101561026d578785015182556020948501946001909201910161024d565b508482101561028b5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b611673806102a96000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c8063715018a6116100a2578063a22cb46511610071578063a22cb46514610237578063d20dfbc51461024a578063e985e9c51461025d578063f242432a14610299578063f2fde38b146102a757600080fd5b8063715018a6146101f95780638da5cb5b1461020157806395d89b411461021c578063983b2d561461022457600080fd5b80632eb2c2d6116100e95780632eb2c2d61461018b5780633092afd5146101a057806340c10f19146101b35780634e1273f4146101c65780636c5b47d2146101e657600080fd5b8062fdd58e1461011a57806301ffc9a71461014057806306fdde03146101635780630e89341c14610178575b600080fd5b61012d610128366004610e7d565b6102ba565b6040519081526020015b60405180910390f35b61015361014e366004610ebd565b6102e2565b6040519015158152602001610137565b61016b610332565b6040516101379190610f27565b61016b610186366004610f3a565b6103c0565b61019e6101993660046110a7565b61040f565b005b61019e6101ae36600461115d565b610457565b61019e6101c1366004610e7d565b610480565b6101d96101d4366004611178565b610591565b604051610137919061127d565b61019e6101f4366004611290565b61065e565b61019e6106e3565b6003546040516001600160a01b039091168152602001610137565b61016b6106f7565b61019e61023236600461115d565b610704565b61019e6102453660046112e1565b610730565b61016b610258366004610f3a565b61073b565b61015361026b36600461131d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61019e610199366004611350565b61019e6102b536600461115d565b610816565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061031357506001600160e01b031982166303a24d0760e21b145b806102dc57506301ffc9a760e01b6001600160e01b03198316146102dc565b6004805461033f906113a9565b80601f016020809104026020016040519081016040528092919081815260200182805461036b906113a9565b80156103b85780601f1061038d576101008083540402835291602001916103b8565b820191906000526020600020905b81548152906001019060200180831161039b57829003601f168201915b505050505081565b6000818152600660205260408120805460609291906103de906113a9565b9050116104065760405162461bcd60e51b81526004016103fd906113e3565b60405180910390fd5b6102dc82610854565b60405162461bcd60e51b815260206004820152601b60248201527f546f6b656e7320617265206e6f74207472616e7366657261626c65000000000060448201526064016103fd565b61045f610863565b6001600160a01b03166000908152600760205260409020805460ff19169055565b3360009081526007602052604090205460ff166104d85760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba10309036b4b73a32b960511b60448201526064016103fd565b600081815260066020526040812080546104f1906113a9565b9050116105105760405162461bcd60e51b81526004016103fd906113e3565b61051a82826102ba565b156105715760405162461bcd60e51b815260206004820152602160248201527f526563697069656e7420616c72656164792068617320746869732064656772656044820152606560f81b60648201526084016103fd565b61058d8282600160405180602001604052806000815250610890565b5050565b606081518351146105c25781518351604051635b05999160e01b8152600481019290925260248201526044016103fd565b6000835167ffffffffffffffff8111156105de576105de610f53565b604051908082528060200260200182016040528015610607578160200160208202803683370190505b50905060005b845181101561065657602080820286010151610631906020808402870101516102ba565b82828151811061064357610643611412565b602090810291909101015260010161060d565b509392505050565b610666610863565b6000828152600660205260409020805461067f906113a9565b1590506106c65760405162461bcd60e51b815260206004820152601560248201527444656772656520616c72656164792065786973747360581b60448201526064016103fd565b60008281526006602052604090206106de828261146f565b505050565b6106eb610863565b6106f560006108f5565b565b6005805461033f906113a9565b61070c610863565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b61058d338383610947565b600081815260066020526040812080546060929190610759906113a9565b9050116107785760405162461bcd60e51b81526004016103fd906113e3565b60008281526006602052604090208054610791906113a9565b80601f01602080910402602001604051908101604052809291908181526020018280546107bd906113a9565b801561080a5780601f106107df5761010080835404028352916020019161080a565b820191906000526020600020905b8154815290600101906020018083116107ed57829003601f168201915b50505050509050919050565b61081e610863565b6001600160a01b03811661084857604051631e4fbdf760e01b8152600060048201526024016103fd565b610851816108f5565b50565b606060028054610791906113a9565b6003546001600160a01b031633146106f55760405163118cdaa760e01b81523360048201526024016103fd565b6001600160a01b0384166108ba57604051632bfa23e760e11b8152600060048201526024016103fd565b604080516001808252602082018690528183019081526060820185905260808201909252906108ed6000878484876109dd565b505050505050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166109705760405162ced3e160e81b8152600060048201526024016103fd565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109e985858585610a37565b6001600160a01b03841615610a305782513390600103610a225760208481015190840151610a1b838989858589610c4b565b50506108ed565b6108ed818787878787610d78565b5050505050565b8051825114610a665781518151604051635b05999160e01b8152600481019290925260248201526044016103fd565b3360005b8351811015610b6c576020818102858101820151908501909101516001600160a01b03881615610b1d576000828152602081815260408083206001600160a01b038c16845290915290205481811015610af6576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016103fd565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615610b62576000828152602081815260408083206001600160a01b038b16845290915281208054839290610b5c90849061152e565b90915550505b5050600101610a6a565b508251600103610bed5760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051610bde929190918252602082015260400190565b60405180910390a45050610a30565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610c3c92919061154f565b60405180910390a45050505050565b6001600160a01b0384163b156108ed5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610c8f908990899088908890889060040161157d565b6020604051808303816000875af1925050508015610cca575060408051601f3d908101601f19168201909252610cc7918101906115c2565b60015b610d33573d808015610cf8576040519150601f19603f3d011682016040523d82523d6000602084013e610cfd565b606091505b508051600003610d2b57604051632bfa23e760e11b81526001600160a01b03861660048201526024016103fd565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610d6f57604051632bfa23e760e11b81526001600160a01b03861660048201526024016103fd565b50505050505050565b6001600160a01b0384163b156108ed5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610dbc90899089908890889088906004016115df565b6020604051808303816000875af1925050508015610df7575060408051601f3d908101601f19168201909252610df4918101906115c2565b60015b610e25573d808015610cf8576040519150601f19603f3d011682016040523d82523d6000602084013e610cfd565b6001600160e01b0319811663bc197c8160e01b14610d6f57604051632bfa23e760e11b81526001600160a01b03861660048201526024016103fd565b80356001600160a01b0381168114610e7857600080fd5b919050565b60008060408385031215610e9057600080fd5b610e9983610e61565b946020939093013593505050565b6001600160e01b03198116811461085157600080fd5b600060208284031215610ecf57600080fd5b8135610eda81610ea7565b9392505050565b6000815180845260005b81811015610f0757602081850181015186830182015201610eeb565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610eda6020830184610ee1565b600060208284031215610f4c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610f9257610f92610f53565b604052919050565b600067ffffffffffffffff821115610fb457610fb4610f53565b5060051b60200190565b600082601f830112610fcf57600080fd5b8135610fe2610fdd82610f9a565b610f69565b8082825260208201915060208360051b86010192508583111561100457600080fd5b602085015b83811015611021578035835260209283019201611009565b5095945050505050565b60008067ffffffffffffffff84111561104657611046610f53565b50601f8301601f191660200161105b81610f69565b91505082815283838301111561107057600080fd5b828260208301376000602084830101529392505050565b600082601f83011261109857600080fd5b610eda8383356020850161102b565b600080600080600060a086880312156110bf57600080fd5b6110c886610e61565b94506110d660208701610e61565b9350604086013567ffffffffffffffff8111156110f257600080fd5b6110fe88828901610fbe565b935050606086013567ffffffffffffffff81111561111b57600080fd5b61112788828901610fbe565b925050608086013567ffffffffffffffff81111561114457600080fd5b61115088828901611087565b9150509295509295909350565b60006020828403121561116f57600080fd5b610eda82610e61565b6000806040838503121561118b57600080fd5b823567ffffffffffffffff8111156111a257600080fd5b8301601f810185136111b357600080fd5b80356111c1610fdd82610f9a565b8082825260208201915060208360051b8501019250878311156111e357600080fd5b6020840193505b8284101561120c576111fb84610e61565b8252602093840193909101906111ea565b9450505050602083013567ffffffffffffffff81111561122b57600080fd5b61123785828601610fbe565b9150509250929050565b600081518084526020840193506020830160005b82811015611273578151865260209586019590910190600101611255565b5093949350505050565b602081526000610eda6020830184611241565b600080604083850312156112a357600080fd5b82359150602083013567ffffffffffffffff8111156112c157600080fd5b8301601f810185136112d257600080fd5b6112378582356020840161102b565b600080604083850312156112f457600080fd5b6112fd83610e61565b91506020830135801515811461131257600080fd5b809150509250929050565b6000806040838503121561133057600080fd5b61133983610e61565b915061134760208401610e61565b90509250929050565b600080600080600060a0868803121561136857600080fd5b61137186610e61565b945061137f60208701610e61565b93506040860135925060608601359150608086013567ffffffffffffffff81111561114457600080fd5b600181811c908216806113bd57607f821691505b6020821081036113dd57634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260159082015274111959dc995948191bd95cc81b9bdd08195e1a5cdd605a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b601f8211156106de57806000526020600020601f840160051c8101602085101561144f5750805b601f840160051c820191505b81811015610a30576000815560010161145b565b815167ffffffffffffffff81111561148957611489610f53565b61149d8161149784546113a9565b84611428565b6020601f8211600181146114d157600083156114b95750848201515b600019600385901b1c1916600184901b178455610a30565b600084815260208120601f198516915b8281101561150157878501518255602094850194600190920191016114e1565b508482101561151f5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b808201808211156102dc57634e487b7160e01b600052601160045260246000fd5b6040815260006115626040830185611241565b82810360208401526115748185611241565b95945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906115b790830184610ee1565b979650505050505050565b6000602082840312156115d457600080fd5b8151610eda81610ea7565b6001600160a01b0386811682528516602082015260a06040820181905260009061160b90830186611241565b828103606084015261161d8186611241565b905082810360808401526116318185610ee1565b9897505050505050505056fea2646970667358221220cd64f7cac35878e15dcaaced9e422de5ff429623ba0aa5726d0327748c079c3b64736f6c634300081a0033697066733a2f2f516d5261344167644b32483735333559583439446a6f4432457454773953676e416e35465036525a417063682f