[ { "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" }, { "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": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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" } ]
608060405234801561000f575f80fd5b506040518060400160405280600481526020017f55534443000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5553444300000000000000000000000000000000000000000000000000000000815250816003908161008b9190610590565b50806004908161009b9190610590565b5050506100b3336402540be4006100b860201b60201c565b610774565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610128575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161011f919061069e565b60405180910390fd5b6101395f838361013d60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361018d578060025f82825461018191906106e4565b9250508190555061025b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610216578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161020d93929190610726565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036102a2578060025f82825403925050819055506102ec565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610349919061075b565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103d157607f821691505b6020821081036103e4576103e361038d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261040b565b610450868361040b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61049461048f61048a84610468565b610471565b610468565b9050919050565b5f819050919050565b6104ad8361047a565b6104c16104b98261049b565b848454610417565b825550505050565b5f90565b6104d56104c9565b6104e08184846104a4565b505050565b5b81811015610503576104f85f826104cd565b6001810190506104e6565b5050565b601f82111561054857610519816103ea565b610522846103fc565b81016020851015610531578190505b61054561053d856103fc565b8301826104e5565b50505b505050565b5f82821c905092915050565b5f6105685f198460080261054d565b1980831691505092915050565b5f6105808383610559565b9150826002028217905092915050565b61059982610356565b67ffffffffffffffff8111156105b2576105b1610360565b5b6105bc82546103ba565b6105c7828285610507565b5f60209050601f8311600181146105f8575f84156105e6578287015190505b6105f08582610575565b865550610657565b601f198416610606866103ea565b5f5b8281101561062d57848901518255600182019150602085019450602081019050610608565b8683101561064a5784890151610646601f891682610559565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106888261065f565b9050919050565b6106988161067e565b82525050565b5f6020820190506106b15f83018461068f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106ee82610468565b91506106f983610468565b9250828201905080821115610711576107106106b7565b5b92915050565b61072081610468565b82525050565b5f6060820190506107395f83018661068f565b6107466020830185610717565b6107536040830184610717565b949350505050565b5f60208201905061076e5f830184610717565b92915050565b610f7d806107815f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c806340c10f191161006f57806340c10f191461016557806370a082311461019557806395d89b41146101c55780639dc29fac146101e3578063a9059cbb14610213578063dd62ed3e14610243576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b3610273565b6040516100c09190610bf6565b60405180910390f35b6100e360048036038101906100de9190610ca7565b610303565b6040516100f09190610cff565b60405180910390f35b610101610325565b60405161010e9190610d27565b60405180910390f35b610131600480360381019061012c9190610d40565b61032e565b60405161013e9190610cff565b60405180910390f35b61014f61035c565b60405161015c9190610dab565b60405180910390f35b61017f600480360381019061017a9190610ca7565b610364565b60405161018c9190610d27565b60405180910390f35b6101af60048036038101906101aa9190610dc4565b610378565b6040516101bc9190610d27565b60405180910390f35b6101cd6103bd565b6040516101da9190610bf6565b60405180910390f35b6101fd60048036038101906101f89190610ca7565b61044d565b60405161020a9190610d27565b60405180910390f35b61022d60048036038101906102289190610ca7565b610461565b60405161023a9190610cff565b60405180910390f35b61025d60048036038101906102589190610def565b610483565b60405161026a9190610d27565b60405180910390f35b60606003805461028290610e5a565b80601f01602080910402602001604051908101604052809291908181526020018280546102ae90610e5a565b80156102f95780601f106102d0576101008083540402835291602001916102f9565b820191905f5260205f20905b8154815290600101906020018083116102dc57829003601f168201915b5050505050905090565b5f8061030d610505565b905061031a81858561050c565b600191505092915050565b5f600254905090565b5f80610338610505565b905061034585828561051e565b6103508585856105b0565b60019150509392505050565b5f6006905090565b5f61036f83836106a0565b81905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600480546103cc90610e5a565b80601f01602080910402602001604051908101604052809291908181526020018280546103f890610e5a565b80156104435780601f1061041a57610100808354040283529160200191610443565b820191905f5260205f20905b81548152906001019060200180831161042657829003601f168201915b5050505050905090565b5f610458838361071f565b81905092915050565b5f8061046b610505565b90506104788185856105b0565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b610519838383600161079e565b505050565b5f6105298484610483565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105aa578181101561059b578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161059293929190610e99565b60405180910390fd5b6105a984848484035f61079e565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610620575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106179190610ece565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610690575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106879190610ece565b60405180910390fd5b61069b83838361096d565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610710575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107079190610ece565b60405180910390fd5b61071b5f838361096d565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361078f575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107869190610ece565b60405180910390fd5b61079a825f8361096d565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361080e575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016108059190610ece565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361087e575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108759190610ece565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610967578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161095e9190610d27565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109bd578060025f8282546109b19190610f14565b92505081905550610a8b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610a46578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610a3d93929190610e99565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ad2578060025f8282540392505081905550610b1c565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b799190610d27565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610bc882610b86565b610bd28185610b90565b9350610be2818560208601610ba0565b610beb81610bae565b840191505092915050565b5f6020820190508181035f830152610c0e8184610bbe565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c4382610c1a565b9050919050565b610c5381610c39565b8114610c5d575f80fd5b50565b5f81359050610c6e81610c4a565b92915050565b5f819050919050565b610c8681610c74565b8114610c90575f80fd5b50565b5f81359050610ca181610c7d565b92915050565b5f8060408385031215610cbd57610cbc610c16565b5b5f610cca85828601610c60565b9250506020610cdb85828601610c93565b9150509250929050565b5f8115159050919050565b610cf981610ce5565b82525050565b5f602082019050610d125f830184610cf0565b92915050565b610d2181610c74565b82525050565b5f602082019050610d3a5f830184610d18565b92915050565b5f805f60608486031215610d5757610d56610c16565b5b5f610d6486828701610c60565b9350506020610d7586828701610c60565b9250506040610d8686828701610c93565b9150509250925092565b5f60ff82169050919050565b610da581610d90565b82525050565b5f602082019050610dbe5f830184610d9c565b92915050565b5f60208284031215610dd957610dd8610c16565b5b5f610de684828501610c60565b91505092915050565b5f8060408385031215610e0557610e04610c16565b5b5f610e1285828601610c60565b9250506020610e2385828601610c60565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e7157607f821691505b602082108103610e8457610e83610e2d565b5b50919050565b610e9381610c39565b82525050565b5f606082019050610eac5f830186610e8a565b610eb96020830185610d18565b610ec66040830184610d18565b949350505050565b5f602082019050610ee15f830184610e8a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f1e82610c74565b9150610f2983610c74565b9250828201905080821115610f4157610f40610ee7565b5b9291505056fea26469706673582212203876b94cad67173304ec8fa3dbf9534392d6d61128106d707a7eb05045e7450a64736f6c634300081a0033