[ { "inputs": [ { "internalType": "uint8", "name": "__decimals", "type": "uint8" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "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": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mintTo", "outputs": [], "stateMutability": "nonpayable", "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" } ]
60806040523480156200001157600080fd5b5060405162001b7a38038062001b7a833981810160405281019062000037919062000591565b6040518060400160405280600981526020017f4d6f636b20436f696e00000000000000000000000000000000000000000000008152508181600390816200007f919062000842565b50806004908162000091919062000842565b50505081600560006101000a81548160ff021916908360ff1602179055506000600560009054906101000a900460ff1660ff16600a620000d2919062000aac565b662386f26fc10000620000e6919062000afd565b9050620000fa33826200010360201b60201c565b50505062000c50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001785760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200016f919062000b8d565b60405180910390fd5b6200018c600083836200019060201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001e6578060026000828254620001d9919062000baa565b92505081905550620002bc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000275578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200026c9392919062000bf6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000307578060026000828254039250508190555062000354565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003b3919062000c33565b60405180910390a3505050565b6000604051905090565b600080fd5b600080fd5b600060ff82169050919050565b620003ec81620003d4565b8114620003f857600080fd5b50565b6000815190506200040c81620003e1565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000467826200041c565b810181811067ffffffffffffffff821117156200048957620004886200042d565b5b80604052505050565b60006200049e620003c0565b9050620004ac82826200045c565b919050565b600067ffffffffffffffff821115620004cf57620004ce6200042d565b5b620004da826200041c565b9050602081019050919050565b60005b8381101562000507578082015181840152602081019050620004ea565b60008484015250505050565b60006200052a6200052484620004b1565b62000492565b90508281526020810184848401111562000549576200054862000417565b5b62000556848285620004e7565b509392505050565b600082601f83011262000576576200057562000412565b5b81516200058884826020860162000513565b91505092915050565b60008060408385031215620005ab57620005aa620003ca565b5b6000620005bb85828601620003fb565b925050602083015167ffffffffffffffff811115620005df57620005de620003cf565b5b620005ed858286016200055e565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200064a57607f821691505b60208210810362000660576200065f62000602565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006ca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200068b565b620006d686836200068b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007236200071d6200071784620006ee565b620006f8565b620006ee565b9050919050565b6000819050919050565b6200073f8362000702565b620007576200074e826200072a565b84845462000698565b825550505050565b600090565b6200076e6200075f565b6200077b81848462000734565b505050565b5b81811015620007a3576200079760008262000764565b60018101905062000781565b5050565b601f821115620007f257620007bc8162000666565b620007c7846200067b565b81016020851015620007d7578190505b620007ef620007e6856200067b565b83018262000780565b50505b505050565b600082821c905092915050565b60006200081760001984600802620007f7565b1980831691505092915050565b600062000832838362000804565b9150826002028217905092915050565b6200084d82620005f7565b67ffffffffffffffff8111156200086957620008686200042d565b5b62000875825462000631565b62000882828285620007a7565b600060209050601f831160018114620008ba5760008415620008a5578287015190505b620008b1858262000824565b86555062000921565b601f198416620008ca8662000666565b60005b82811015620008f457848901518255600182019150602085019450602081019050620008cd565b8683101562000914578489015162000910601f89168262000804565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009b7578086048111156200098f576200098e62000929565b5b60018516156200099f5780820291505b8081029050620009af8562000958565b94506200096f565b94509492505050565b600082620009d2576001905062000aa5565b81620009e2576000905062000aa5565b8160018114620009fb576002811462000a065762000a3c565b600191505062000aa5565b60ff84111562000a1b5762000a1a62000929565b5b8360020a91508482111562000a355762000a3462000929565b5b5062000aa5565b5060208310610133831016604e8410600b841016171562000a765782820a90508381111562000a705762000a6f62000929565b5b62000aa5565b62000a85848484600162000965565b9250905081840481111562000a9f5762000a9e62000929565b5b81810290505b9392505050565b600062000ab982620006ee565b915062000ac683620006ee565b925062000af57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009c0565b905092915050565b600062000b0a82620006ee565b915062000b1783620006ee565b925082820262000b2781620006ee565b9150828204841483151762000b415762000b4062000929565b5b5092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b758262000b48565b9050919050565b62000b878162000b68565b82525050565b600060208201905062000ba4600083018462000b7c565b92915050565b600062000bb782620006ee565b915062000bc483620006ee565b925082820190508082111562000bdf5762000bde62000929565b5b92915050565b62000bf081620006ee565b82525050565b600060608201905062000c0d600083018662000b7c565b62000c1c602083018562000be5565b62000c2b604083018462000be5565b949350505050565b600060208201905062000c4a600083018462000be5565b92915050565b610f1a8062000c606000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063449a52f811610066578063449a52f81461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b6e565b60405180910390f35b6100db60048036038101906100d69190610c29565b6102b9565b6040516100e89190610c84565b60405180910390f35b6100f96102dc565b6040516101069190610cae565b60405180910390f35b61012960048036038101906101249190610cc9565b6102e6565b6040516101369190610c84565b60405180910390f35b610147610315565b6040516101549190610d38565b60405180910390f35b61017760048036038101906101729190610c29565b61032c565b005b610193600480360381019061018e9190610d53565b61033a565b6040516101a09190610cae565b60405180910390f35b6101b1610382565b6040516101be9190610b6e565b60405180910390f35b6101e160048036038101906101dc9190610c29565b610414565b6040516101ee9190610c84565b60405180910390f35b610211600480360381019061020c9190610d80565b610437565b60405161021e9190610cae565b60405180910390f35b60606003805461023690610def565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610def565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104be565b90506102d18185856104c6565b600191505092915050565b6000600254905090565b6000806102f16104be565b90506102fe8582856104d8565b61030985858561056c565b60019150509392505050565b6000600560009054906101000a900460ff16905090565b6103368282610660565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461039190610def565b80601f01602080910402602001604051908101604052809291908181526020018280546103bd90610def565b801561040a5780601f106103df5761010080835404028352916020019161040a565b820191906000526020600020905b8154815290600101906020018083116103ed57829003601f168201915b5050505050905090565b60008061041f6104be565b905061042c81858561056c565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104d383838360016106e2565b505050565b60006104e48484610437565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105665781811015610556578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161054d93929190610e2f565b60405180910390fd5b610565848484840360006106e2565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105de5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105d59190610e66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106505760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106479190610e66565b60405180910390fd5b61065b8383836108b9565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106d25760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106c99190610e66565b60405180910390fd5b6106de600083836108b9565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107545760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161074b9190610e66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107c65760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107bd9190610e66565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108b3578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108aa9190610cae565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361090b5780600260008282546108ff9190610eb0565b925050819055506109de565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610997578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098e93929190610e2f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a275780600260008282540392505081905550610a74565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ad19190610cae565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b18578082015181840152602081019050610afd565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b4082610ade565b610b4a8185610ae9565b9350610b5a818560208601610afa565b610b6381610b24565b840191505092915050565b60006020820190508181036000830152610b888184610b35565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bc082610b95565b9050919050565b610bd081610bb5565b8114610bdb57600080fd5b50565b600081359050610bed81610bc7565b92915050565b6000819050919050565b610c0681610bf3565b8114610c1157600080fd5b50565b600081359050610c2381610bfd565b92915050565b60008060408385031215610c4057610c3f610b90565b5b6000610c4e85828601610bde565b9250506020610c5f85828601610c14565b9150509250929050565b60008115159050919050565b610c7e81610c69565b82525050565b6000602082019050610c996000830184610c75565b92915050565b610ca881610bf3565b82525050565b6000602082019050610cc36000830184610c9f565b92915050565b600080600060608486031215610ce257610ce1610b90565b5b6000610cf086828701610bde565b9350506020610d0186828701610bde565b9250506040610d1286828701610c14565b9150509250925092565b600060ff82169050919050565b610d3281610d1c565b82525050565b6000602082019050610d4d6000830184610d29565b92915050565b600060208284031215610d6957610d68610b90565b5b6000610d7784828501610bde565b91505092915050565b60008060408385031215610d9757610d96610b90565b5b6000610da585828601610bde565b9250506020610db685828601610bde565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e0757607f821691505b602082108103610e1a57610e19610dc0565b5b50919050565b610e2981610bb5565b82525050565b6000606082019050610e446000830186610e20565b610e516020830185610c9f565b610e5e6040830184610c9f565b949350505050565b6000602082019050610e7b6000830184610e20565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ebb82610bf3565b9150610ec683610bf3565b9250828201905080821115610ede57610edd610e81565b5b9291505056fea264697066735822122070ccd207114c4ca95b44124f39ed8b18d534b3b844680e3f2a3d7df1c1aab8b964736f6c634300081800330000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000