[ { "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": [], "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50600073ffffffffffffffffffffffffffffffffffffffff166200003a6200018d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161415620000975760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200008e919062000611565b60405180910390fd5b620000b7620000ab6200018d60201b60201c565b6200019560201b60201c565b6040518060400160405280600d81526020017f5745454420534f2053574545540000000000000000000000000000000000000081525060049080519060200190620001049291906200051c565b506040518060400160405280600481526020017f574545440000000000000000000000000000000000000000000000000000000081525060059080519060200190620001529291906200051c565b5060006c0183bdac6ae9bc1c8cc0000000905062000186620001796200018d60201b60201c565b826200025960201b60201c565b5062000794565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002cf5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002c6919062000611565b60405180910390fd5b620002e360008383620002e760201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200033e57806003600082825462000331919062000667565b9250508190555062000416565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620003ce578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620003c593929190620006d5565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004625780600360008282540392505081905550620004b0565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200050f919062000712565b60405180910390a3505050565b8280546200052a906200075e565b90600052602060002090601f0160209004810192826200054e57600085556200059a565b82601f106200056957805160ff19168380011785556200059a565b828001600101855582156200059a579182015b82811115620005995782518255916020019190600101906200057c565b5b509050620005a99190620005ad565b5090565b5b80821115620005c8576000816000905550600101620005ae565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005f982620005cc565b9050919050565b6200060b81620005ec565b82525050565b600060208201905062000628600083018462000600565b92915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000674826200062e565b915062000681836200062e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006b957620006b862000638565b5b828201905092915050565b620006cf816200062e565b82525050565b6000606082019050620006ec600083018662000600565b620006fb6020830185620006c4565b6200070a6040830184620006c4565b949350505050565b6000602082019050620007296000830184620006c4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200077757607f821691505b602082108114156200078e576200078d6200072f565b5b50919050565b6110ff80620007a46000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063715018a611610071578063715018a6146101a35780638da5cb5b146101ad57806395d89b41146101cb578063a9059cbb146101e9578063dd62ed3e14610219578063f2fde38b14610249576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce5671461015557806370a0823114610173575b600080fd5b6100c1610265565b6040516100ce9190610d30565b60405180910390f35b6100f160048036038101906100ec9190610deb565b6102f7565b6040516100fe9190610e46565b60405180910390f35b61010f61031a565b60405161011c9190610e70565b60405180910390f35b61013f600480360381019061013a9190610e8b565b610324565b60405161014c9190610e46565b60405180910390f35b61015d610353565b60405161016a9190610efa565b60405180910390f35b61018d60048036038101906101889190610f15565b61035c565b60405161019a9190610e70565b60405180910390f35b6101ab6103a5565b005b6101b56103b9565b6040516101c29190610f51565b60405180910390f35b6101d36103e2565b6040516101e09190610d30565b60405180910390f35b61020360048036038101906101fe9190610deb565b610474565b6040516102109190610e46565b60405180910390f35b610233600480360381019061022e9190610f6c565b610497565b6040516102409190610e70565b60405180910390f35b610263600480360381019061025e9190610f15565b61051e565b005b60606004805461027490610fdb565b80601f01602080910402602001604051908101604052809291908181526020018280546102a090610fdb565b80156102ed5780601f106102c2576101008083540402835291602001916102ed565b820191906000526020600020905b8154815290600101906020018083116102d057829003601f168201915b5050505050905090565b6000806103026105a5565b905061030f8185856105ad565b600191505092915050565b6000600354905090565b60008061032f6105a5565b905061033c8582856105bf565b610347858585610653565b60019150509392505050565b60006012905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6103ad610749565b6103b760006107d0565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546103f190610fdb565b80601f016020809104026020016040519081016040528092919081815260200182805461041d90610fdb565b801561046a5780601f1061043f5761010080835404028352916020019161046a565b820191906000526020600020905b81548152906001019060200180831161044d57829003601f168201915b5050505050905090565b60008061047f6105a5565b905061048c818585610653565b600191505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610526610749565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156105995760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105909190610f51565b60405180910390fd5b6105a2816107d0565b50565b600033905090565b6105ba8383836001610894565b505050565b60006105cb8484610497565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461064d578181101561063d578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106349392919061100d565b60405180910390fd5b61064c84848484036000610894565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106c65760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106bd9190610f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107395760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107309190610f51565b60405180910390fd5b610744838383610a6d565b505050565b6107516105a5565b73ffffffffffffffffffffffffffffffffffffffff1661076f6103b9565b73ffffffffffffffffffffffffffffffffffffffff16146107ce576107926105a5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107c59190610f51565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156109075760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016108fe9190610f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561097a5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016109719190610f51565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610a67578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a5e9190610e70565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ac0578060036000828254610ab49190611073565b92505081905550610b95565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b4d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b449392919061100d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bdf5780600360008282540392505081905550610c2d565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c8a9190610e70565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610cd1578082015181840152602081019050610cb6565b83811115610ce0576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d0282610c97565b610d0c8185610ca2565b9350610d1c818560208601610cb3565b610d2581610ce6565b840191505092915050565b60006020820190508181036000830152610d4a8184610cf7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d8282610d57565b9050919050565b610d9281610d77565b8114610d9d57600080fd5b50565b600081359050610daf81610d89565b92915050565b6000819050919050565b610dc881610db5565b8114610dd357600080fd5b50565b600081359050610de581610dbf565b92915050565b60008060408385031215610e0257610e01610d52565b5b6000610e1085828601610da0565b9250506020610e2185828601610dd6565b9150509250929050565b60008115159050919050565b610e4081610e2b565b82525050565b6000602082019050610e5b6000830184610e37565b92915050565b610e6a81610db5565b82525050565b6000602082019050610e856000830184610e61565b92915050565b600080600060608486031215610ea457610ea3610d52565b5b6000610eb286828701610da0565b9350506020610ec386828701610da0565b9250506040610ed486828701610dd6565b9150509250925092565b600060ff82169050919050565b610ef481610ede565b82525050565b6000602082019050610f0f6000830184610eeb565b92915050565b600060208284031215610f2b57610f2a610d52565b5b6000610f3984828501610da0565b91505092915050565b610f4b81610d77565b82525050565b6000602082019050610f666000830184610f42565b92915050565b60008060408385031215610f8357610f82610d52565b5b6000610f9185828601610da0565b9250506020610fa285828601610da0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610ff357607f821691505b6020821081141561100757611006610fac565b5b50919050565b60006060820190506110226000830186610f42565b61102f6020830185610e61565b61103c6040830184610e61565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061107e82610db5565b915061108983610db5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110be576110bd611044565b5b82820190509291505056fea2646970667358221220d8a9fba30a77259fd678e0780f898e3b7976cdb825d6050567538c7b2011a8c964736f6c634300080a0033