[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "address", "name": "minter", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "id", "type": "string" } ], "name": "RepeatedID", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "ids", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "string", "name": "id", "type": "string" } ], "name": "mintWithId", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "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": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620011ce380380620011ce833981016040819052620000349162000217565b8282600362000044838262000335565b50600462000053828262000335565b5062000065915060009050336200009c565b50620000927f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826200009c565b5050505062000401565b60008281526005602090815260408083206001600160a01b038516845290915281205460ff16620001455760008381526005602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620000fc3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000149565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200017757600080fd5b81516001600160401b03808211156200019457620001946200014f565b604051601f8301601f19908116603f01168101908282118183101715620001bf57620001bf6200014f565b8160405283815260209250866020858801011115620001dd57600080fd5b600091505b83821015620002015785820183015181830184015290820190620001e2565b6000602085830101528094505050505092915050565b6000806000606084860312156200022d57600080fd5b83516001600160401b03808211156200024557600080fd5b620002538783880162000165565b945060208601519150808211156200026a57600080fd5b50620002798682870162000165565b604086015190935090506001600160a01b03811681146200029957600080fd5b809150509250925092565b600181811c90821680620002b957607f821691505b602082108103620002da57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000330576000816000526020600020601f850160051c810160208610156200030b5750805b601f850160051c820191505b818110156200032c5782815560010162000317565b5050505b505050565b81516001600160401b038111156200035157620003516200014f565b6200036981620003628454620002a4565b84620002e0565b602080601f831160018114620003a15760008415620003885750858301515b600019600386901b1c1916600185901b1785556200032c565b600085815260208120601f198616915b82811015620003d257888601518255948401946001909101908401620003b1565b5085821015620003f15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610dbd80620004116000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806356d30bf8116100ad578063a217fddf11610071578063a217fddf14610298578063a9059cbb146102a0578063d5391393146102b3578063d547741f146102da578063dd62ed3e146102ed57600080fd5b806356d30bf81461021357806370a08231146102265780638a08677d1461024f57806391d148541461027d57806395d89b411461029057600080fd5b8063248a9ca3116100f4578063248a9ca3146101a65780632f2ff15d146101c9578063313ce567146101de57806336568abe146101ed57806340c10f191461020057600080fd5b806301ffc9a71461013157806306fdde0314610159578063095ea7b31461016e57806318160ddd1461018157806323b872dd14610193575b600080fd5b61014461013f366004610a45565b610326565b60405190151581526020015b60405180910390f35b61016161035d565b6040516101509190610a9a565b61014461017c366004610ae9565b6103ef565b6002545b604051908152602001610150565b6101446101a1366004610b13565b610407565b6101856101b4366004610b4f565b60009081526005602052604090206001015490565b6101dc6101d7366004610b68565b61042b565b005b60405160128152602001610150565b6101dc6101fb366004610b68565b610456565b6101dc61020e366004610ae9565b61048e565b6101dc610221366004610c37565b6104c2565b610185610234366004610c8e565b6001600160a01b031660009081526020819052604090205490565b61014461025d366004610ca9565b805160208183018101805160068252928201919093012091525460ff1681565b61014461028b366004610b68565b610574565b61016161059f565b610185600081565b6101446102ae366004610ae9565b6105ae565b6101857f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6101dc6102e8366004610b68565b6105bc565b6101856102fb366004610ce6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60006001600160e01b03198216637965db0b60e01b148061035757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606003805461036c90610d10565b80601f016020809104026020016040519081016040528092919081815260200182805461039890610d10565b80156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b6000336103fd8185856105e1565b5060019392505050565b6000336104158582856105ee565b610420858585610666565b506001949350505050565b600082815260056020526040902060010154610446816106c5565b61045083836106d2565b50505050565b6001600160a01b038116331461047f5760405163334bd91960e11b815260040160405180910390fd5b6104898282610766565b505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66104b8816106c5565b61048983836107d3565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66104ec816106c5565b6006826040516104fc9190610d4a565b9081526040519081900360200190205460ff161561053857816040516307c117c960e31b815260040161052f9190610a9a565b60405180910390fd5b600160068360405161054a9190610d4a565b908152604051908190036020019020805491151560ff1990921691909117905561045084846107d3565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606004805461036c90610d10565b6000336103fd818585610666565b6000828152600560205260409020600101546105d7816106c5565b6104508383610766565b610489838383600161080d565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610450578181101561065757604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161052f565b6104508484848403600061080d565b6001600160a01b03831661069057604051634b637e8f60e11b81526000600482015260240161052f565b6001600160a01b0382166106ba5760405163ec442f0560e01b81526000600482015260240161052f565b6104898383836108e2565b6106cf8133610a0c565b50565b60006106de8383610574565b61075e5760008381526005602090815260408083206001600160a01b03861684529091529020805460ff191660011790556107163390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610357565b506000610357565b60006107728383610574565b1561075e5760008381526005602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610357565b6001600160a01b0382166107fd5760405163ec442f0560e01b81526000600482015260240161052f565b610809600083836108e2565b5050565b6001600160a01b0384166108375760405163e602df0560e01b81526000600482015260240161052f565b6001600160a01b03831661086157604051634a1406b160e11b81526000600482015260240161052f565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561045057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108d491815260200190565b60405180910390a350505050565b6001600160a01b03831661090d5780600260008282546109029190610d66565b9091555061097f9050565b6001600160a01b038316600090815260208190526040902054818110156109605760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161052f565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661099b576002805482900390556109ba565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109ff91815260200190565b60405180910390a3505050565b610a168282610574565b6108095760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161052f565b600060208284031215610a5757600080fd5b81356001600160e01b031981168114610a6f57600080fd5b9392505050565b60005b83811015610a91578181015183820152602001610a79565b50506000910152565b6020815260008251806020840152610ab9816040850160208701610a76565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610ae457600080fd5b919050565b60008060408385031215610afc57600080fd5b610b0583610acd565b946020939093013593505050565b600080600060608486031215610b2857600080fd5b610b3184610acd565b9250610b3f60208501610acd565b9150604084013590509250925092565b600060208284031215610b6157600080fd5b5035919050565b60008060408385031215610b7b57600080fd5b82359150610b8b60208401610acd565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610bbb57600080fd5b813567ffffffffffffffff80821115610bd657610bd6610b94565b604051601f8301601f19908116603f01168101908282118183101715610bfe57610bfe610b94565b81604052838152866020858801011115610c1757600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610c4c57600080fd5b610c5584610acd565b925060208401359150604084013567ffffffffffffffff811115610c7857600080fd5b610c8486828701610baa565b9150509250925092565b600060208284031215610ca057600080fd5b610a6f82610acd565b600060208284031215610cbb57600080fd5b813567ffffffffffffffff811115610cd257600080fd5b610cde84828501610baa565b949350505050565b60008060408385031215610cf957600080fd5b610d0283610acd565b9150610b8b60208401610acd565b600181811c90821680610d2457607f821691505b602082108103610d4457634e487b7160e01b600052602260045260246000fd5b50919050565b60008251610d5c818460208701610a76565b9190910192915050565b8082018082111561035757634e487b7160e01b600052601160045260246000fdfea2646970667358221220a6b54528fcccdf659099960f794d722b3eb8755da0f2c3efb1e0c8fccfc3162964736f6c63430008160033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000ce150d52d01b7cb0b0e1b37a52bcb2227f8e2d35000000000000000000000000000000000000000000000000000000000000000e4d6f636b204c505420546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c50540000000000000000000000000000000000000000000000000000000000