EthereumEthereum
0x55...e16a
CryptoChampionGems

CryptoChampionGems

CCG

Token
Capitalización de Mercado
$1.00
 
Precio
2%
¡El código fuente de este contrato está verificado!
Metadatos del Contrato
Compilador
0.8.15+commit.e14f2714
Idioma
Solidity
Código Fuente del Contrato
Archivo 1 de 1: CryptoChampionGems.sol
/**

// This contract has been developped by Crypto Champion Game team.

Any question? feel free to contact @Trum_dev on telegram!

 _______  _______           _______ _________ _______    _______           _______  _______  _______ _________ _______  _          _______  _______  _______  _______ 
(  ____ \(  ____ )|\     /|(  ____ )\__   __/(  ___  )  (  ____ \|\     /|(  ___  )(       )(  ____ )\__   __/(  ___  )( (    /|  (  ____ \(  ___  )(       )(  ____ \
| (    \/| (    )|( \   / )| (    )|   ) (   | (   ) |  | (    \/| )   ( || (   ) || () () || (    )|   ) (   | (   ) ||  \  ( |  | (    \/| (   ) || () () || (    \/
| |      | (____)| \ (_) / | (____)|   | |   | |   | |  | |      | (___) || (___) || || || || (____)|   | |   | |   | ||   \ | |  | |      | (___) || || || || (__    
| |      |     __)  \   /  |  _____)   | |   | |   | |  | |      |  ___  ||  ___  || |(_)| ||  _____)   | |   | |   | || (\ \) |  | | ____ |  ___  || |(_)| ||  __)   
| |      | (\ (      ) (   | (         | |   | |   | |  | |      | (   ) || (   ) || |   | || (         | |   | |   | || | \   |  | | \_  )| (   ) || |   | || (      
| (____/\| ) \ \__   | |   | )         | |   | (___) |  | (____/\| )   ( || )   ( || )   ( || )      ___) (___| (___) || )  \  |  | (___) || )   ( || )   ( || (____/\
(_______/|/   \__/   \_/   |/          )_(   (_______)  (_______/|/     \||/     \||/     \||/       \_______/(_______)|/    )_)  (_______)|/     \||/     \|(_______/
                                                                                                                                                                     
CryptoChampion is an epic mobile/browser NFT blockchain-based game where you can fight, collect, earn and conquer with and against other players.
                                                
                                                
Play now: https://cryptochampion.game/launcher/
Website: https://cryptochampion.game/
Whitepaper: https://whitepaper.cryptochampion.game/
Telegram: https://t.me/CryptoChampionPortal/
Twitter: https://twitter.com/CChampionGame/
Instagram: https://www.instagram.com/cryptochampiongame/
Discord: https://discord.gg/cryptochampiongame/




                                                                         -MMMMMMMMMMMMML"                                                                            
                                                                       'dMd_>><<<<<<<<fM#[                                                                           
                                                                        mMp>>+]?{?????wMj                                                                            
                                                                         #ML>>-?](|(|/MJ                                                                             
                                                                         .Mkf(vZZQQmpWb>                                                                             
                                                                         .mMobbbbwwwqMq                                                                              
                                                                         .pMabbbbwwwqMp                                                                              
                                                                         .*MabbbbwwwqMp'                                                                             
                                                                         .MMobbbbwwwqMbl                                                                             
                                                                         .MMabbbbwwwwMo(                                                                             
                                                                         .WMobbbbwwwwM*u                                                                             
                                                                         .*MobbbbqwwwMMY                                                                             
                                                                         .*MopbbbwwwwMMJ                                                                             
                                                                         .#MobbbbwwwwMMX                                                                             
                                                                         .MMobbbqqqwwMMU                                                                             
                                                                         .MMobbbbqppqMMJ                                                                             
                                                                         .MMabbbbqwwqWMJ                                                                             
                                                                         .MMobbbbqwwwMMJ                                                                             
                                                                         .MMabbbbqwwq#MJ                                                                             
                                                                         'MMobbbbqwww*MJ                                                                             
                                                                         1MMahabY0mqk*MMMQ/(;                                                                        
                                                                    ;cUhMMqxr]~~+[[[(/jOZb#MMMhJc)                                                                   
                                                               "xZ*MMZ))_+~~~~~~~[]_+[]]]}11uCLq#MMMx                                                                
                                                              <Mv__~~~~~<<~<~?]~~]]][[[[]]][]]][[zQMn                                                                
                                                              {#u~~~~~+--]{uXYkdpakbr]}(()[]]]]]]]/Mn                                                                
 +MO|]?????]~:                                               `##CfU0hWMMM#llIIIl!]]?????YWMMM#WbvxcMJ??}Z8##b{??_:                                                   
 ?MMMMMMMMMMMMMMMMMMW#Zxfffffj               '+ffffffnq8WMMMMMMMMMMMMaUZ##uuux~l!????]|Xw#MMMMMMMMMMMMMMMMMMMMMMMMMMMpffft'         lbMMMMMMMMMMM&8&kZXrfffffffftfff'
.)MjIl_1||(((((((((nZ*8WMMMMM#;LXYYYYUZ#MMMMMMMMMMMMMMMMMMMMMMMMM]     JMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM&oY|0MMMMMMMMMMMMMMMMMMZUYY/'JMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM#^
'cMjI'..`"::;;IIIIIIIIIII>?ILMMMMMMMMMMMMMMM#&BbY{_-?/uM##B%M#MMM*,   +pMMMMMMMMMMMMMMMM&q)/t]-?->lllllllllXM<llli+?-????-nb8#MMMMMMMMMplllllllli<+-}f{-----???}aMMX'
`wMrllllllllllllllllllllll~_LMlllllllllllllllllllll++ltMZllll1fdM#:   xMMo!!!!!!?#*(!!!!!!!!1_!!!!!!!!!!!!!YM~!!!!!!!!!!!!!!!!!!!!!i[1Mp!!!!!!!!!!}}!ll!!!!!!' >UMM+ 
^*Mr!!!!!!!!!!!!!!!!!!!!!!~{mM!!!!!!!!!!!!!!!!!!!~?!!ifMmii>{1faMMMMMMMMM#iiiiii]#*|iiiiiiii1[iiiiiiiiiiiiiYM+iiiiiiiiiiiiiiiiii<-}+iiMdiiii!!>-}<!!!!!!!!!!i!"<UMM~ 
"&Mx>>iiiiiiiiiiiiiiiiiiiii-mM>iiiiiiiiiii>>>>>+]>>>>>jMm>~}1]{*MMMMMMMMM#>>>>>>[#*>>>>>>>>1}]tjj/>>>>>>>>UM_>>>>>>>>>>>>>>>~~?>>>>>>Md>>>>_1->>>>>>>>>>>>>>>>~JMM~ 
"WMn<<<<<<<<<)MMMWWWWWWWM*hdoM<<<<<<<_YXCq#WWC?~<<<<<<rMm<]1_<)MMMMMMMMMM#~~~~~~{#*t~~~~~~~#MMMMMMd~~~~~~~~UM-^'"::,:~~~<~~~++~~~~~~~<Md<_}]_<<<<<<<<<<<<<<<<<<_JMM~ 
"#Mu++++++++_QMMMMMMMMMMMMMMMM+++++~+}#MMMMMMU++++++++xMw?}-++(MMMMMMMMMM#++++++1#*f+++++++#MMMMMMp++++_+++JM#*oakdqwL+++++++umZZZZZZZMb{[_++++rd*MMMMMW-++++++-CM#< 
^#Mv-------_]8MMMMMMMMMMMMMMMM-______{MMMMMMMU________nMq}-_--[vQqa88&M#M#_-----)##j-------#MMMMMM(--------CMMMMMMMMWk-__----CWMMMMMMMMb-------zMMMMMMM&?_____-]CMM~ 
"MMc]]]]]]]]}MMMMMMMMMMMMMMMMM???????)MMMMMMMC????????uMq???????????????????????(##r???????#MMMMMM]?????[[?CMMMMMMMMMk???????jkMMMMMMMMb???????XMMMMMMM&[??????[LMOI 
"MMz}}}}[[[[{MMMMMMMMMMMMMMMMM[]][[]](MMMMMMMC]]]]]]]]uMq]]]]]]]]]]]]]][]]]]]]]]|##x[[]][]]#MMMMMo]]]]]][1}LMMMMMMMMMh]]]]]]]1qMMMMMMMMb]]]]]]]YMMMMMMM#}]]]]]]}QM|  
"MMX{{{{{{{{)MMMMMMMMMMMMMMMMM}}}}}}{{[[[}}}}}}}}}}}I+vMMMwXzv}}}}}}}}}}}}}}}}[[_##x}[}[[}[[[[}}[[[[}}[[[}{LMMMMMMMMMh[[[[}{}}mMMMMMMMMb}}}[[[}YMMMMMMM#{[[[[[[{QM)  
"MMY11111111OMMMMMMMMMMMMMMMMM1{{{{1{{{{{{{{{{{{{{?I^_cMMMMMMMM#X{{{{{{{{/{}{{{<[##n}{{{{{{{{{{{{{{{{{{{{{10MMMMMMMMMh{}{{{}{}mMMMMMMMMb}{{}}{{UMMMMMMM#1}{{}{{1QM)  
"MMY))))1111&MMMMMMMMMMMMMMMMM111111111111111111111{1UkMMMMMMMMdj1111111{&MMMMMMMM#n{1{{{{{{{{{{{{{{{{{{{{1QMMMMMMMMMh{11{{{{{wMMMMMMMMk{{{{{{{UMMMMMMM#){{{{{{)0M)  
"MMY))))))))||||(((|trvYOa#WMM)111111)11)111)11)1uMMMMMMMMMMMMMO)111)11)1#MMMMMMMM#n11111111111111(Z#***MMMMMMMMMMMMMa1111111{wMMMMMMMMk111111111((|(/L#(111111(0#1  
;MMY))))))))))))))))))))))))mM))))))))vwf)))))))))n#MMMMMMMMMMMO)))))))))MMMMMMMMM#n1))))))))uMMMMMMMMMMMMMMMMMMMMMMMa11111111wMMMMMMMMk11111)1))1)11))11111111(0M)  
<MMY))))))))))))))))))))))))mM))))))))vMMx)))))))))vaMMMMMMMMMMO)))))))))MMMMMMMMM#t{))))))))vMMMMMMMMMMMMMMMMMMMMMMMa))))))1{wMMMMMMMMk)[{))))))))))))))))))))(0w<  
/MMY))))))))))))))))))))))))mM()))))))vMMML))))))))1vaMMMMMMMMMO)))))))))MMMMMMMMM#1[))))))))vMMMMMMMMMMMMMMMMMMMMMMMa))))))+>wMMMMMMMMk)iI{)))))))))))))))))))|0c.  
QMMY)))))))))))))))fUZZZZZZZaM()))))))uMMMM0)))))))[])*MMMMMMMMO))))))))|MMMMMMMMM#r1))))))))/OMMMMMMMMMMMMMMMMMMMMMMa))))))[]mMMMMMMMMk)[+{)))))))))))))))))))|0u   
hMMabbbka#MMMMMMMMMMMMMMMMMMMMbbbbbbkk*MMMMMMMMMMMMMMMMMMMMMMMMokkbbbbbbhMMMMMMMMMMabbbbbbkbbboMMMMMMMMMMMMMMMMMMMMMM#bbbbbkkh#MMMMMMMMMMMMMMMMMMMMMWM*ahkbbbbbkou   
&MMMMMMMMMMMMMMMMMMMM&tdMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMp:             .....`i{v%%z   
                       qMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM*C/_ll                        
                       qMjv0qmmwwwwwwwoMMMMMMMMMMhdqaM#&WapwwwwwwwwMdwww*MMMhwmZwhMMMMMMMM*qwwwq*MMMMMMMMMMM#W#mwqb*&W#MMMMMMkmmmmdMMMmmmmm*M                        
                       pMttttttttttttfOmttt#MMMMjtt_vXtttttttttttl(#ttt>XMMwfttt"Xput/////////[(k0Yxt1(/////<(*|||||||||||(+YC|||||QMM|||}{kM                        
                       pMjjjjjjjjjjfjrZwjjf8MMMWxjj-vYjjjjjjjjjjj!/#jjjjIzMmffff"YQfffffffffff+}hjfttttttttt}/*ttttttttttt|,UL//t//tqMf//?}kM                        
                       pMxxxxxMMMMMM##WwxxxOMMMWuxx?vJxxxxmMM*xxx]|#xxxxx/xxxxrr"U0rrrvMMMWrrr_{h0whaUrj/iCaaoofjjjfvbhkcft,JQffffffjhwff-}ha                        
                       pMuuuuuMMMMMMMMWquuuv###Mcuu[cCuuunmMM*uuun}#uuunuunnnnnn:CZunnzMMMMunn?)hMMMkXxxf!qMMM*rxxxWMMM&Jxj:C0xrrxxxxx8xx-{h8                        
                       pMcccccMMMMMMMMWpccccccccccccqLcccvqMM#ccccc#cccYcvccvvvvvLmxuvXhhhdvvvvzaMMMwuuur<hMMM*uuuuMMMM&Cux:QOuuuuuuuuuuu-1at                        
                       qMXXXXqMMMMMMMMWpXXXXXXXXXXXXp0XXXXXXXXXXXXX#XXXbpXXJbQXXz0wzzzzzzzzzzzzYaMMMqczzn+WMMM*ccccMMMMWLcu;0ZcccXLcccczc](a^                        
                      .pMUUUUmwwwwwwqd#dUUUCppppUUUUdOUUUUUUUYYUYYU#YYYkMMpoMOYYYOqYYYYYYYQppppoMMMMpYYYXLWMMM*XXXXmmmmqCXc;OwXXXLMhCYYYY(ja                         
                      `pMCCCCCCCCCCCCLdbCCCQMMMMbCCCbZCCJZahhhhwJCJ#CJJkMMMWMZJJJZpJJJJJqUft]rMMMCJJJUUJUUJJJJ#UUUUUUUUUUUYrmqUUUQMM*LUJJruo                         
                      ,dMLLLLLLLLLLLLQdkLLLQmuoMMLLLbmLLLqt"";#bLLLMOCLk_l>/MmLLLmpLLLLLpn]]]r#MMLCCCCCCCCCCCC#JCCCCCCJJCJCCmqCCC0#jCM#CCCLo                         
                      <kMMMM#oahhhhhkb*MMMMb^   aMMMMhhhhx    lmhhhhhMM&_IIlxkhaMMMMMMM#ox]?]xWM}bhhhhhhhhao#MMMMMMMMMMMMMMMMMMMMM#/ .hMMohL                         
                                                                    >MMO<Illllll>nwq/]?]]]]]]1OM/.                         ."~~'       '                             
                                                                    >MMx!lllllI!l>]]]]]]?]]]]?XM*'                                                                   
                                                                    >MM|lll!!llll>?]]]]???]]]]XM#'                                                                   
                                                                    >MM)lllll!~lI>?]]]]???]]]]XMM`                                                                   
                                                                    >MM)IIl!lIIl>--]]]]??]]??]XMM'                                                                   
                                                                    {MM(lll!!lIlli_~_-??]?]]]tkM>                                                                    
                                                                    >MMC>l!!!lll!i_?]??~]?]])h#}                                                                     
                                                                     ]oMmll!!lll!!_]]]]??]]]ah1                                                                      
                                                                      imMb!!illl!l~]]]]]]]?ha]                                                                       
                                                                       ,bMw!llll!l~]]]?]]]qMI                                                                        
                                                                         MMC!!!ll!+]]]?]]0M'                                                                         
                                                                         .wMY>l!!l~]]]]}C#!                                                                          
                                                                          :0MX<!!l~]?]}Uo?                                                                           
                                                                           `vMU!!!+]]]Yb?                                                                            
                                                                             LMO!!~]]Yk>                                                                             
                                                                              xMm!~[XM,                                                                              
                                                                               'MQ~uo.                                                                               
                                                                                l#qpl                                                                                
                                                                                 >J~                                                                                 


2021-2024 All rights reserved.
*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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 IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(
        address account,
        uint256 amount
    ) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDexRouter {
    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;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

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

contract CryptoChampionGems is ERC20, Ownable {
    uint256 public maxBuy;
    uint256 public maxSell;
    uint256 public maxWallet;

    IDexRouter public dexRouter;
    address public lpPair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address operationsAddress;
    address devAddress;

    address public teamAddress;

    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    uint256 public blockForPenaltyEnd;
    mapping(address => bool) public boughtEarly;
    uint256 public botsCaught;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;

    uint256 public buyTotalFees;
    uint256 public buyOperationsFee;
    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;
    uint256 public buyBurnFee;

    uint256 public sellTotalFees;
    uint256 public sellOperationsFee;
    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;
    uint256 public sellBurnFee;

    uint256 public tokensForOperations;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;
    uint256 public tokensForBurn;

    bool private transferFee;

    /******************/

    // exlcude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event Launched();

    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedOperationsAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

    event BuyBackTriggered(uint256 amount);

    event OwnerForcedSwapBack(uint256 timestamp);

    event CaughtEarlyBuyer(address sniper);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    event TransferForeignToken(address token, uint256 amount);

    constructor() ERC20("CryptoChampionGems", "CCG") {
        address newOwner = msg.sender;
        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        dexRouter = _dexRouter;

        // create pair
        lpPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        _excludeFromMaxTransaction(address(lpPair), true);
        _setAutomatedMarketMakerPair(address(lpPair), true);

        uint256 totalSupply = 65 * 1e6 * 1e18;

        maxBuy = (totalSupply * 1) / 100;
        maxSell = (totalSupply * 1) / 100;
        maxWallet = (totalSupply * 1) / 100;
        swapTokensAtAmount = (totalSupply * 5) / 10000;

        buyOperationsFee = 10;
        buyLiquidityFee = 0;
        buyDevFee = 15;
        buyBurnFee = 0;
        buyTotalFees =
            buyOperationsFee +
            buyLiquidityFee +
            buyDevFee +
            buyBurnFee;

        sellOperationsFee = 10;
        sellLiquidityFee = 0;
        sellDevFee = 15;
        sellBurnFee = 0;
        sellTotalFees =
            sellOperationsFee +
            sellLiquidityFee +
            sellDevFee +
            sellBurnFee;

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        operationsAddress = address(newOwner);
        devAddress = address(newOwner);

        teamAddress = address(newOwner);

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    // only enable if no plan to airdrop

    function golive(uint256 _deadblocks) external onlyOwner {
        require(!tradingActive, "Cannot reenable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        blockForPenaltyEnd = tradingActiveBlock + _deadblocks;
        emit Launched();
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        emit RemovedLimits();
    }

    function manageEarly(address wallet, bool flag) external onlyOwner {
        boughtEarly[wallet] = flag;
    }

    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

    function updateTransferFee(bool _flag) external onlyOwner {
        transferFee = _flag;
    }

    function updateMaxBuy(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 2) / 1000) / 1e18,
            "Cannot set max buy amount lower than 0.2%"
        );
        maxBuy = newNum * (10 ** 18);
        emit UpdatedMaxBuyAmount(maxBuy);
    }

    function updateMaxSell(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 2) / 1000) / 1e18,
            "Cannot set max sell amount lower than 0.2%"
        );
        maxSell = newNum * (10 ** 18);
        emit UpdatedMaxSellAmount(maxSell);
    }

    function updateMaxWallet(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 3) / 1000) / 1e18,
            "Cannot set max wallet amount lower than 0.3%"
        );
        maxWallet = newNum * (10 ** 18);
        emit UpdatedMaxWalletAmount(maxWallet);
    }

    function updateSwapTokens(uint256 newAmount) external onlyOwner {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 1) / 1000,
            "Swap amount cannot be higher than 0.1% total supply."
        );
        swapTokensAtAmount = newAmount;
    }

    function _excludeFromMaxTransaction(
        address updAds,
        bool isExcluded
    ) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function excludeFromMax(address updAds, bool isEx) external onlyOwner {
        if (!isEx) {
            require(
                updAds != lpPair,
                "Cannot remove uniswap pair from max txn"
            );
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function setAMM(address pair, bool value) external onlyOwner {
        require(pair != lpPair, "The pair cannot be removed");

        _setAutomatedMarketMakerPair(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        _excludeFromMaxTransaction(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(
        uint256 _operationsFee,
        uint256 _liquidityFee,
        uint256 _DevFee,
        uint256 _burnFee
    ) external onlyOwner {
        buyOperationsFee = _operationsFee;
        buyLiquidityFee = _liquidityFee;
        buyDevFee = _DevFee;
        buyBurnFee = _burnFee;
        buyTotalFees =
            buyOperationsFee +
            buyLiquidityFee +
            buyDevFee +
            buyBurnFee;
        require(buyTotalFees <= 100, "Must keep fees at less than 100%");
    }

    function updateSellFees(
        uint256 _operationsFee,
        uint256 _liquidityFee,
        uint256 _DevFee,
        uint256 _burnFee
    ) external onlyOwner {
        sellOperationsFee = _operationsFee;
        sellLiquidityFee = _liquidityFee;
        sellDevFee = _DevFee;
        sellBurnFee = _burnFee;
        sellTotalFees =
            sellOperationsFee +
            sellLiquidityFee +
            sellDevFee +
            sellBurnFee;
        require(sellTotalFees <= 100, "Must keep fees at less than 100%");
    }

    function returnToStandardTax() external onlyOwner {
        sellOperationsFee = 10;
        sellLiquidityFee = 0;
        sellDevFee = 15;
        sellBurnFee = 0;
        sellTotalFees =
            sellOperationsFee +
            sellLiquidityFee +
            sellDevFee +
            sellBurnFee;
        require(sellTotalFees <= 100, "Must keep fees at less than 100%");
        buyOperationsFee = 10;
        buyLiquidityFee = 0;
        buyDevFee = 15;
        buyBurnFee = 0;
        buyTotalFees =
            buyOperationsFee +
            buyLiquidityFee +
            buyDevFee +
            buyBurnFee;
        require(buyTotalFees <= 100, "Must keep fees at less than 100%");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

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

        if (!tradingActive) {
            require(
                _isExcludedFromFees[from] || _isExcludedFromFees[to],
                "Trading is not active."
            );
        }

        if (blockForPenaltyEnd > 0) {
            require(
                !boughtEarly[from] || to == owner() || to == address(0xdead),
                "Bots cannot transfer tokens in or out except to owner or dead address."
            );
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !_isExcludedFromFees[from] &&
                !_isExcludedFromFees[to]
            ) {
                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                if (transferDelayEnabled) {
                    if (to != address(dexRouter) && to != address(lpPair)) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] <
                                block.number - 3 &&
                                _holderLastTransferTimestamp[to] <
                                block.number - 3,
                            "_transfer:: Transfer Delay enabled.  Try again later."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxBuy,
                        "Buy transfer amount exceeds the max buy."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Cannot Exceed max wallet"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxSell,
                        "Sell transfer amount exceeds the max sell."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Cannot Exceed max wallet"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = true;
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // bot/sniper penalty.
            if (
                earlyBuyPenaltyInEffect() &&
                automatedMarketMakerPairs[from] &&
                !automatedMarketMakerPairs[to] &&
                buyTotalFees > 0
            ) {
                if (!boughtEarly[to]) {
                    boughtEarly[to] = true;
                    botsCaught += 1;
                    emit CaughtEarlyBuyer(to);
                }

                fees = (amount * 99) / 100;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForOperations += (fees * buyOperationsFee) / buyTotalFees;
                tokensForDev += (fees * buyDevFee) / buyTotalFees;
                tokensForBurn += (fees * buyBurnFee) / buyTotalFees;
            }
            // on sell
            else if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForOperations +=
                    (fees * sellOperationsFee) /
                    sellTotalFees;
                tokensForDev += (fees * sellDevFee) / sellTotalFees;
                tokensForBurn += (fees * sellBurnFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForOperations += (fees * buyOperationsFee) / buyTotalFees;
                tokensForDev += (fees * buyDevFee) / buyTotalFees;
                tokensForBurn += (fees * buyBurnFee) / buyTotalFees;
            } else if (transferFee) {
                fees = (amount * sellTotalFees) / 100;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForOperations +=
                    (fees * sellOperationsFee) /
                    sellTotalFees;
                tokensForDev += (fees * sellDevFee) / sellTotalFees;
                tokensForBurn += (fees * sellBurnFee) / sellTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function earlyBuyPenaltyInEffect() public view returns (bool) {
        return block.number < blockForPenaltyEnd;
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(dexRouter), tokenAmount);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            teamAddress,
            block.timestamp
        );
    }

    function swapBack() private {
        if (tokensForBurn > 0 && balanceOf(address(this)) >= tokensForBurn) {
            _burn(address(this), tokensForBurn);
        }
        tokensForBurn = 0;

        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForOperations +
            tokensForDev;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        bool success;

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;

        swapTokensForEth(contractBalance - liquidityTokens);

        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForOperations = (ethBalance * tokensForOperations) /
            (totalTokensToSwap - (tokensForLiquidity / 2));
        uint256 ethForDev = (ethBalance * tokensForDev) /
            (totalTokensToSwap - (tokensForLiquidity / 2));

        ethForLiquidity -= ethForOperations + ethForDev;

        tokensForLiquidity = 0;
        tokensForOperations = 0;
        tokensForDev = 0;
        tokensForBurn = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success, ) = address(devAddress).call{value: ethForDev}("");

        (success, ) = address(operationsAddress).call{
            value: address(this).balance
        }("");
    }

    function transferForeignToken(
        address _token,
        address _to
    ) external onlyOwner returns (bool _sent) {
        require(_token != address(0), "_token address cannot be 0");
        require(_token != address(this), "Can't withdraw native tokens");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success, ) = address(msg.sender).call{value: address(this).balance}(
            ""
        );
    }

    function setOpsAddress(address _operationsAddress) external onlyOwner {
        require(
            _operationsAddress != address(0),
            "_operationsAddress address cannot be 0"
        );
        operationsAddress = payable(_operationsAddress);
    }

    function setDevAddress(address _devAddress) external onlyOwner {
        require(_devAddress != address(0), "_devAddress address cannot be 0");
        devAddress = payable(_devAddress);
    }

    function setTeamAddress(address _teamAddress) external onlyOwner {
        require(_teamAddress != address(0), "_teamAddress address cannot be 0");
        teamAddress = payable(_teamAddress);
    }

    // force Swap back if slippage issues.
    function forceSwapBack() external onlyOwner {
        require(
            balanceOf(address(this)) >= swapTokensAtAmount,
            "Can only swap when token amount is at or higher than restriction"
        );
        swapping = true;
        swapBack();
        swapping = false;
        emit OwnerForcedSwapBack(block.timestamp);
    }

    // useful for buybacks or to reclaim any ETH on the contract in a way that helps holders.
    function buyBack(uint256 amountInWei) external onlyOwner {
        require(
            amountInWei <= 10 ether,
            "May not buy more than 10 ETH in a single buy to reduce sandwich attacks"
        );

        address[] memory path = new address[](2);
        path[0] = dexRouter.WETH();
        path[1] = address(this);

        // make the swap
        dexRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: amountInWei
        }(
            0, // accept any amount of Ethereum
            path,
            teamAddress,
            block.timestamp
        );
        emit BuyBackTriggered(amountInWei);
    }
}
Configuraciones
{
  "compilationTarget": {
    "CryptoChampionGems.sol": "CryptoChampionGems"
  },
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BuyBackTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniper","type":"address"}],"name":"CaughtEarlyBuyer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedOperationsAddress","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockForPenaltyEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botsCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"boughtEarly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountInWei","type":"uint256"}],"name":"buyBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyBuyPenaltyInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadblocks","type":"uint256"}],"name":"golive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"manageEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnToStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operationsAddress","type":"address"}],"name":"setOpsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teamAddress","type":"address"}],"name":"setTeamAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","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"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_DevFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_DevFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"updateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]