[ { "inputs": [], "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" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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": [ { "internalType": "address", "name": "account", "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": "address", "name": "account", "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": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50336040518060400160405280600d81526020017f5374616b656420416574686972000000000000000000000000000000000000008152506040518060400160405280600881526020017f7374416574686972000000000000000000000000000000000000000000000000815250816003908162000090919062000472565b508060049081620000a2919062000472565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011191906200059e565b60405180910390fd5b6200012b816200013260201b60201c565b50620005bb565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027a57607f821691505b60208210810362000290576200028f62000232565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002bb565b620003068683620002bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003536200034d62000347846200031e565b62000328565b6200031e565b9050919050565b6000819050919050565b6200036f8362000332565b620003876200037e826200035a565b848454620002c8565b825550505050565b600090565b6200039e6200038f565b620003ab81848462000364565b505050565b5b81811015620003d357620003c760008262000394565b600181019050620003b1565b5050565b601f8211156200042257620003ec8162000296565b620003f784620002ab565b8101602085101562000407578190505b6200041f6200041685620002ab565b830182620003b0565b50505b505050565b600082821c905092915050565b6000620004476000198460080262000427565b1980831691505092915050565b600062000462838362000434565b9150826002028217905092915050565b6200047d82620001f8565b67ffffffffffffffff81111562000499576200049862000203565b5b620004a5825462000261565b620004b2828285620003d7565b600060209050601f831160018114620004ea5760008415620004d5578287015190505b620004e1858262000454565b86555062000551565b601f198416620004fa8662000296565b60005b828110156200052457848901518255600182019150602085019450602081019050620004fd565b8683101562000544578489015162000540601f89168262000434565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005868262000559565b9050919050565b620005988162000579565b82525050565b6000602082019050620005b560008301846200058d565b92915050565b61126980620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063715018a61161008c5780639dc29fac116100665780639dc29fac1461023b578063a9059cbb14610257578063dd62ed3e14610287578063f2fde38b146102b7576100ea565b8063715018a6146101f55780638da5cb5b146101ff57806395d89b411461021d576100ea565b806323b872dd116100c857806323b872dd1461015b578063313ce5671461018b57806340c10f19146101a957806370a08231146101c5576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f76102d3565b6040516101049190610ebd565b60405180910390f35b61012760048036038101906101229190610f78565b610365565b6040516101349190610fd3565b60405180910390f35b610145610388565b6040516101529190610ffd565b60405180910390f35b61017560048036038101906101709190611018565b610392565b6040516101829190610fd3565b60405180910390f35b6101936103c1565b6040516101a09190611087565b60405180910390f35b6101c360048036038101906101be9190610f78565b6103ca565b005b6101df60048036038101906101da91906110a2565b6103e0565b6040516101ec9190610ffd565b60405180910390f35b6101fd610428565b005b61020761043c565b60405161021491906110de565b60405180910390f35b610225610466565b6040516102329190610ebd565b60405180910390f35b61025560048036038101906102509190610f78565b6104f8565b005b610271600480360381019061026c9190610f78565b61050e565b60405161027e9190610fd3565b60405180910390f35b6102a1600480360381019061029c91906110f9565b610531565b6040516102ae9190610ffd565b60405180910390f35b6102d160048036038101906102cc91906110a2565b6105b8565b005b6060600380546102e290611168565b80601f016020809104026020016040519081016040528092919081815260200182805461030e90611168565b801561035b5780601f106103305761010080835404028352916020019161035b565b820191906000526020600020905b81548152906001019060200180831161033e57829003601f168201915b5050505050905090565b60008061037061063e565b905061037d818585610646565b600191505092915050565b6000600254905090565b60008061039d61063e565b90506103aa858285610658565b6103b58585856106ec565b60019150509392505050565b60006012905090565b6103d26107e0565b6103dc8282610867565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104306107e0565b61043a60006108e9565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461047590611168565b80601f01602080910402602001604051908101604052809291908181526020018280546104a190611168565b80156104ee5780601f106104c3576101008083540402835291602001916104ee565b820191906000526020600020905b8154815290600101906020018083116104d157829003601f168201915b5050505050905090565b6105006107e0565b61050a82826109af565b5050565b60008061051961063e565b90506105268185856106ec565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6105c06107e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106325760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161062991906110de565b60405180910390fd5b61063b816108e9565b50565b600033905090565b6106538383836001610a31565b505050565b60006106648484610531565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106e657818110156106d6578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106cd93929190611199565b60405180910390fd5b6106e584848484036000610a31565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361075e5760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161075591906110de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107d05760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107c791906110de565b60405180910390fd5b6107db838383610c08565b505050565b6107e861063e565b73ffffffffffffffffffffffffffffffffffffffff1661080661043c565b73ffffffffffffffffffffffffffffffffffffffff16146108655761082961063e565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161085c91906110de565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108d95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108d091906110de565b60405180910390fd5b6108e560008383610c08565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a215760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a1891906110de565b60405180910390fd5b610a2d82600083610c08565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610aa35760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a9a91906110de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b155760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610b0c91906110de565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610c02578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bf99190610ffd565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c5a578060026000828254610c4e91906111ff565b92505081905550610d2d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ce6578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610cdd93929190611199565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d765780600260008282540392505081905550610dc3565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e209190610ffd565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e67578082015181840152602081019050610e4c565b60008484015250505050565b6000601f19601f8301169050919050565b6000610e8f82610e2d565b610e998185610e38565b9350610ea9818560208601610e49565b610eb281610e73565b840191505092915050565b60006020820190508181036000830152610ed78184610e84565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f0f82610ee4565b9050919050565b610f1f81610f04565b8114610f2a57600080fd5b50565b600081359050610f3c81610f16565b92915050565b6000819050919050565b610f5581610f42565b8114610f6057600080fd5b50565b600081359050610f7281610f4c565b92915050565b60008060408385031215610f8f57610f8e610edf565b5b6000610f9d85828601610f2d565b9250506020610fae85828601610f63565b9150509250929050565b60008115159050919050565b610fcd81610fb8565b82525050565b6000602082019050610fe86000830184610fc4565b92915050565b610ff781610f42565b82525050565b60006020820190506110126000830184610fee565b92915050565b60008060006060848603121561103157611030610edf565b5b600061103f86828701610f2d565b935050602061105086828701610f2d565b925050604061106186828701610f63565b9150509250925092565b600060ff82169050919050565b6110818161106b565b82525050565b600060208201905061109c6000830184611078565b92915050565b6000602082840312156110b8576110b7610edf565b5b60006110c684828501610f2d565b91505092915050565b6110d881610f04565b82525050565b60006020820190506110f360008301846110cf565b92915050565b600080604083850312156111105761110f610edf565b5b600061111e85828601610f2d565b925050602061112f85828601610f2d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061118057607f821691505b60208210810361119357611192611139565b5b50919050565b60006060820190506111ae60008301866110cf565b6111bb6020830185610fee565b6111c86040830184610fee565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061120a82610f42565b915061121583610f42565b925082820190508082111561122d5761122c6111d0565b5b9291505056fea2646970667358221220cc8bcef9162352a0b504d8e86f4e01b8ba9aace35ee01f1733589c076588d97764736f6c63430008180033