[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "uint256", "name": "initial_supply", "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": [], "name": "INITIAL_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "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" } ]
60806040523480156200001157600080fd5b5060405162001c2638038062001c268339818101604052810190620000379190620005a2565b838381600390816200004a919062000893565b5080600490816200005c919062000893565b50505081600560006101000a81548160ff021916908360ff1602179055508160ff16600a6200008c919062000afd565b8162000099919062000b4e565b600681905550620000cf338360ff16600a620000b6919062000afd565b83620000c3919062000b4e565b620000d960201b60201c565b5050505062000ca1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200014e5760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000145919062000bde565b60405180910390fd5b62000162600083836200016660201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001bc578060026000828254620001af919062000bfb565b9250508190555062000292565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156200024b578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620002429392919062000c47565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002dd57806002600082825403925050819055506200032a565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000389919062000c84565b60405180910390a3505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003ff82620003b4565b810181811067ffffffffffffffff82111715620004215762000420620003c5565b5b80604052505050565b60006200043662000396565b9050620004448282620003f4565b919050565b600067ffffffffffffffff821115620004675762000466620003c5565b5b6200047282620003b4565b9050602081019050919050565b60005b838110156200049f57808201518184015260208101905062000482565b60008484015250505050565b6000620004c2620004bc8462000449565b6200042a565b905082815260208101848484011115620004e157620004e0620003af565b5b620004ee8482856200047f565b509392505050565b600082601f8301126200050e576200050d620003aa565b5b815162000520848260208601620004ab565b91505092915050565b600060ff82169050919050565b620005418162000529565b81146200054d57600080fd5b50565b600081519050620005618162000536565b92915050565b6000819050919050565b6200057c8162000567565b81146200058857600080fd5b50565b6000815190506200059c8162000571565b92915050565b60008060008060808587031215620005bf57620005be620003a0565b5b600085015167ffffffffffffffff811115620005e057620005df620003a5565b5b620005ee87828801620004f6565b945050602085015167ffffffffffffffff811115620006125762000611620003a5565b5b6200062087828801620004f6565b9350506040620006338782880162000550565b925050606062000646878288016200058b565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006a557607f821691505b602082108103620006bb57620006ba6200065d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006e6565b620007318683620006e6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620007746200076e620007688462000567565b62000749565b62000567565b9050919050565b6000819050919050565b620007908362000753565b620007a86200079f826200077b565b848454620006f3565b825550505050565b600090565b620007bf620007b0565b620007cc81848462000785565b505050565b5b81811015620007f457620007e8600082620007b5565b600181019050620007d2565b5050565b601f82111562000843576200080d81620006c1565b6200081884620006d6565b8101602085101562000828578190505b620008406200083785620006d6565b830182620007d1565b50505b505050565b600082821c905092915050565b6000620008686000198460080262000848565b1980831691505092915050565b600062000883838362000855565b9150826002028217905092915050565b6200089e8262000652565b67ffffffffffffffff811115620008ba57620008b9620003c5565b5b620008c682546200068c565b620008d3828285620007f8565b600060209050601f8311600181146200090b5760008415620008f6578287015190505b62000902858262000875565b86555062000972565b601f1984166200091b86620006c1565b60005b8281101562000945578489015182556001820191506020850194506020810190506200091e565b8683101562000965578489015162000961601f89168262000855565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0857808604811115620009e057620009df6200097a565b5b6001851615620009f05780820291505b808102905062000a0085620009a9565b9450620009c0565b94509492505050565b60008262000a23576001905062000af6565b8162000a33576000905062000af6565b816001811462000a4c576002811462000a575762000a8d565b600191505062000af6565b60ff84111562000a6c5762000a6b6200097a565b5b8360020a91508482111562000a865762000a856200097a565b5b5062000af6565b5060208310610133831016604e8410600b841016171562000ac75782820a90508381111562000ac15762000ac06200097a565b5b62000af6565b62000ad68484846001620009b6565b9250905081840481111562000af05762000aef6200097a565b5b81810290505b9392505050565b600062000b0a8262000567565b915062000b178362000567565b925062000b467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a11565b905092915050565b600062000b5b8262000567565b915062000b688362000567565b925082820262000b788162000567565b9150828204841483151762000b925762000b916200097a565b5b5092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bc68262000b99565b9050919050565b62000bd88162000bb9565b82525050565b600060208201905062000bf5600083018462000bcd565b92915050565b600062000c088262000567565b915062000c158362000567565b925082820190508082111562000c305762000c2f6200097a565b5b92915050565b62000c418162000567565b82525050565b600060608201905062000c5e600083018662000bcd565b62000c6d602083018562000c36565b62000c7c604083018462000c36565b949350505050565b600060208201905062000c9b600083018462000c36565b92915050565b610f758062000cb16000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063313ce56711610071578063313ce5671461016857806370a082311461018657806395d89b41146101b6578063a0712d68146101d4578063a9059cbb146101f0578063dd62ed3e14610220576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a5780632ff2e9dc1461014a575b600080fd5b6100b6610250565b6040516100c39190610b9c565b60405180910390f35b6100e660048036038101906100e19190610c57565b6102e2565b6040516100f39190610cb2565b60405180910390f35b610104610305565b6040516101119190610cdc565b60405180910390f35b610134600480360381019061012f9190610cf7565b61030f565b6040516101419190610cb2565b60405180910390f35b61015261033e565b60405161015f9190610cdc565b60405180910390f35b610170610344565b60405161017d9190610d66565b60405180910390f35b6101a0600480360381019061019b9190610d81565b61035b565b6040516101ad9190610cdc565b60405180910390f35b6101be6103a3565b6040516101cb9190610b9c565b60405180910390f35b6101ee60048036038101906101e99190610dae565b610435565b005b61020a60048036038101906102059190610c57565b610442565b6040516102179190610cb2565b60405180910390f35b61023a60048036038101906102359190610ddb565b610465565b6040516102479190610cdc565b60405180910390f35b60606003805461025f90610e4a565b80601f016020809104026020016040519081016040528092919081815260200182805461028b90610e4a565b80156102d85780601f106102ad576101008083540402835291602001916102d8565b820191906000526020600020905b8154815290600101906020018083116102bb57829003601f168201915b5050505050905090565b6000806102ed6104ec565b90506102fa8185856104f4565b600191505092915050565b6000600254905090565b60008061031a6104ec565b9050610327858285610506565b61033285858561059a565b60019150509392505050565b60065481565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103b290610e4a565b80601f01602080910402602001604051908101604052809291908181526020018280546103de90610e4a565b801561042b5780601f106104005761010080835404028352916020019161042b565b820191906000526020600020905b81548152906001019060200180831161040e57829003601f168201915b5050505050905090565b61043f338261068e565b50565b60008061044d6104ec565b905061045a81858561059a565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6105018383836001610710565b505050565b60006105128484610465565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105945781811015610584578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161057b93929190610e8a565b60405180910390fd5b61059384848484036000610710565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361060c5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106039190610ec1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361067e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106759190610ec1565b60405180910390fd5b6106898383836108e7565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107005760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106f79190610ec1565b60405180910390fd5b61070c600083836108e7565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107825760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107799190610ec1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107f45760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107eb9190610ec1565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108e1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108d89190610cdc565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361093957806002600082825461092d9190610f0b565b92505081905550610a0c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109c5578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109bc93929190610e8a565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a555780600260008282540392505081905550610aa2565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aff9190610cdc565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b46578082015181840152602081019050610b2b565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b6e82610b0c565b610b788185610b17565b9350610b88818560208601610b28565b610b9181610b52565b840191505092915050565b60006020820190508181036000830152610bb68184610b63565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bee82610bc3565b9050919050565b610bfe81610be3565b8114610c0957600080fd5b50565b600081359050610c1b81610bf5565b92915050565b6000819050919050565b610c3481610c21565b8114610c3f57600080fd5b50565b600081359050610c5181610c2b565b92915050565b60008060408385031215610c6e57610c6d610bbe565b5b6000610c7c85828601610c0c565b9250506020610c8d85828601610c42565b9150509250929050565b60008115159050919050565b610cac81610c97565b82525050565b6000602082019050610cc76000830184610ca3565b92915050565b610cd681610c21565b82525050565b6000602082019050610cf16000830184610ccd565b92915050565b600080600060608486031215610d1057610d0f610bbe565b5b6000610d1e86828701610c0c565b9350506020610d2f86828701610c0c565b9250506040610d4086828701610c42565b9150509250925092565b600060ff82169050919050565b610d6081610d4a565b82525050565b6000602082019050610d7b6000830184610d57565b92915050565b600060208284031215610d9757610d96610bbe565b5b6000610da584828501610c0c565b91505092915050565b600060208284031215610dc457610dc3610bbe565b5b6000610dd284828501610c42565b91505092915050565b60008060408385031215610df257610df1610bbe565b5b6000610e0085828601610c0c565b9250506020610e1185828601610c0c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e6257607f821691505b602082108103610e7557610e74610e1b565b5b50919050565b610e8481610be3565b82525050565b6000606082019050610e9f6000830186610e7b565b610eac6020830185610ccd565b610eb96040830184610ccd565b949350505050565b6000602082019050610ed66000830184610e7b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f1682610c21565b9150610f2183610c21565b9250828201905080821115610f3957610f38610edc565b5b9291505056fea2646970667358221220f78a9c401a7c700c19cdcc56112ca0dc5d27c7197659b70645ad0a848877c23964736f6c63430008180033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000000a5465737420546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000085553445454657374000000000000000000000000000000000000000000000000