Address Contract Verified
Address
0xCFf7C7ff342d711532e58AF4886fe22Ed6200325
Balance
0 ETH
Nonce
1
Code Size
6374 bytes
Creator
0x7528F5D4...DBAB at tx 0x688495b0...6ac3ca
Indexed Transactions
Index loading...
Contract Bytecode
6374 bytes
0x6080604052600436106101bb5760003560e01c806367243482116100ec57806395d89b411161008a578063b5093ad911610064578063b5093ad914610561578063dd62ed3e14610581578063e84d44f8146105c7578063f2fde38b146105e857600080fd5b806395d89b41146104fe578063a335d4ff1461052b578063a9059cbb1461054157600080fd5b806375f0a874116100c657806375f0a8741461047757806380c581d1146104975780638da5cb5b146104b75780638fa81732146104d557600080fd5b8063672434821461042257806370a0823114610442578063715018a61461046257600080fd5b806323b872dd1161015957806332cde6641161013357806332cde66414610366578063333f4b3d1461038657806343cc8c2a146103dc5780635ce26dcc1461040c57600080fd5b806323b872dd146102f157806327b07d7514610311578063313ce5671461034a57600080fd5b8063095ea7b311610195578063095ea7b31461025e5780630a368e181461028e57806318160ddd146102ae5780631be19560146102d157600080fd5b80630603c8af146101c757806306fdde03146101de5780630758d9241461022657600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610608565b005b3480156101ea57600080fd5b5060408051808201909152600d81526c15195cdd0810dbdb9d1c9858dd609a1b60208201525b60405161021d91906112bb565b60405180910390f35b34801561023257600080fd5b50600654610246906001600160a01b031681565b6040516001600160a01b03909116815260200161021d565b34801561026a57600080fd5b5061027e61027936600461131e565b610677565b604051901515815260200161021d565b34801561029a57600080fd5b506101dc6102a9366004611358565b610690565b3480156102ba57600080fd5b506102c36106e8565b60405190815260200161021d565b3480156102dd57600080fd5b506101dc6102ec366004611391565b610709565b3480156102fd57600080fd5b5061027e61030c3660046113ae565b610825565b34801561031d57600080fd5b5061027e61032c366004611391565b6001600160a01b031660009081526003602052604090205460ff1690565b34801561035657600080fd5b506040516009815260200161021d565b34801561037257600080fd5b506101dc610381366004611406565b610848565b34801561039257600080fd5b506008546103b79061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161021d565b3480156103e857600080fd5b5061027e6103f7366004611391565b60076020526000908152604090205460ff1681565b34801561041857600080fd5b506102c360055481565b34801561042e57600080fd5b506101dc61043d366004611521565b61092e565b34801561044e57600080fd5b506102c361045d366004611391565b610a95565b34801561046e57600080fd5b506101dc610ab0565b34801561048357600080fd5b50600454610246906001600160a01b031681565b3480156104a357600080fd5b506101dc6104b2366004611358565b610ae9565b3480156104c357600080fd5b506000546001600160a01b0316610246565b3480156104e157600080fd5b506104eb6101f481565b60405161ffff909116815260200161021d565b34801561050a57600080fd5b50604080518082019091526004815263151154d560e21b6020820152610210565b34801561053757600080fd5b506104eb61271081565b34801561054d57600080fd5b5061027e61055c36600461131e565b610b41565b34801561056d57600080fd5b506101dc61057c3660046115ec565b610b4e565b34801561058d57600080fd5b506102c361059c36600461162e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105d357600080fd5b5060045461027e90600160a01b900460ff1681565b3480156105f457600080fd5b506101dc610603366004611391565b610bbd565b6000546001600160a01b0316331461063a5760405163118cdaa760e01b81523360048201526024015b60405180910390fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610674573d6000803e3d6000fd5b50565b60006106863384846001610c7d565b5060015b92915050565b6000546001600160a01b031633146106bd5760405163118cdaa760e01b8152336004820152602401610631565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b60006106f66009600a611759565b610704906305f5e100611768565b905090565b6000546001600160a01b031633146107365760405163118cdaa760e01b8152336004820152602401610631565b6000546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b1919061177f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156107fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108209190611798565b505050565b6000610832843384610d53565b61083d848484610dcb565b5060015b9392505050565b6000546001600160a01b031633146108755760405163118cdaa760e01b8152336004820152602401610631565b6101f461ffff84161180159061089157506101f461ffff831611155b80156108a357506101f461ffff821611155b6108ef5760405162461bcd60e51b815260206004820152601760248201527f5261746573206e6f20686967686572207468616e2035250000000000000000006044820152606401610631565b6008805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6000546001600160a01b0316331461095b5760405163118cdaa760e01b8152336004820152602401610631565b80518251146109a45760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b6044820152606401610631565b60005b82518161ffff16101561082057818161ffff16815181106109ca576109ca6117b5565b60200260200101516109db33610a95565b1015610a3e57336109eb33610a95565b838361ffff1681518110610a0157610a016117b5565b602090810291909101015160405163391434e360e21b81526001600160a01b03909316600484015260248301919091526044820152606401610631565b610a8333848361ffff1681518110610a5857610a586117b5565b6020026020010151848461ffff1681518110610a7657610a766117b5565b6020026020010151610dcb565b80610a8d816117cb565b9150506109a7565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b03163314610add5760405163118cdaa760e01b8152336004820152602401610631565b610ae76000610f04565b565b6000546001600160a01b03163314610b165760405163118cdaa760e01b8152336004820152602401610631565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000610686338484610dcb565b6000546001600160a01b03163314610b7b5760405163118cdaa760e01b8152336004820152602401610631565b6004805460058490556001600160a81b031916600160a01b851515026001600160a01b031916176001600160a01b038316908117909155610820906001610690565b6000546001600160a01b03163314610bea5760405163118cdaa760e01b8152336004820152602401610631565b6001600160a01b038116610c1457604051631e4fbdf760e01b815260006004820152602401610631565b600080546001600160a01b0390811680835260036020526040808420805460ff1990811690915592851684528320805490921660011790915590610c5782610a95565b1115610c7057610c708183610c6b84610a95565b610f54565b610c7982610f04565b5050565b6001600160a01b038416610ca75760405163e602df0560e01b815260006004820152602401610631565b6001600160a01b038316610cd157604051634a1406b160e11b815260006004820152602401610631565b6001600160a01b0380851660009081526002602090815260408083209387168352929052208290558015610d4d57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d4491815260200190565b60405180910390a35b50505050565b6001600160a01b038084166000908152600260209081526040808320938616835292905220546000198114610d4d5781811015610dbc57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610631565b610d4d84848484036000610c7d565b6001600160a01b038316610df557604051634b637e8f60e11b815260006004820152602401610631565b6001600160a01b038216610e1f5760405163ec442f0560e01b815260006004820152602401610631565b80600003610e405760405163019aa6ff60e51b815260040160405180910390fd5b6001600160a01b03831660009081526003602052604090205460019060ff1680610e8257506001600160a01b03831660009081526003602052604090205460ff165b15610e8b575060005b600081610e985782610ea3565b610ea3858585610fda565b9050610eb0858583610f54565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ef591815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03831660009081526001602052604090205481811015610fa75760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610631565b6001600160a01b039384166000908152600160205260408082209284900390925592909316825291902080549091019055565b6001600160a01b038316600090815260076020526040812054819060ff161561100a575060085461ffff1661104f565b6001600160a01b03841660009081526007602052604090205460ff161561103e575060085462010000900461ffff1661104f565b50600854640100000000900461ffff165b806000036110605782915050610841565b600061271061106f8386611768565b61107991906117ec565b9050801561108c5761108c863083610f54565b600454600160a01b900460ff1680156110a8575060095460ff16155b80156110cc57506001600160a01b03851660009081526007602052604090205460ff165b80156110e257506005546110df30610a95565b10155b156110f8576110f86110f330610a95565b61110c565b611102818561180e565b9695505050505050565b6009805460ff191660011790553060009081526002602090815260408083206006546001600160a01b0316845290915290205460001914611172573060009081526002602090815260408083206006546001600160a01b03168452909152902060001990555b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111a7576111a76117b5565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611200573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112249190611821565b81600181518110611237576112376117b5565b6001600160a01b0392831660209182029290920101526006546004805460405163791ac94760e01b81529284169363791ac94793611281938893600093899391169142910161183e565b600060405180830381600087803b15801561129b57600080fd5b505af19250505080156112ac575060015b5050506009805460ff19169055565b602081526000825180602084015260005b818110156112e957602081860181015160408684010152016112cc565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461067457600080fd5b6000806040838503121561133157600080fd5b823561133c81611309565b946020939093013593505050565b801515811461067457600080fd5b6000806040838503121561136b57600080fd5b823561137681611309565b915060208301356113868161134a565b809150509250929050565b6000602082840312156113a357600080fd5b813561084181611309565b6000806000606084860312156113c357600080fd5b83356113ce81611309565b925060208401356113de81611309565b929592945050506040919091013590565b803561ffff8116811461140157600080fd5b919050565b60008060006060848603121561141b57600080fd5b611424846113ef565b9250611432602085016113ef565b9150611440604085016113ef565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561148857611488611449565b604052919050565b600067ffffffffffffffff8211156114aa576114aa611449565b5060051b60200190565b600082601f8301126114c557600080fd5b81356114d86114d382611490565b61145f565b8082825260208201915060208360051b8601019250858311156114fa57600080fd5b602085015b838110156115175780358352602092830192016114ff565b5095945050505050565b6000806040838503121561153457600080fd5b823567ffffffffffffffff81111561154b57600080fd5b8301601f8101851361155c57600080fd5b803561156a6114d382611490565b8082825260208201915060208360051b85010192508783111561158c57600080fd5b6020840193505b828410156115b75783356115a681611309565b825260209384019390910190611593565b9450505050602083013567ffffffffffffffff8111156115d657600080fd5b6115e2858286016114b4565b9150509250929050565b60008060006060848603121561160157600080fd5b833561160c8161134a565b925060208401359150604084013561162381611309565b809150509250925092565b6000806040838503121561164157600080fd5b823561164c81611309565b9150602083013561138681611309565b634e487b7160e01b600052601160045260246000fd5b6001815b60018411156116ad578085048111156116915761169161165c565b600184161561169f57908102905b60019390931c928002611676565b935093915050565b6000826116c45750600161068a565b816116d15750600061068a565b81600181146116e757600281146116f15761170d565b600191505061068a565b60ff8411156117025761170261165c565b50506001821b61068a565b5060208310610133831016604e8410600b8410161715611730575081810a61068a565b61173d6000198484611672565b80600019048211156117515761175161165c565b029392505050565b600061084160ff8416836116b5565b808202811582820484141761068a5761068a61165c565b60006020828403121561179157600080fd5b5051919050565b6000602082840312156117aa57600080fd5b81516108418161134a565b634e487b7160e01b600052603260045260246000fd5b600061ffff821661ffff81036117e3576117e361165c565b60010192915050565b60008261180957634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561068a5761068a61165c565b60006020828403121561183357600080fd5b815161084181611309565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b818110156118905783516001600160a01b0316835260209384019390920191600101611869565b50506001600160a01b03959095166060840152505060800152939250505056fea264697066735822122080c500c832bce22508c90a57ed8d42b7d6fa60b0e1facdd507d411049bf02aea64736f6c634300081b0033
Verified Source Code Full Match
Compiler: v0.8.27+commit.40a35a09
EVM: paris
Optimization: Yes (200 runs)
TEST.sol 320 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";
import "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";
import "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol";
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function owner() external view returns (address);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external pure returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
error OwnableUnauthorizedAccount(address account);
error OwnableInvalidOwner(address owner);
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InvalidAmount();
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
}
contract TEST is IERC20 {
address private _owner;
mapping(address account => uint256) private _balances;
mapping(address account => mapping(address spender => uint256)) private _allowances;
uint8 private constant _decimals = 9;
uint256 private constant _totalSupply = 100_000_000 * (10 ** _decimals);
string private constant _name = "Test Contract";
string private constant _symbol = "TEST";
mapping(address => bool) private _isExcludedFromTaxes;
address public marketingWallet;
bool public marketingEnabled = false;
uint256 public marketingThreshold;
IUniswapV2Router02 public dexRouter;
mapping(address => bool) public lpPairs;
struct Taxes {
uint16 buy;
uint16 sell;
uint16 transfer;
}
uint16 public constant MAX_TAX_RATE = 500;
uint16 public constant TAX_DIVISOR = 10000;
Taxes public taxRates = Taxes({buy: 500, sell: 500, transfer: 0});
constructor(address _dexRouter, bool createPair) payable {
dexRouter = IUniswapV2Router02(_dexRouter);
_owner = msg.sender;
_balances[_owner] = _totalSupply;
emit Transfer(address(0), _owner, _totalSupply);
_approve(_owner, address(_dexRouter), type(uint256).max, false);
_approve(address(this), address(_dexRouter), type(uint256).max, false);
if (createPair) {
address selfWETH = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
lpPairs[selfWETH] = true;
}
_isExcludedFromTaxes[_owner] = true;
_isExcludedFromTaxes[address(this)] = true;
}
modifier onlyOwner() {
if (_owner != msg.sender) {
revert OwnableUnauthorizedAccount(msg.sender);
}
_;
}
bool private inSwap;
modifier inSwapFlag() {
inSwap = true;
_;
inSwap = false;
}
receive() external payable {}
function owner() external view override returns (address) {
return _owner;
}
function name() external pure override returns (string memory) {
return _name;
}
function symbol() external pure override returns (string memory) {
return _symbol;
}
function decimals() external pure override returns (uint8) {
return _decimals;
}
function totalSupply() external pure override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address holder, address spender) external view override returns (uint256) {
return _allowances[holder][spender];
}
function isExcludedFromTaxes(address account) external view returns (bool) {
return _isExcludedFromTaxes[account];
}
function approve(address spender, uint256 value) external returns (bool) {
_approve(msg.sender, spender, value, true);
return true;
}
function transfer(address to, uint256 value) external returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
_spendAllowance(from, msg.sender, value);
_transfer(from, to, value);
return true;
}
function setLpPair(address pair, bool enable) public onlyOwner {
lpPairs[pair] = enable;
}
function setupMarketing(bool _enable, uint256 _threshold, address _recipient) public onlyOwner {
marketingEnabled = _enable;
marketingThreshold = _threshold;
marketingWallet = _recipient;
setExcludedFromTaxes(marketingWallet, true);
}
function setExcludedFromTaxes(address who, bool enabled) public onlyOwner {
_isExcludedFromTaxes[who] = enabled;
}
function setTaxes(uint16 _buyRate, uint16 _sellRate, uint16 _transferRate) external onlyOwner {
require(
_buyRate <= MAX_TAX_RATE && _sellRate <= MAX_TAX_RATE && _transferRate <= MAX_TAX_RATE,
"Rates no higher than 5%"
);
taxRates.buy = _buyRate;
taxRates.sell = _sellRate;
taxRates.transfer = _transferRate;
}
function sweepFund() external onlyOwner {
payable(_owner).transfer(address(this).balance);
}
function sweepToken(address token) external onlyOwner {
IERC20 TOKEN = IERC20(token);
TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
}
function airdrop(address[] memory accounts, uint256[] memory values) external onlyOwner {
require(accounts.length == values.length, "Lengths do not match.");
for (uint16 i = 0; i < accounts.length; i++) {
if (balanceOf(msg.sender) < values[i]) {
revert ERC20InsufficientBalance(msg.sender, balanceOf(msg.sender), values[i]);
}
_transfer(msg.sender, accounts[i], values[i]);
}
}
function renounceOwnership() external onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) external onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
address oldOwner = _owner;
_isExcludedFromTaxes[oldOwner] = false;
_isExcludedFromTaxes[newOwner] = true;
if (balanceOf(oldOwner) > 0) {
_update(oldOwner, newOwner, balanceOf(oldOwner));
}
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
function _takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
uint256 rate;
if (lpPairs[from]) {
rate = taxRates.buy;
} else if (lpPairs[to]) {
rate = taxRates.sell;
} else {
rate = taxRates.transfer;
}
if (rate == 0) return amount;
uint256 feeAmount = amount * rate / TAX_DIVISOR;
if (feeAmount > 0) {
_update(from, address(this), feeAmount);
}
if (marketingEnabled && !inSwap && lpPairs[to] && balanceOf(address(this)) >= marketingThreshold) {
_fundMarketing(balanceOf(address(this)));
}
return amount - feeAmount;
}
function _fundMarketing(uint256 amountIn) internal inSwapFlag {
if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
_allowances[address(this)][address(dexRouter)] = type(uint256).max;
}
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = dexRouter.WETH();
try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountIn, 0, path, marketingWallet, block.timestamp
) {} catch {}
}
function _transfer(address from, address to, uint256 amount) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
if (amount == 0) {
revert ERC20InvalidAmount();
}
bool takeTax = true;
if (_isExcludedFromTaxes[from] || _isExcludedFromTaxes[to]) {
takeTax = false;
}
uint256 amountAfterTax = takeTax ? _takeTaxes(from, to, amount) : amount;
_update(from, to, amountAfterTax);
emit Transfer(from, to, amountAfterTax);
}
function _update(address from, address to, uint256 value) internal {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
// Overflow not possible: value <= fromBalance <= totalSupply.
_balances[from] = fromBalance - value;
}
unchecked {
// Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
_balances[to] += value;
}
}
function _approve(address holder, address spender, uint256 value, bool emitEvent) internal {
if (holder == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[holder][spender] = value;
if (emitEvent) {
emit Approval(holder, spender, value);
}
}
function _spendAllowance(address holder, address spender, uint256 value) internal {
uint256 currentAllowance = _allowances[holder][spender];
if (currentAllowance != type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(spender, currentAllowance, value);
}
unchecked {
_approve(holder, spender, currentAllowance - value, false);
}
}
}
}
IUniswapV2Pair.sol 52 lines
pragma solidity >=0.5.0;
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
IUniswapV2Factory.sol 17 lines
pragma solidity >=0.5.0;
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
IUniswapV2Router01.sol 95 lines
pragma solidity >=0.6.2;
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
IUniswapV2Router02.sol 44 lines
pragma solidity >=0.6.2;
import './IUniswapV2Router01.sol';
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
Read Contract
MAX_TAX_RATE 0x8fa81732 → uint16
TAX_DIVISOR 0xa335d4ff → uint16
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
dexRouter 0x0758d924 → address
isExcludedFromTaxes 0x27b07d75 → bool
lpPairs 0x43cc8c2a → bool
marketingEnabled 0xe84d44f8 → bool
marketingThreshold 0x5ce26dcc → uint256
marketingWallet 0x75f0a874 → address
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
taxRates 0x333f4b3d → uint16, uint16, uint16
totalSupply 0x18160ddd → uint256
Write Contract 12 functions
These functions modify contract state and require a wallet transaction to execute.
airdrop 0x67243482
address[] accounts
uint256[] values
approve 0x095ea7b3
address spender
uint256 value
returns: bool
renounceOwnership 0x715018a6
No parameters
setExcludedFromTaxes 0x0a368e18
address who
bool enabled
setLpPair 0x80c581d1
address pair
bool enable
setTaxes 0x32cde664
uint16 _buyRate
uint16 _sellRate
uint16 _transferRate
setupMarketing 0xb5093ad9
bool _enable
uint256 _threshold
address _recipient
sweepFund 0x0603c8af
No parameters
sweepToken 0x1be19560
address token
transfer 0xa9059cbb
address to
uint256 value
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 value
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
Transaction index is loading. Only unfinalized transactions are shown while the index starts up.