[ { "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": "liquidityPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "renounceTokenOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidityPool", "type": "address" } ], "name": "setLiquidityPool", "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" } ]
60806040523480156200001157600080fd5b50336040518060400160405280600881526020017f536e6f77526973650000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f73524953450000000000000000000000000000000000000000000000000000008152508160039081620000909190620008b5565b508060049081620000a29190620008b5565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001119190620009e1565b60405180910390fd5b6200012b816200015260201b60201c565b506200014c336d036c341e1f992f96840fe00000006200021860201b60201c565b62000b7c565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200028d5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002849190620009e1565b60405180910390fd5b620002a160008383620002a560201b60201c565b5050565b620002b8838383620003e160201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603620003db576200031f6200061160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620003935750620003646200061160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b620003d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003cc9062000a85565b60405180910390fd5b620003dc565b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620004375780600260008282546200042a919062000ad6565b925050819055506200050d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620004c6578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620004bd9392919062000b22565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005585780600260008282540392505081905550620005a5565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000604919062000b5f565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006bd57607f821691505b602082108103620006d357620006d262000675565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200073d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006fe565b620007498683620006fe565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000796620007906200078a8462000761565b6200076b565b62000761565b9050919050565b6000819050919050565b620007b28362000775565b620007ca620007c1826200079d565b8484546200070b565b825550505050565b600090565b620007e1620007d2565b620007ee818484620007a7565b505050565b5b8181101562000816576200080a600082620007d7565b600181019050620007f4565b5050565b601f82111562000865576200082f81620006d9565b6200083a84620006ee565b810160208510156200084a578190505b620008626200085985620006ee565b830182620007f3565b50505b505050565b600082821c905092915050565b60006200088a600019846008026200086a565b1980831691505092915050565b6000620008a5838362000877565b9150826002028217905092915050565b620008c0826200063b565b67ffffffffffffffff811115620008dc57620008db62000646565b5b620008e88254620006a4565b620008f58282856200081a565b600060209050601f8311600181146200092d576000841562000918578287015190505b62000924858262000897565b86555062000994565b601f1984166200093d86620006d9565b60005b82811015620009675784890151825560018201915060208501945060208101905062000940565b8683101562000987578489015162000983601f89168262000877565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009c9826200099c565b9050919050565b620009db81620009bc565b82525050565b6000602082019050620009f86000830184620009d0565b92915050565b600082825260208201905092915050565b7f50617469656e6365202d2054726164696e67204e6f742053746172746564205960008201527f6574210000000000000000000000000000000000000000000000000000000000602082015250565b600062000a6d602383620009fe565b915062000a7a8262000a0f565b604082019050919050565b6000602082019050818103600083015262000aa08162000a5e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ae38262000761565b915062000af08362000761565b925082820190508082111562000b0b5762000b0a62000aa7565b5b92915050565b62000b1c8162000761565b82525050565b600060608201905062000b396000830186620009d0565b62000b48602083018562000b11565b62000b57604083018462000b11565b949350505050565b600060208201905062000b76600083018462000b11565b92915050565b6113848062000b8c6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610264578063dd62ed3e14610294578063e14f08d5146102c4578063f2fde38b146102ce576100f5565b806370a08231146101ee578063715018a61461021e5780638da5cb5b1461022857806395d89b4114610246576100f5565b806318160ddd116100d357806318160ddd1461016457806323b872dd14610182578063313ce567146101b2578063665a11ca146101d0576100f5565b806301877020146100fa57806306fdde0314610116578063095ea7b314610134575b600080fd5b610114600480360381019061010f9190610f19565b6102ea565b005b61011e610336565b60405161012b9190610fd6565b60405180910390f35b61014e6004803603810190610149919061102e565b6103c8565b60405161015b9190611089565b60405180910390f35b61016c6103eb565b60405161017991906110b3565b60405180910390f35b61019c600480360381019061019791906110ce565b6103f5565b6040516101a99190611089565b60405180910390f35b6101ba610424565b6040516101c7919061113d565b60405180910390f35b6101d861042d565b6040516101e59190611167565b60405180910390f35b61020860048036038101906102039190610f19565b610453565b60405161021591906110b3565b60405180910390f35b61022661049b565b005b6102306104af565b60405161023d9190611167565b60405180910390f35b61024e6104d9565b60405161025b9190610fd6565b60405180910390f35b61027e6004803603810190610279919061102e565b61056b565b60405161028b9190611089565b60405180910390f35b6102ae60048036038101906102a99190611182565b61058e565b6040516102bb91906110b3565b60405180910390f35b6102cc610615565b005b6102e860048036038101906102e39190610f19565b610627565b005b6102f26106ad565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060038054610345906111f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610371906111f1565b80156103be5780601f10610393576101008083540402835291602001916103be565b820191906000526020600020905b8154815290600101906020018083116103a157829003601f168201915b5050505050905090565b6000806103d3610734565b90506103e081858561073c565b600191505092915050565b6000600254905090565b600080610400610734565b905061040d85828561074e565b6104188585856107e2565b60019150509392505050565b60006012905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104a36106ad565b6104ad60006108d6565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104e8906111f1565b80601f0160208091040260200160405190810160405280929190818152602001828054610514906111f1565b80156105615780601f1061053657610100808354040283529160200191610561565b820191906000526020600020905b81548152906001019060200180831161054457829003601f168201915b5050505050905090565b600080610576610734565b90506105838185856107e2565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61061d6106ad565b61062561049b565b565b61062f6106ad565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106a15760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106989190611167565b60405180910390fd5b6106aa816108d6565b50565b6106b5610734565b73ffffffffffffffffffffffffffffffffffffffff166106d36104af565b73ffffffffffffffffffffffffffffffffffffffff1614610732576106f6610734565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107299190611167565b60405180910390fd5b565b600033905090565b610749838383600161099c565b505050565b600061075a848461058e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107dc57818110156107cc578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107c393929190611222565b60405180910390fd5b6107db8484848403600061099c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108545760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161084b9190611167565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c65760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108bd9190611167565b60405180910390fd5b6108d1838383610b73565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a0e5760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610a059190611167565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a805760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a779190611167565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610b6d578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b6491906110b3565b60405180910390a35b50505050565b610b7e838383610c91565b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c8b57610bdc6104af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610c475750610c186104af565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d906112cb565b60405180910390fd5b610c8c565b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ce3578060026000828254610cd7919061131a565b92505081905550610db6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d6f578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d6693929190611222565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dff5780600260008282540392505081905550610e4c565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ea991906110b3565b60405180910390a3505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ee682610ebb565b9050919050565b610ef681610edb565b8114610f0157600080fd5b50565b600081359050610f1381610eed565b92915050565b600060208284031215610f2f57610f2e610eb6565b5b6000610f3d84828501610f04565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f80578082015181840152602081019050610f65565b60008484015250505050565b6000601f19601f8301169050919050565b6000610fa882610f46565b610fb28185610f51565b9350610fc2818560208601610f62565b610fcb81610f8c565b840191505092915050565b60006020820190508181036000830152610ff08184610f9d565b905092915050565b6000819050919050565b61100b81610ff8565b811461101657600080fd5b50565b60008135905061102881611002565b92915050565b6000806040838503121561104557611044610eb6565b5b600061105385828601610f04565b925050602061106485828601611019565b9150509250929050565b60008115159050919050565b6110838161106e565b82525050565b600060208201905061109e600083018461107a565b92915050565b6110ad81610ff8565b82525050565b60006020820190506110c860008301846110a4565b92915050565b6000806000606084860312156110e7576110e6610eb6565b5b60006110f586828701610f04565b935050602061110686828701610f04565b925050604061111786828701611019565b9150509250925092565b600060ff82169050919050565b61113781611121565b82525050565b6000602082019050611152600083018461112e565b92915050565b61116181610edb565b82525050565b600060208201905061117c6000830184611158565b92915050565b6000806040838503121561119957611198610eb6565b5b60006111a785828601610f04565b92505060206111b885828601610f04565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061120957607f821691505b60208210810361121c5761121b6111c2565b5b50919050565b60006060820190506112376000830186611158565b61124460208301856110a4565b61125160408301846110a4565b949350505050565b7f50617469656e6365202d2054726164696e67204e6f742053746172746564205960008201527f6574210000000000000000000000000000000000000000000000000000000000602082015250565b60006112b5602383610f51565b91506112c082611259565b604082019050919050565b600060208201905081810360008301526112e4816112a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061132582610ff8565b915061133083610ff8565b9250828201905080821115611348576113476112eb565b5b9291505056fea26469706673582212201fe7e54a7f15d03d33e1f81d718fe98a3758ccb5b39b93976ed1bc8c7fac747364736f6c63430008140033