[ { "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": "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": [], "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": "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" } ]
60806040523480156200001157600080fd5b506040518060400160405280600881526020017f424947492044414f0000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f42494749000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200052f565b508060049080519060200190620000af9291906200052f565b5050506000620000c46200018760201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000181336b033b2e3c9fd0803ce80000006200018f60201b60201c565b62000895565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002055760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620001fc919062000624565b60405180910390fd5b62000219600083836200021d60201b60201c565b5050565b6000610400549050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146200026e576200026c8185620004a160201b60201c565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620002c5578160026000828254620002b891906200067a565b925050819055506200039b565b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101562000354578481846040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200034b93929190620006e8565b60405180910390fd5b8281036000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620003e7578160026000828254039250508190555062000434565b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162000493919062000725565b60405180910390a350505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360006040518363ffffffff1660e01b8152600401620004e19291906200078f565b6020604051808303816000875af115801562000501573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005279190620007fe565b905092915050565b8280546200053d906200085f565b90600052602060002090601f016020900481019282620005615760008555620005ad565b82601f106200057c57805160ff1916838001178555620005ad565b82800160010185558215620005ad579182015b82811115620005ac5782518255916020019190600101906200058f565b5b509050620005bc9190620005c0565b5090565b5b80821115620005db576000816000905550600101620005c1565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200060c82620005df565b9050919050565b6200061e81620005ff565b82525050565b60006020820190506200063b600083018462000613565b92915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006878262000641565b9150620006948362000641565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006cc57620006cb6200064b565b5b828201905092915050565b620006e28162000641565b82525050565b6000606082019050620006ff600083018662000613565b6200070e6020830185620006d7565b6200071d6040830184620006d7565b949350505050565b60006020820190506200073c6000830184620006d7565b92915050565b6000819050919050565b6000819050919050565b600062000777620007716200076b8462000742565b6200074c565b62000641565b9050919050565b620007898162000756565b82525050565b6000604082019050620007a6600083018562000613565b620007b560208301846200077e565b9392505050565b600080fd5b60008115159050919050565b620007d881620007c1565b8114620007e457600080fd5b50565b600081519050620007f881620007cd565b92915050565b600060208284031215620008175762000816620007bc565b5b60006200082784828501620007e7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087857607f821691505b602082108114156200088f576200088e62000830565b5b50919050565b61129780620008a56000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806370a082311161007157806370a0823114610168578063715018a6146101985780638da5cb5b146101a257806395d89b41146101c0578063a9059cbb146101de578063dd62ed3e1461020e576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b661023e565b6040516100c39190610d95565b60405180910390f35b6100e660048036038101906100e19190610e50565b6102d0565b6040516100f39190610eab565b60405180910390f35b6101046102f3565b6040516101119190610ed5565b60405180910390f35b610134600480360381019061012f9190610ef0565b6102fd565b6040516101419190610eab565b60405180910390f35b61015261032c565b60405161015f9190610f5f565b60405180910390f35b610182600480360381019061017d9190610f7a565b610335565b60405161018f9190610ed5565b60405180910390f35b6101a061037d565b005b6101aa6104d5565b6040516101b79190610fb6565b60405180910390f35b6101c86104ff565b6040516101d59190610d95565b60405180910390f35b6101f860048036038101906101f39190610e50565b610591565b6040516102059190610eab565b60405180910390f35b61022860048036038101906102239190610fd1565b6105b4565b6040516102359190610ed5565b60405180910390f35b60606003805461024d90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461027990611040565b80156102c65780601f1061029b576101008083540402835291602001916102c6565b820191906000526020600020905b8154815290600101906020018083116102a957829003601f168201915b5050505050905090565b6000806102db61063b565b90506102e8818585610643565b600191505092915050565b6000600254905090565b60008061030861063b565b9050610315858285610655565b6103208585856106e9565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61038561063b565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040b906110be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461050e90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461053a90611040565b80156105875780601f1061055c57610100808354040283529160200191610587565b820191906000526020600020905b81548152906001019060200180831161056a57829003601f168201915b5050505050905090565b60008061059c61063b565b90506105a98185856106e9565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61065083838360016107df565b505050565b600061066184846105b4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106e357818110156106d3578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106ca939291906110de565b60405180910390fd5b6106e2848484840360006107df565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561075c5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107539190610fb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107cf5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107c69190610fb6565b60405180910390fd5b6107da838383610a03565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156108525760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016108499190610fb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610910576102005460005281602052326040526000606052600051600081146108c05760405160005114156108bb5760205161040055005b6108d1565b604051610200556020516040802055005b5060006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016109079190610fb6565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156109fd578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109f49190610ed5565b60405180910390a35b50505050565b6000610400549050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a4b57610a498185610c73565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a9e578160026000828254610a929190611144565b92505081905550610b71565b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b2a578481846040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b21939291906110de565b60405180910390fd5b8281036000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bbb5781600260008282540392505081905550610c08565b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c659190610ed5565b60405180910390a350505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360006040518363ffffffff1660e01b8152600401610cb19291906111df565b6020604051808303816000875af1158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf49190611234565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d36578082015181840152602081019050610d1b565b83811115610d45576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d6782610cfc565b610d718185610d07565b9350610d81818560208601610d18565b610d8a81610d4b565b840191505092915050565b60006020820190508181036000830152610daf8184610d5c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610de782610dbc565b9050919050565b610df781610ddc565b8114610e0257600080fd5b50565b600081359050610e1481610dee565b92915050565b6000819050919050565b610e2d81610e1a565b8114610e3857600080fd5b50565b600081359050610e4a81610e24565b92915050565b60008060408385031215610e6757610e66610db7565b5b6000610e7585828601610e05565b9250506020610e8685828601610e3b565b9150509250929050565b60008115159050919050565b610ea581610e90565b82525050565b6000602082019050610ec06000830184610e9c565b92915050565b610ecf81610e1a565b82525050565b6000602082019050610eea6000830184610ec6565b92915050565b600080600060608486031215610f0957610f08610db7565b5b6000610f1786828701610e05565b9350506020610f2886828701610e05565b9250506040610f3986828701610e3b565b9150509250925092565b600060ff82169050919050565b610f5981610f43565b82525050565b6000602082019050610f746000830184610f50565b92915050565b600060208284031215610f9057610f8f610db7565b5b6000610f9e84828501610e05565b91505092915050565b610fb081610ddc565b82525050565b6000602082019050610fcb6000830184610fa7565b92915050565b60008060408385031215610fe857610fe7610db7565b5b6000610ff685828601610e05565b925050602061100785828601610e05565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061105857607f821691505b6020821081141561106c5761106b611011565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006110a8602083610d07565b91506110b382611072565b602082019050919050565b600060208201905081810360008301526110d78161109b565b9050919050565b60006060820190506110f36000830186610fa7565b6111006020830185610ec6565b61110d6040830184610ec6565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061114f82610e1a565b915061115a83610e1a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561118f5761118e611115565b5b828201905092915050565b6000819050919050565b6000819050919050565b60006111c96111c46111bf8461119a565b6111a4565b610e1a565b9050919050565b6111d9816111ae565b82525050565b60006040820190506111f46000830185610fa7565b61120160208301846111d0565b9392505050565b61121181610e90565b811461121c57600080fd5b50565b60008151905061122e81611208565b92915050565b60006020828403121561124a57611249610db7565b5b60006112588482850161121f565b9150509291505056fea264697066735822122063139667def6b9b2b8c79dbd4ac01dcac63ac9ea2367e78f278502d24043f6c064736f6c634300080a0033