[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint256", "name": "maxSupply_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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" }, { "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": "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": [ { "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": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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" } ]
6080604052346103af57610a9980380380610019816103b4565b9283398101906060818303126103af5780516001600160401b0381116103af57826100459183016103d9565b60208201519092906001600160401b0381116103af576040916100699184016103d9565b91015182516001600160401b0381116102b857600354600181811c911680156103a5575b602082101461029857601f8111610340575b506020601f82116001146102d957819293946000926102ce575b50508160011b916000199060031b1c1916176003555b81516001600160401b0381116102b857600454600181811c911680156102ae575b602082101461029857601f8111610233575b50602092601f82116001146101ce57928192936000926101c3575b50508160011b916000199060031b1c1916176004555b33156101ad5760025481810180911161019757600255600033815280602052604081208281540190556040519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a360405161065490816104458239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b01519050388061011d565b601f198216936004600052806000209160005b86811061021b5750836001959610610202575b505050811b01600455610133565b015160001960f88460031b161c191690553880806101f4565b919260206001819286850151815501940192016101e1565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061028e575b601f0160051c01905b8181106102825750610102565b60008155600101610275565b909150819061026c565b634e487b7160e01b600052602260045260246000fd5b90607f16906100f0565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b9565b601f198216906003600052806000209160005b8181106103285750958360019596971061030f575b505050811b016003556100cf565b015160001960f88460031b161c19169055388080610301565b9192602060018192868b0151815501940192016102ec565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061039b575b601f0160051c01905b81811061038f575061009f565b60008155600101610382565b9091508190610379565b90607f169061008d565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102b857604052565b81601f820112156103af578051906001600160401b0382116102b857610408601f8301601f19166020016103b4565b92828452602083830101116103af5760005b82811061042f57505060206000918301015290565b8060208092840101518282870101520161041a56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde031461041157508063095ea7b31461038b57806318160ddd1461036d57806323b872dd14610280578063313ce5671461026457806370a082311461022a57806395d89b4114610109578063a9059cbb146100d85763dd62ed3e1461008257600080fd5b346100d35760403660031901126100d35761009b61052d565b6100a3610543565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346100d35760403660031901126100d3576100fe6100f461052d565b6024359033610559565b602060405160018152f35b346100d35760003660031901126100d35760405160006004548060011c90600181168015610220575b60208310811461020c578285529081156101f05750600114610199575b50819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b0390f35b634e487b7160e01b600052604160045260246000fd5b905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6000905b8282106101da5750602091508201018261014f565b60018160209254838588010152019101906101c5565b90506020925060ff191682840152151560051b8201018261014f565b634e487b7160e01b84526022600452602484fd5b91607f1691610132565b346100d35760203660031901126100d3576001600160a01b0361024b61052d565b1660005260006020526020604060002054604051908152f35b346100d35760003660031901126100d357602060405160128152f35b346100d35760603660031901126100d35761029961052d565b6102a1610543565b6001600160a01b03821660008181526001602081815260408084203385529091529091205491936044359392909181016102e1575b506100fe9350610559565b83811061035057841561033a573315610324576100fe946000526001602052604060002060018060a01b03331660005260205283604060002091039055846102d6565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b346100d35760003660031901126100d3576020600254604051908152f35b346100d35760403660031901126100d3576103a461052d565b60243590331561033a576001600160a01b031690811561032457336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100d35760003660031901126100d35760006003548060011c906001811680156104da575b60208310811461020c578285529081156101f057506001146104835750819003601f01601f191681019067ffffffffffffffff8211818310176101835761017f829182604052826104e4565b905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b6000905b8282106104c45750602091508201018261014f565b60018160209254838588010152019101906104af565b91607f1691610437565b91909160208152825180602083015260005b818110610517575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016104f6565b600435906001600160a01b03821682036100d357565b602435906001600160a01b03821682036100d357565b6001600160a01b0316908115610608576001600160a01b03169182156105f25760008281528060205260408120548281106105d85791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fd5b63ec442f0560e01b600052600060045260246000fd5b634b637e8f60e11b600052600060045260246000fdfea2646970667358221220a12f32abd9034e83a511a3a9460f9bf71058e17789bb82763eec4faf9e5bb39c64736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000000000000000000000000000000000000000000d4d616a6573746963546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d4a535443000000000000000000000000000000000000000000000000000000