[ { "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": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "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" } ]
608060405234801562000010575f80fd5b506040518060400160405280600481526020017f4b524156000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4b7261760000000000000000000000000000000000000000000000000000000081525081600390816200008e919062000602565b508060049081620000a0919062000602565b505050620000e233620000b8620000e860201b60201c565b600a620000c691906200086f565b620f4240620000d69190620008bf565b620000f060201b60201c565b62000a08565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000163575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200015a91906200094c565b60405180910390fd5b620001765f83836200017a60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001ce578060025f828254620001c1919062000967565b925050819055506200029f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200025a578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200025193929190620009b2565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002e8578060025f828254039250508190555062000332565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003919190620009ed565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200041a57607f821691505b60208210810362000430576200042f620003d5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000457565b620004a0868362000457565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004ea620004e4620004de84620004b8565b620004c1565b620004b8565b9050919050565b5f819050919050565b6200050583620004ca565b6200051d6200051482620004f1565b84845462000463565b825550505050565b5f90565b6200053362000525565b62000540818484620004fa565b505050565b5b8181101562000567576200055b5f8262000529565b60018101905062000546565b5050565b601f821115620005b657620005808162000436565b6200058b8462000448565b810160208510156200059b578190505b620005b3620005aa8562000448565b83018262000545565b50505b505050565b5f82821c905092915050565b5f620005d85f1984600802620005bb565b1980831691505092915050565b5f620005f28383620005c7565b9150826002028217905092915050565b6200060d826200039e565b67ffffffffffffffff811115620006295762000628620003a8565b5b62000635825462000402565b620006428282856200056b565b5f60209050601f83116001811462000678575f841562000663578287015190505b6200066f8582620005e5565b865550620006de565b601f198416620006888662000436565b5f5b82811015620006b1578489015182556001820191506020850194506020810190506200068a565b86831015620006d15784890151620006cd601f891682620005c7565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200077057808604811115620007485762000747620006e6565b5b6001851615620007585780820291505b8081029050620007688562000713565b945062000728565b94509492505050565b5f826200078a57600190506200085c565b8162000799575f90506200085c565b8160018114620007b25760028114620007bd57620007f3565b60019150506200085c565b60ff841115620007d257620007d1620006e6565b5b8360020a915084821115620007ec57620007eb620006e6565b5b506200085c565b5060208310610133831016604e8410600b84101617156200082d5782820a905083811115620008275762000826620006e6565b5b6200085c565b6200083c84848460016200071f565b92509050818404811115620008565762000855620006e6565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200087b82620004b8565b9150620008888362000863565b9250620008b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000779565b905092915050565b5f620008cb82620004b8565b9150620008d883620004b8565b9250828202620008e881620004b8565b91508282048414831517620009025762000901620006e6565b5b5092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009348262000909565b9050919050565b620009468162000928565b82525050565b5f602082019050620009615f8301846200093b565b92915050565b5f6200097382620004b8565b91506200098083620004b8565b92508282019050808211156200099b576200099a620006e6565b5b92915050565b620009ac81620004b8565b82525050565b5f606082019050620009c75f8301866200093b565b620009d66020830185620009a1565b620009e56040830184620009a1565b949350505050565b5f60208201905062000a025f830184620009a1565b92915050565b610eb78062000a165f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c806342966c681161006f57806342966c681461016557806370a082311461018157806379cc6790146101b157806395d89b41146101cd578063a9059cbb146101eb578063dd62ed3e1461021b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b361024b565b6040516100c09190610b05565b60405180910390f35b6100e360048036038101906100de9190610bb6565b6102db565b6040516100f09190610c0e565b60405180910390f35b6101016102fd565b60405161010e9190610c36565b60405180910390f35b610131600480360381019061012c9190610c4f565b610306565b60405161013e9190610c0e565b60405180910390f35b61014f610334565b60405161015c9190610cba565b60405180910390f35b61017f600480360381019061017a9190610cd3565b61033c565b005b61019b60048036038101906101969190610cfe565b610350565b6040516101a89190610c36565b60405180910390f35b6101cb60048036038101906101c69190610bb6565b610395565b005b6101d56103b5565b6040516101e29190610b05565b60405180910390f35b61020560048036038101906102009190610bb6565b610445565b6040516102129190610c0e565b60405180910390f35b61023560048036038101906102309190610d29565b610467565b6040516102429190610c36565b60405180910390f35b60606003805461025a90610d94565b80601f016020809104026020016040519081016040528092919081815260200182805461028690610d94565b80156102d15780601f106102a8576101008083540402835291602001916102d1565b820191905f5260205f20905b8154815290600101906020018083116102b457829003601f168201915b5050505050905090565b5f806102e56104e9565b90506102f28185856104f0565b600191505092915050565b5f600254905090565b5f806103106104e9565b905061031d858285610502565b610328858585610594565b60019150509392505050565b5f6012905090565b61034d6103476104e9565b82610614565b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103a7826103a16104e9565b83610502565b6103b18282610614565b5050565b6060600480546103c490610d94565b80601f01602080910402602001604051908101604052809291908181526020018280546103f090610d94565b801561043b5780601f106104125761010080835404028352916020019161043b565b820191905f5260205f20905b81548152906001019060200180831161041e57829003601f168201915b5050505050905090565b5f8061044f6104e9565b905061045c818585610594565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b6104fd8383836001610693565b505050565b5f61050d8484610467565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461058e578181101561057f578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161057693929190610dd3565b60405180910390fd5b61058d84848484035f610693565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610604575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105fb9190610e08565b60405180910390fd5b61060f838383610862565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610684575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161067b9190610e08565b60405180910390fd5b61068f825f83610862565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610703575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016106fa9190610e08565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610773575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161076a9190610e08565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561085c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108539190610c36565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108b2578060025f8282546108a69190610e4e565b92505081905550610980565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561093b578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161093293929190610dd3565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109c7578060025f8282540392505081905550610a11565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a6e9190610c36565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610ab2578082015181840152602081019050610a97565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610ad782610a7b565b610ae18185610a85565b9350610af1818560208601610a95565b610afa81610abd565b840191505092915050565b5f6020820190508181035f830152610b1d8184610acd565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b5282610b29565b9050919050565b610b6281610b48565b8114610b6c575f80fd5b50565b5f81359050610b7d81610b59565b92915050565b5f819050919050565b610b9581610b83565b8114610b9f575f80fd5b50565b5f81359050610bb081610b8c565b92915050565b5f8060408385031215610bcc57610bcb610b25565b5b5f610bd985828601610b6f565b9250506020610bea85828601610ba2565b9150509250929050565b5f8115159050919050565b610c0881610bf4565b82525050565b5f602082019050610c215f830184610bff565b92915050565b610c3081610b83565b82525050565b5f602082019050610c495f830184610c27565b92915050565b5f805f60608486031215610c6657610c65610b25565b5b5f610c7386828701610b6f565b9350506020610c8486828701610b6f565b9250506040610c9586828701610ba2565b9150509250925092565b5f60ff82169050919050565b610cb481610c9f565b82525050565b5f602082019050610ccd5f830184610cab565b92915050565b5f60208284031215610ce857610ce7610b25565b5b5f610cf584828501610ba2565b91505092915050565b5f60208284031215610d1357610d12610b25565b5b5f610d2084828501610b6f565b91505092915050565b5f8060408385031215610d3f57610d3e610b25565b5b5f610d4c85828601610b6f565b9250506020610d5d85828601610b6f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610dab57607f821691505b602082108103610dbe57610dbd610d67565b5b50919050565b610dcd81610b48565b82525050565b5f606082019050610de65f830186610dc4565b610df36020830185610c27565b610e006040830184610c27565b949350505050565b5f602082019050610e1b5f830184610dc4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e5882610b83565b9150610e6383610b83565b9250828201905080821115610e7b57610e7a610e21565b5b9291505056fea26469706673582212206fdf74af8f75c153e8bd9d153258e409b23201e2857401a027f52225c7a50be464736f6c63430008140033