[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" } ], "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "BURN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "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": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "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": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60e060405234801561000f575f80fd5b5060405161148038038061148083398101604081905261002e916102af565b8282825f61003c84826103aa565b50600161004983826103aa565b5060ff81166080524660a05261005d6100ce565b60c0525061006f91505f905033610166565b5061009a7f154c00819833dac601ee5ddded6fda79d9d8b506b911b3dbd54cdb95fe6c368633610166565b506100c57fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2233610166565b505050506104db565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516100fe9190610469565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f8281526006602090815260408083206001600160a01b038516845290915281205460ff1661020a575f8381526006602090815260408083206001600160a01b03861684529091529020805460ff191660011790556101c23390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161020d565b505f5b92915050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610236575f80fd5b81516001600160401b038082111561025057610250610213565b604051601f8301601f19908116603f0116810190828211818310171561027857610278610213565b81604052838152866020858801011115610290575f80fd5b8360208701602083015e5f602085830101528094505050505092915050565b5f805f606084860312156102c1575f80fd5b83516001600160401b03808211156102d7575f80fd5b6102e387838801610227565b945060208601519150808211156102f8575f80fd5b5061030586828701610227565b925050604084015160ff8116811461031b575f80fd5b809150509250925092565b600181811c9082168061033a57607f821691505b60208210810361035857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103a557805f5260205f20601f840160051c810160208510156103835750805b601f840160051c820191505b818110156103a2575f815560010161038f565b50505b505050565b81516001600160401b038111156103c3576103c3610213565b6103d7816103d18454610326565b8461035e565b602080601f83116001811461040a575f84156103f35750858301515b5f19600386901b1c1916600185901b178555610461565b5f85815260208120601f198616915b8281101561043857888601518255948401946001909101908401610419565b508582101561045557878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f80835461047681610326565b6001828116801561048e57600181146104a3576104cf565b60ff19841687528215158302870194506104cf565b875f526020805f205f5b858110156104c65781548a8201529084019082016104ad565b50505082870194505b50929695505050505050565b60805160a05160c051610f7b6105055f395f6105f001525f6105bb01525f6102020152610f7b5ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c806370a08231116100bf578063a9059cbb11610079578063a9059cbb146102d7578063b930908f146102ea578063d505accf14610311578063d547741f14610324578063dd62ed3e14610337578063e9a9c85014610361575f80fd5b806370a08231146102645780637ecebe001461028357806391d14854146102a257806395d89b41146102b55780639dc29fac146102bd578063a217fddf146102d0575f80fd5b8063248a9ca311610110578063248a9ca3146101c65780632f2ff15d146101e8578063313ce567146101fd5780633644e5151461023657806336568abe1461023e57806340c10f1914610251575f80fd5b806301ffc9a71461014c57806306fdde0314610174578063095ea7b31461018957806318160ddd1461019c57806323b872dd146101b3575b5f80fd5b61015f61015a366004610c47565b610388565b60405190151581526020015b60405180910390f35b61017c6103be565b60405161016b9190610c75565b61015f610197366004610cc5565b610449565b6101a560025481565b60405190815260200161016b565b61015f6101c1366004610ced565b6104b4565b6101a56101d4366004610d26565b5f9081526006602052604090206001015490565b6101fb6101f6366004610d3d565b61058e565b005b6102247f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161016b565b6101a56105b8565b6101fb61024c366004610d3d565b610612565b6101fb61025f366004610cc5565b61064a565b6101a5610272366004610d67565b60036020525f908152604090205481565b6101a5610291366004610d67565b60056020525f908152604090205481565b61015f6102b0366004610d3d565b61067e565b61017c6106a8565b6101fb6102cb366004610cc5565b6106b5565b6101a55f81565b61015f6102e5366004610cc5565b6106e9565b6101a57fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa2281565b6101fb61031f366004610d80565b61074c565b6101fb610332366004610d3d565b61098f565b6101a5610345366004610ded565b600460209081525f928352604080842090915290825290205481565b6101a57f154c00819833dac601ee5ddded6fda79d9d8b506b911b3dbd54cdb95fe6c368681565b5f6001600160e01b03198216637965db0b60e01b14806103b857506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f80546103ca90610e15565b80601f01602080910402602001604051908101604052809291908181526020018280546103f690610e15565b80156104415780601f1061041857610100808354040283529160200191610441565b820191905f5260205f20905b81548152906001019060200180831161042457829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104a39086815260200190565b60405180910390a350600192915050565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f19811461050d576104e98382610e61565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b6001600160a01b0385165f9081526003602052604081208054859290610534908490610e61565b90915550506001600160a01b038085165f81815260036020526040908190208054870190555190918716905f80516020610f268339815191529061057b9087815260200190565b60405180910390a3506001949350505050565b5f828152600660205260409020600101546105a8816109b3565b6105b283836109c0565b50505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146105ed576105e8610a51565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b038116331461063b5760405163334bd91960e11b815260040160405180910390fd5b6106458282610ae9565b505050565b7f154c00819833dac601ee5ddded6fda79d9d8b506b911b3dbd54cdb95fe6c3686610674816109b3565b6106458383610b54565b5f9182526006602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600180546103ca90610e15565b7fe97b137254058bd94f28d2f3eb79e2d34074ffb488d042e3bc958e0a57d2fa226106df816109b3565b6106458383610bab565b335f90815260036020526040812080548391908390610709908490610e61565b90915550506001600160a01b0383165f81815260036020526040908190208054850190555133905f80516020610f26833981519152906104a39086815260200190565b428410156107a15760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b5f60016107ac6105b8565b6001600160a01b038a81165f8181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156108b4573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116158015906108ea5750876001600160a01b0316816001600160a01b0316145b6109275760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610798565b6001600160a01b039081165f9081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b5f828152600660205260409020600101546109a9816109b3565b6105b28383610ae9565b6109bd8133610c0a565b50565b5f6109cb838361067e565b610a4a575f8381526006602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610a023390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016103b8565b505f6103b8565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051610a819190610e74565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f610af4838361067e565b15610a4a575f8381526006602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103b8565b8060025f828254610b659190610f12565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481525f80516020610f2683398151915291015b60405180910390a35050565b6001600160a01b0382165f9081526003602052604081208054839290610bd2908490610e61565b90915550506002805482900390556040518181525f906001600160a01b038416905f80516020610f2683398151915290602001610b9f565b610c14828261067e565b610c435760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610798565b5050565b5f60208284031215610c57575f80fd5b81356001600160e01b031981168114610c6e575f80fd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610cc0575f80fd5b919050565b5f8060408385031215610cd6575f80fd5b610cdf83610caa565b946020939093013593505050565b5f805f60608486031215610cff575f80fd5b610d0884610caa565b9250610d1660208501610caa565b9150604084013590509250925092565b5f60208284031215610d36575f80fd5b5035919050565b5f8060408385031215610d4e575f80fd5b82359150610d5e60208401610caa565b90509250929050565b5f60208284031215610d77575f80fd5b610c6e82610caa565b5f805f805f805f60e0888a031215610d96575f80fd5b610d9f88610caa565b9650610dad60208901610caa565b95506040880135945060608801359350608088013560ff81168114610dd0575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610dfe575f80fd5b610e0783610caa565b9150610d5e60208401610caa565b600181811c90821680610e2957607f821691505b602082108103610e4757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103b8576103b8610e4d565b5f8083545f60018260011c91506001831680610e9157607f831692505b60208084108203610eb057634e487b7160e01b5f52602260045260245ffd5b818015610ec45760018114610ed957610f04565b60ff1986168952841515850289019650610f04565b5f8a8152602090205f5b86811015610efc5781548b820152908501908301610ee3565b505084890196505b509498975050505050505050565b808201808211156103b8576103b8610e4d56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f6f5c5137b5678323925b2597b7f9fb08a1ea924867d6374ac55a062fd4af4a764736f6c63430008190033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001852756d70656c206b506f696e743a20457468656e61205332000000000000000000000000000000000000000000000000000000000000000000000000000000066b70534154530000000000000000000000000000000000000000000000000000