[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "address", "name": "_admin", "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" }, { "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": "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": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": [ { "internalType": "bytes", "name": "_dayId", "type": "bytes" }, { "internalType": "address[]", "name": "_students", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amount", "type": "uint256[]" } ], "name": "batchMintForDay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "daysIdToTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "daysIdToUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "id", "type": "bytes" } ], "name": "getDayUri", "outputs": [ { "internalType": "string", "name": "_dayUri", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_daysId", "type": "bytes" } ], "name": "getTotalAttendnceSignedForDay", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "bytes", "name": "_daysId", "type": "bytes" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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": "bytes", "name": "id", "type": "bytes" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setDayUri", "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": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
6080604052600060065534801561001557600080fd5b50604051611b08380380611b088339810160408190526100349161014b565b8161003e81610082565b50600361004b858261028a565b506004610058848261028a565b50600580546001600160a01b0319166001600160a01b039290921691909117905550610348915050565b600261008e828261028a565b5050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126100b957600080fd5b81516001600160401b038111156100d2576100d2610092565b604051601f8201601f19908116603f011681016001600160401b038111828210171561010057610100610092565b60405281815283820160200185101561011857600080fd5b60005b828110156101375760208186018101518383018201520161011b565b506000918101602001919091529392505050565b6000806000806080858703121561016157600080fd5b84516001600160401b0381111561017757600080fd5b610183878288016100a8565b602087015190955090506001600160401b038111156101a157600080fd5b6101ad878288016100a8565b604087015190945090506001600160401b038111156101cb57600080fd5b6101d7878288016100a8565b606087015190935090506001600160a01b03811681146101f657600080fd5b939692955090935050565b600181811c9082168061021557607f821691505b60208210810361023557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561028557806000526020600020601f840160051c810160208510156102625750805b601f840160051c820191505b81811015610282576000815560010161026e565b50505b505050565b81516001600160401b038111156102a3576102a3610092565b6102b7816102b18454610201565b8461023b565b6020601f8211600181146102eb57600083156102d35750848201515b600019600385901b1c1916600184901b178455610282565b600084815260208120601f198516915b8281101561031b57878501518255602094850194600190920191016102fb565b50848210156103395786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6117b1806103576000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c806356de3a11116100a257806395d89b411161007157806395d89b411461025d578063a22cb46514610265578063e985e9c514610278578063f242432a146102b4578063f851a440146102c257600080fd5b806356de3a1114610211578063591f1bf7146102245780636c53d79914610237578063775ed63d1461024a57600080fd5b80631f0c687b116100e95780631f0c687b1461018b5780632eb2c2d6146101a057806339269845146101b35780634e1273f4146101de57806354242401146101fe57600080fd5b8062fdd58e1461011a57806301ffc9a71461014057806306fdde03146101635780630e89341c14610178575b600080fd5b61012d610128366004610e50565b6102ed565b6040519081526020015b60405180910390f35b61015361014e366004610e93565b610315565b6040519015158152602001610137565b61016b610365565b6040516101379190610f07565b61016b610186366004610f1a565b6103f3565b61019e610199366004610ff4565b610487565b005b61019e6101ae3660046110ff565b610524565b61012d6101c13660046111b2565b805160208183018101805160088252928201919093012091525481565b6101f16101ec366004611253565b610561565b60405161013791906112ec565b61016b61020c3660046111b2565b61062d565b61012d61021f3660046111b2565b610658565b61019e6102323660046112ff565b610715565b61016b6102453660046111b2565b61080d565b61019e610258366004611390565b610831565b61016b610899565b61019e6102733660046113e7565b6108a6565b610153610286366004611423565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61019e6101ae366004611456565b6005546102d5906001600160a01b031681565b6040516001600160a01b039091168152602001610137565b6000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061034657506001600160e01b031982166303a24d0760e21b145b8061030f57506301ffc9a760e01b6001600160e01b031983161461030f565b60038054610372906114ae565b80601f016020809104026020016040519081016040528092919081815260200182805461039e906114ae565b80156103eb5780601f106103c0576101008083540402835291602001916103eb565b820191906000526020600020905b8154815290600101906020018083116103ce57829003601f168201915b505050505081565b606060028054610402906114ae565b80601f016020809104026020016040519081016040528092919081815260200182805461042e906114ae565b801561047b5780601f106104505761010080835404028352916020019161047b565b820191906000526020600020905b81548152906001019060200180831161045e57829003601f168201915b50505050509050919050565b6005546001600160a01b031633146104ba5760405162461bcd60e51b81526004016104b1906114e8565b60405180910390fd5b6006546008836040516104cd919061150f565b908152602001604051809103902081905550806007836040516104f0919061150f565b9081526020016040518091039020908161050a9190611577565b506006805490600061051b8361164b565b91905055505050565b60405162461bcd60e51b81526020600482015260126024820152711513d2d153881254c814d3d553081095539160721b60448201526064016104b1565b606081518351146105925781518351604051635b05999160e01b8152600481019290925260248201526044016104b1565b600083516001600160401b038111156105ad576105ad610f33565b6040519080825280602002602001820160405280156105d6578160200160208202803683370190505b50905060005b845181101561062557602080820286010151610600906020808402870101516102ed565b82828151811061061257610612611664565b60209081029190910101526001016105dc565b509392505050565b606060078260405161063f919061150f565b90815260200160405180910390208054610402906114ae565b60008060088360405161066b919061150f565b90815260408051602092819003830181205460018083528284019093529350600092839290808301908036833701905050905082816000815181106106b2576106b2611664565b60209081029190910101526040805160018082528183019092526000916106ea91908160200160208202803683370190505083610561565b9050806000815181106106ff576106ff611664565b6020026020010151925082945050505050919050565b6005546001600160a01b0316331461073f5760405162461bcd60e51b81526004016104b1906114e8565b80518251146107825760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016104b1565b60005b82518110156108075760006008856040516107a0919061150f565b90815260200160405180910390205490506107fe8483815181106107c6576107c6611664565b6020026020010151828585815181106107e1576107e1611664565b6020026020010151604051806020016040528060008152506108b5565b50600101610785565b50505050565b805160208183018101805160078252928201919093012091528054610372906114ae565b6005546001600160a01b0316331461085b5760405162461bcd60e51b81526004016104b1906114e8565b600060088360405161086d919061150f565b9081526020016040518091039020549050610807848284604051806020016040528060008152506108b5565b60048054610372906114ae565b6108b133838361091a565b5050565b6001600160a01b0384166108df57604051632bfa23e760e11b8152600060048201526024016104b1565b604080516001808252602082018690528183019081526060820185905260808201909252906109126000878484876109b0565b505050505050565b6001600160a01b0382166109435760405162ced3e160e81b8152600060048201526024016104b1565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109bc85858585610a0a565b6001600160a01b03841615610a0357825133906001036109f557602084810151908401516109ee838989858589610c1e565b5050610912565b610912818787878787610d4b565b5050505050565b8051825114610a395781518151604051635b05999160e01b8152600481019290925260248201526044016104b1565b3360005b8351811015610b3f576020818102858101820151908501909101516001600160a01b03881615610af0576000828152602081815260408083206001600160a01b038c16845290915290205481811015610ac9576040516303dee4c560e01b81526001600160a01b038a1660048201526024810182905260448101839052606481018490526084016104b1565b6000838152602081815260408083206001600160a01b038d16845290915290209082900390555b6001600160a01b03871615610b35576000828152602081815260408083206001600160a01b038b16845290915281208054839290610b2f90849061167a565b90915550505b5050600101610a3d565b508251600103610bc05760208301516000906020840151909150856001600160a01b0316876001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051610bb1929190918252602082015260400190565b60405180910390a45050610a03565b836001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610c0f92919061168d565b60405180910390a45050505050565b6001600160a01b0384163b156109125760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610c6290899089908890889088906004016116bb565b6020604051808303816000875af1925050508015610c9d575060408051601f3d908101601f19168201909252610c9a91810190611700565b60015b610d06573d808015610ccb576040519150601f19603f3d011682016040523d82523d6000602084013e610cd0565b606091505b508051600003610cfe57604051632bfa23e760e11b81526001600160a01b03861660048201526024016104b1565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610d4257604051632bfa23e760e11b81526001600160a01b03861660048201526024016104b1565b50505050505050565b6001600160a01b0384163b156109125760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610d8f908990899088908890889060040161171d565b6020604051808303816000875af1925050508015610dca575060408051601f3d908101601f19168201909252610dc791810190611700565b60015b610df8573d808015610ccb576040519150601f19603f3d011682016040523d82523d6000602084013e610cd0565b6001600160e01b0319811663bc197c8160e01b14610d4257604051632bfa23e760e11b81526001600160a01b03861660048201526024016104b1565b80356001600160a01b0381168114610e4b57600080fd5b919050565b60008060408385031215610e6357600080fd5b610e6c83610e34565b946020939093013593505050565b6001600160e01b031981168114610e9057600080fd5b50565b600060208284031215610ea557600080fd5b8135610eb081610e7a565b9392505050565b60005b83811015610ed2578181015183820152602001610eba565b50506000910152565b60008151808452610ef3816020860160208601610eb7565b601f01601f19169290920160200192915050565b602081526000610eb06020830184610edb565b600060208284031215610f2c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610f7157610f71610f33565b604052919050565b6000806001600160401b03841115610f9357610f93610f33565b50601f8301601f1916602001610fa881610f49565b915050828152838383011115610fbd57600080fd5b828260208301376000602084830101529392505050565b600082601f830112610fe557600080fd5b610eb083833560208501610f79565b6000806040838503121561100757600080fd5b82356001600160401b0381111561101d57600080fd5b61102985828601610fd4565b92505060208301356001600160401b0381111561104557600080fd5b8301601f8101851361105657600080fd5b61106585823560208401610f79565b9150509250929050565b60006001600160401b0382111561108857611088610f33565b5060051b60200190565b600082601f8301126110a357600080fd5b81356110b66110b18261106f565b610f49565b8082825260208201915060208360051b8601019250858311156110d857600080fd5b602085015b838110156110f55780358352602092830192016110dd565b5095945050505050565b600080600080600060a0868803121561111757600080fd5b61112086610e34565b945061112e60208701610e34565b935060408601356001600160401b0381111561114957600080fd5b61115588828901611092565b93505060608601356001600160401b0381111561117157600080fd5b61117d88828901611092565b92505060808601356001600160401b0381111561119957600080fd5b6111a588828901610fd4565b9150509295509295909350565b6000602082840312156111c457600080fd5b81356001600160401b038111156111da57600080fd5b6111e684828501610fd4565b949350505050565b600082601f8301126111ff57600080fd5b813561120d6110b18261106f565b8082825260208201915060208360051b86010192508583111561122f57600080fd5b602085015b838110156110f55761124581610e34565b835260209283019201611234565b6000806040838503121561126657600080fd5b82356001600160401b0381111561127c57600080fd5b611288858286016111ee565b92505060208301356001600160401b038111156112a457600080fd5b61106585828601611092565b600081518084526020840193506020830160005b828110156112e25781518652602095860195909101906001016112c4565b5093949350505050565b602081526000610eb060208301846112b0565b60008060006060848603121561131457600080fd5b83356001600160401b0381111561132a57600080fd5b61133686828701610fd4565b93505060208401356001600160401b0381111561135257600080fd5b61135e868287016111ee565b92505060408401356001600160401b0381111561137a57600080fd5b61138686828701611092565b9150509250925092565b6000806000606084860312156113a557600080fd5b6113ae84610e34565b925060208401356001600160401b038111156113c957600080fd5b6113d586828701610fd4565b93969395505050506040919091013590565b600080604083850312156113fa57600080fd5b61140383610e34565b91506020830135801515811461141857600080fd5b809150509250929050565b6000806040838503121561143657600080fd5b61143f83610e34565b915061144d60208401610e34565b90509250929050565b600080600080600060a0868803121561146e57600080fd5b61147786610e34565b945061148560208701610e34565b9350604086013592506060860135915060808601356001600160401b0381111561119957600080fd5b600181811c908216806114c257607f821691505b6020821081036114e257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600d908201526c139bdd081c195c9b5a5d1d1959609a1b604082015260600190565b60008251611521818460208701610eb7565b9190910192915050565b601f82111561157257806000526020600020601f840160051c810160208510156115525750805b601f840160051c820191505b81811015610a03576000815560010161155e565b505050565b81516001600160401b0381111561159057611590610f33565b6115a48161159e84546114ae565b8461152b565b6020601f8211600181146115d857600083156115c05750848201515b600019600385901b1c1916600184901b178455610a03565b600084815260208120601f198516915b8281101561160857878501518255602094850194600190920191016115e8565b50848210156116265786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b60006001820161165d5761165d611635565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561030f5761030f611635565b6040815260006116a060408301856112b0565b82810360208401526116b281856112b0565b95945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906116f590830184610edb565b979650505050505050565b60006020828403121561171257600080fd5b8151610eb081610e7a565b6001600160a01b0386811682528516602082015260a060408201819052600090611749908301866112b0565b828103606084015261175b81866112b0565b9050828103608084015261176f8185610edb565b9897505050505050505056fea26469706673582212201d0f45dbdaf1c994bb9cfb00fe413c84999b2ae90dbf6bf83de130c96be9290864736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000003d3c5dbe78eee14cc9ae141c794495d7fe58157000000000000000000000000000000000000000000000000000000000000000444656d6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a64656d6f20686f75736500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f68747470733a2f2f677261792d71756965742d65677265742d3234382e6d7970696e6174612e636c6f75642f697066732f516d5533387542414b7875625668546b663843314e5a37384a6954486e765075373832694c6d626437763337375700