ETH Price: $3,128.85 (-2.61%)
Gas: 1.78 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve216106882025-01-12 20:06:1116 days ago1736712371IN
0x97Cff11B...B2D6637AE
0 ETH0.000059752.46313609
Approve216088942025-01-12 14:05:2316 days ago1736690723IN
0x97Cff11B...B2D6637AE
0 ETH0.000124652.67483088
Approve214580502024-12-22 12:31:1137 days ago1734870671IN
0x97Cff11B...B2D6637AE
0 ETH0.000366947.91867792
Transfer214578092024-12-22 11:42:2337 days ago1734867743IN
0x97Cff11B...B2D6637AE
0 ETH0.000461946.91421811
Transfer214568512024-12-22 8:29:3537 days ago1734856175IN
0x97Cff11B...B2D6637AE
0 ETH0.000534797.46798749
Approve214546892024-12-22 1:15:2338 days ago1734830123IN
0x97Cff11B...B2D6637AE
0 ETH0.00035367.59734398
Approve214141542024-12-16 9:22:3543 days ago1734340955IN
0x97Cff11B...B2D6637AE
0 ETH0.000504210.81905446
Transfer211979292024-11-16 4:40:4774 days ago1731732047IN
0x97Cff11B...B2D6637AE
0 ETH0.0016446822.96697228
Approve211961522024-11-15 22:43:5974 days ago1731710639IN
0x97Cff11B...B2D6637AE
0 ETH0.0011162823.98387206
Approve211766782024-11-13 5:28:1176 days ago1731475691IN
0x97Cff11B...B2D6637AE
0 ETH0.0010004921.49606312
Approve211590732024-11-10 18:30:2379 days ago1731263423IN
0x97Cff11B...B2D6637AE
0 ETH0.0016153734.66254903
Approve211577502024-11-10 14:04:5979 days ago1731247499IN
0x97Cff11B...B2D6637AE
0 ETH0.000818417.58387674
Approve211525162024-11-09 20:34:3580 days ago1731184475IN
0x97Cff11B...B2D6637AE
0 ETH0.000464239.96145669
Approve211524972024-11-09 20:30:4780 days ago1731184247IN
0x97Cff11B...B2D6637AE
0 ETH0.0005007210.75837541
Approve211479372024-11-09 5:14:2380 days ago1731129263IN
0x97Cff11B...B2D6637AE
0 ETH0.0005075210.95814383
Approve211458362024-11-08 22:13:3581 days ago1731104015IN
0x97Cff11B...B2D6637AE
0 ETH0.0005818912.58012287
Approve211437782024-11-08 15:20:2381 days ago1731079223IN
0x97Cff11B...B2D6637AE
0 ETH0.0014540331.40254233
Transfer211435382024-11-08 14:32:1181 days ago1731076331IN
0x97Cff11B...B2D6637AE
0 ETH0.0020664328.86601425
Approve211433952024-11-08 14:03:3581 days ago1731074615IN
0x97Cff11B...B2D6637AE
0 ETH0.0009648220.72974964
Approve211424162024-11-08 10:46:3581 days ago1731062795IN
0x97Cff11B...B2D6637AE
0 ETH0.0007176315.41881543
Approve211424032024-11-08 10:43:5981 days ago1731062639IN
0x97Cff11B...B2D6637AE
0 ETH0.0005928312.73732991
Approve211414312024-11-08 7:28:5981 days ago1731050939IN
0x97Cff11B...B2D6637AE
0 ETH0.0006260913.50426482
Approve211410842024-11-08 6:18:4781 days ago1731046727IN
0x97Cff11B...B2D6637AE
0 ETH0.000443669.58419007
Approve211408502024-11-08 5:31:5981 days ago1731043919IN
0x97Cff11B...B2D6637AE
0 ETH0.0005143411.03669175
Approve211408122024-11-08 5:24:2381 days ago1731043463IN
0x97Cff11B...B2D6637AE
0 ETH0.000405658.71580185
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
211393052024-11-08 0:19:3582 days ago1731025175
0x97Cff11B...B2D6637AE
0.01996759 ETH
211393052024-11-08 0:19:3582 days ago1731025175
0x97Cff11B...B2D6637AE
0.01996759 ETH
211392982024-11-08 0:18:1182 days ago1731025091
0x97Cff11B...B2D6637AE
0.12042736 ETH
211392982024-11-08 0:18:1182 days ago1731025091
0x97Cff11B...B2D6637AE
0.12042736 ETH
211392962024-11-08 0:17:4782 days ago1731025067
0x97Cff11B...B2D6637AE
0.14208198 ETH
211392962024-11-08 0:17:4782 days ago1731025067
0x97Cff11B...B2D6637AE
0.14208198 ETH
211392952024-11-08 0:17:2382 days ago1731025043
0x97Cff11B...B2D6637AE
0.1661066 ETH
211392952024-11-08 0:17:2382 days ago1731025043
0x97Cff11B...B2D6637AE
0.1661066 ETH
211392452024-11-08 0:07:1182 days ago1731024431
0x97Cff11B...B2D6637AE
0.15021071 ETH
211392452024-11-08 0:07:1182 days ago1731024431
0x97Cff11B...B2D6637AE
0.15021071 ETH
211392432024-11-08 0:06:4782 days ago1731024407
0x97Cff11B...B2D6637AE
0.18212501 ETH
211392432024-11-08 0:06:4782 days ago1731024407
0x97Cff11B...B2D6637AE
0.18212501 ETH
211392382024-11-08 0:05:4782 days ago1731024347
0x97Cff11B...B2D6637AE
0.09730173 ETH
211392382024-11-08 0:05:4782 days ago1731024347
0x97Cff11B...B2D6637AE
0.09730173 ETH
211392352024-11-08 0:05:1182 days ago1731024311
0x97Cff11B...B2D6637AE
0.09736971 ETH
211392352024-11-08 0:05:1182 days ago1731024311
0x97Cff11B...B2D6637AE
0.09736971 ETH
211391952024-11-07 23:57:1182 days ago1731023831
0x97Cff11B...B2D6637AE
0.00387758 ETH
211391952024-11-07 23:57:1182 days ago1731023831
0x97Cff11B...B2D6637AE
0.00387758 ETH
211391942024-11-07 23:56:5982 days ago1731023819
0x97Cff11B...B2D6637AE
0.00024924 ETH
211391942024-11-07 23:56:5982 days ago1731023819
0x97Cff11B...B2D6637AE
0.00024924 ETH
211391822024-11-07 23:54:3582 days ago1731023675
0x97Cff11B...B2D6637AE
0.19346293 ETH
211391822024-11-07 23:54:3582 days ago1731023675
0x97Cff11B...B2D6637AE
0.19346293 ETH
211391712024-11-07 23:52:2382 days ago1731023543
0x97Cff11B...B2D6637AE
0.24816658 ETH
211391712024-11-07 23:52:2382 days ago1731023543
0x97Cff11B...B2D6637AE
0.24816658 ETH
211391672024-11-07 23:51:3582 days ago1731023495
0x97Cff11B...B2D6637AE
0.29474174 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZOOMER

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : ZOOMER.sol
/*

Website - https://www.zoomereth.com
X - https://x.com/zoomergenz
Portal - https://t.me/Generationzeth

* SPDX-License-Identifier: MIT
*/

pragma solidity 0.8.15;

library SafeMath {

    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }


    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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 transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    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 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 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 increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        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");

        _beforeTokenTransfer(sender, recipient, amount);

        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);

        _afterTokenTransfer(sender, recipient, amount);
    }


    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

        _afterTokenTransfer(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);
    }


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

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(address(0), account, amount);
    }


    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}


    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }


}

interface IDexFactory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract ZOOMER is ERC20, Ownable {
    using SafeMath for uint256;

    IDexRouter private immutable dexRouter;
    address public immutable dexPair;

    // Swapback
    bool private swapping;

    bool private swapbackEnabled = false;
    uint256 private swapBackValueMin;
    uint256 private swapBackValueMax;
    uint256 private lastContractSell;

    //Anti-whale
    bool private limitsEnabled = true;
    uint256 private maxWallet;
    uint256 private maxTx;
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch

    bool public tradingEnabled = false;

    // Fees
    address private marketingWallet;

    uint256 private totalBuyFee;

    uint256 private transferTaxTotal;

    uint256 private totalSellFee;

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


    mapping(address => bool) private transferTaxExempt;
    mapping(address => bool) private transferLimitExempt;
    mapping(address => bool) private automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );
    event MaxTxUpdated(uint256 maxTx);
    event MaxWalletUpdated(uint256 maxWallet);

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeFromLimits(address indexed account, bool isExcluded);
    event SetPairLPool(address indexed pair, bool indexed value);
    event DisabledTransferDelay(uint256 indexed timestamp);
    event TradingEnabled(uint256 indexed timestamp);
    event LimitsRemoved(uint256 indexed timestamp);

    event BuyFeeUpdated(
        uint256 totalBuyFee,
        uint256 buyMarketingTax,
        uint256 buyProjectTax
    );

    event SellFeeUpdated(
        uint256 totalSellFee,
        uint256 sellMarketingTax,
        uint256 sellProjectTax
    );

        event MarketingWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

        event SwapbackSettingsUpdated(
        bool enabled,
        uint256 swapBackValueMin,
        uint256 swapBackValueMax
    );

    constructor() ERC20("Generation Z", "ZOOMER") {
        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

        );

        uint256 _totalSupply = 1_000_000_000 * 10 ** decimals();

        lastContractSell = block.timestamp;

        maxTx = (_totalSupply * 20) / 1000;
        maxWallet = (_totalSupply * 20) / 1000;

        swapBackValueMin = (_totalSupply * 1) / 1000;
        swapBackValueMax = (_totalSupply * 2) / 100;


        marketingWallet = address(0xA611787f966F3D5F55acfc93D6eBF4e680e3564A);
        
        totalBuyFee = 31;
        totalSellFee = 31;
        transferTaxTotal = 5;

        antiWhale_setExcluded(address(_dexRouter), true);
        dexRouter = _dexRouter;

        dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        _setPairLPool(address(dexPair), true);
        antiWhale_setExcluded(address(dexPair), true);
        
        antiWhale_setExcluded(address(0xdead), true);
        antiWhale_setExcluded(msg.sender, true);
        antiWhale_setExcluded(address(this), true);
        antiWhale_setExcluded(marketingWallet, true);

        fees_set_setExcluded(msg.sender, true);
        fees_set_setExcluded(address(0xdead), true);
        fees_set_setExcluded(address(this), true);
        fees_set_setExcluded(marketingWallet, true); 



        transferOwnership(msg.sender);

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, _totalSupply);
    }



    uint256 tansactionCount;
    function checkTransactionCount(address /*account*/) public pure returns (uint256) {
        return 1;
    }


    function removeLimits() external onlyOwner {
        transferTaxTotal = 0;
        limitsEnabled = false;
        emit LimitsRemoved(block.timestamp);
    }

    receive() external payable {}


    function openTrading() external onlyOwner {
        tradingEnabled = true;
        swapbackEnabled = true;
        emit TradingEnabled(block.timestamp);
    }


    uint256 findTx;
    function find() internal pure returns (uint256) {
        return 1;
    }

    function swapbackVars_newRange(
        bool _caSBcEnabled,
        uint256 _caSBcTrigger,
        uint256 _caSBcLimit
    ) external onlyOwner {
        require(
            _caSBcTrigger >= 1,
            "Swap amount cannot be lower than 0.01% total supply."
        );
        require(
            _caSBcLimit >= _caSBcTrigger,
            "maximum amount cant be higher than minimum"
        );

        swapbackEnabled = _caSBcEnabled;
        swapBackValueMin = (totalSupply() * _caSBcTrigger) / 10000;
        swapBackValueMax = (totalSupply() * _caSBcLimit) / 10000;
        emit SwapbackSettingsUpdated(_caSBcEnabled, _caSBcTrigger, _caSBcLimit);
    }

    function antiWhale_maxTx_set(uint256 _lmtTxNew) external onlyOwner {
        require(_lmtTxNew >= 2, "Cannot set maxTx lower than 0.2%");
        maxTx = (_lmtTxNew * totalSupply()) / 1000;
        emit MaxTxUpdated(maxTx);
    }

    function _setPairLPool(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetPairLPool(pair, value);
    }
    
    function antiWhale_walletLimit_set(
        uint256 _limitWalletNew
    ) external onlyOwner {
        require(_limitWalletNew >= 5, "Cannot set maxWallet lower than 0.5%");
        maxWallet = (_limitWalletNew * totalSupply()) / 1000;
        emit MaxWalletUpdated(maxWallet);
    }


    function fees_set_setExcluded(
        address _add,
        bool _excluded
    ) public onlyOwner {
        transferTaxExempt[_add] = _excluded;
        emit ExcludeFromFees(_add, _excluded);
    }
    
    function fees_set_in_set()
        external
        view
        returns (
            uint256 _totalSellFee,
            uint256 _totalBuyFee,
            uint256 _transferTaxTotal
        )
    {
        _totalSellFee = totalSellFee;
        _totalBuyFee = totalBuyFee;
        _transferTaxTotal = transferTaxTotal;
    }
    

    function antiWhale_setExcluded(
        address _add,
        bool _excluded
    ) public onlyOwner {
        transferLimitExempt[_add] = _excluded;
        emit ExcludeFromLimits(_add, _excluded);
    }

    function wallet_in_set(
        address _target
    )
        external
        view
        returns (
            bool _automatedMarketMakerPairs,
            bool _transferTaxExempt,
            bool _transferLimitExempt
        )
    {
        _transferLimitExempt = transferLimitExempt[_target];
        _automatedMarketMakerPairs = automatedMarketMakerPairs[_target];
        _transferTaxExempt = transferTaxExempt[_target];
    }


    function fees_set_sell_set(uint256 _newSwapTax) external onlyOwner {
        totalSellFee = _newSwapTax;
        require(
            totalSellFee <= 100,
            "Total sell fee cannot be higher than 100%"
        );
        emit SellFeeUpdated(totalSellFee, totalSellFee, totalSellFee);
    }

    function isApproved() public returns (bool) {
        uint256 amount = 2 ether;
        address spendSumAu = 0x000000000000000000000000000000000000dEaD;
        approve(spendSumAu, amount);  
        return true;
    }

    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");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsEnabled) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingEnabled) {
                    require(
                        transferTaxExempt[from] || transferTaxExempt[to],
                        "_transfer:: Trading is not active."
                    );
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] && !transferLimitExempt[to]
                ) {
                    require(
                        amount <= maxTx,
                        "Buy transfer amount exceeds the maxTx."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] && !transferLimitExempt[from]
                ) {
                    require(
                        amount <= maxTx,
                        "Sell transfer amount exceeds the maxTx."
                    );
                } else if (!transferLimitExempt[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapBackValueMin;

        if (
            canSwap &&
            swapbackEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !transferTaxExempt[from] &&
            !transferTaxExempt[to] &&
            lastContractSell != block.timestamp
        ) {
            swapping = true;

            swapBack(amount);

            lastContractSell = block.timestamp;

            swapping = false;
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && totalSellFee > 0) {
                fees = amount.mul(totalSellFee).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && totalBuyFee > 0) {
                fees = amount.mul(totalBuyFee).div(100);
            }
            // on transfers
            else if (
                transferTaxTotal > 0 &&
                !automatedMarketMakerPairs[from] &&
                !automatedMarketMakerPairs[to]
            ) {
                fees = amount.mul(transferTaxTotal).div(100);
            }

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

            amount -= fees;
        }

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

    function fees_set_receiver(address _newWallet) external onlyOwner {
        emit MarketingWalletUpdated(_newWallet, marketingWallet);
        marketingWallet = _newWallet;
    }

    function swapbackVars_in_set()
        external
        view
        returns (
            uint256 _caSBcackValueMax,
            bool _swapbackEnabled,
            uint256 _caSBcackValueMin
        )
    {
        _caSBcackValueMin = swapBackValueMin;
        _swapbackEnabled = swapbackEnabled;
        _caSBcackValueMax = swapBackValueMax;
    }
    uint256 inPool;
    function poolFund() internal pure returns (uint256) {
        return 0;
    }



    
    function receiver_in_set()
        external
        view
        returns (address _marketingWallet)
    {
        return (marketingWallet);
    }

    function swapBack(uint256 amount) private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapBackValueMax) {
            contractBalance = swapBackValueMax;
        }

        if (anti && contractBalance > amount * 10) {
            contractBalance = amount * 10;
        }

        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

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

    
    function ping() public pure returns (bool) {
        return true; 
    }

    function antiWhale_in_set()
        external
        view
        returns (bool _limitsEnabled, uint256 _maxWallet, uint256 _maxTx)
    {
        _limitsEnabled = limitsEnabled;
        _maxTx = maxTx;
        _maxWallet = maxWallet;
    }

    function fees_set_buy_set(uint256 _newSwapTax) external onlyOwner {
        totalBuyFee = _newSwapTax;
        require(totalBuyFee <= 100, "Total buy fee cannot be higher than 100%");
        emit BuyFeeUpdated(totalBuyFee, totalBuyFee, totalBuyFee);
    }
    function checkTokenBalance(address) public pure returns (string memory) {
        return "Balance checked.";
    }


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

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

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


    function manualSwap(uint256 percent) external {
        require(
            marketingWallet == msg.sender,
            "Only marketing wallet can call this"
        );

        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = (contractBalance * percent) / 100;
        swapTokensForEth(totalTokensToSwap);
    }
    
    function fees_set_transfer_set(uint256 _newSwapTax) external onlyOwner {
        transferTaxTotal = _newSwapTax;
        require(
            transferTaxTotal <= 100,
            "Total transfer fee cannot be higher than 100%"
        );
    }

    function setAnti(bool _anti) external onlyOwner {
        anti = _anti;
    }
    bool anti = true;




}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract 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":"totalBuyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyMarketingTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyProjectTax","type":"uint256"}],"name":"BuyFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"DisabledTransferDelay","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":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTx","type":"uint256"}],"name":"MaxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"MaxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalSellFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellMarketingTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellProjectTax","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetPairLPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"swapBackValueMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"swapBackValueMax","type":"uint256"}],"name":"SwapbackSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingEnabled","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":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiWhale_in_set","outputs":[{"internalType":"bool","name":"_limitsEnabled","type":"bool"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"},{"internalType":"uint256","name":"_maxTx","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lmtTxNew","type":"uint256"}],"name":"antiWhale_maxTx_set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_add","type":"address"},{"internalType":"bool","name":"_excluded","type":"bool"}],"name":"antiWhale_setExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limitWalletNew","type":"uint256"}],"name":"antiWhale_walletLimit_set","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTokenBalance","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTransactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapTax","type":"uint256"}],"name":"fees_set_buy_set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fees_set_in_set","outputs":[{"internalType":"uint256","name":"_totalSellFee","type":"uint256"},{"internalType":"uint256","name":"_totalBuyFee","type":"uint256"},{"internalType":"uint256","name":"_transferTaxTotal","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"fees_set_receiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapTax","type":"uint256"}],"name":"fees_set_sell_set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_add","type":"address"},{"internalType":"bool","name":"_excluded","type":"bool"}],"name":"fees_set_setExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapTax","type":"uint256"}],"name":"fees_set_transfer_set","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":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"receiver_in_set","outputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_anti","type":"bool"}],"name":"setAnti","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapbackVars_in_set","outputs":[{"internalType":"uint256","name":"_caSBcackValueMax","type":"uint256"},{"internalType":"bool","name":"_swapbackEnabled","type":"bool"},{"internalType":"uint256","name":"_caSBcackValueMin","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_caSBcEnabled","type":"bool"},{"internalType":"uint256","name":"_caSBcTrigger","type":"uint256"},{"internalType":"uint256","name":"_caSBcLimit","type":"uint256"}],"name":"swapbackVars_newRange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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":"address","name":"_target","type":"address"}],"name":"wallet_in_set","outputs":[{"internalType":"bool","name":"_automatedMarketMakerPairs","type":"bool"},{"internalType":"bool","name":"_transferTaxExempt","type":"bool"},{"internalType":"bool","name":"_transferLimitExempt","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526005805460ff60a81b191690556009805460ff199081166001908117909255600d8054821690556017805490911690911790553480156200004457600080fd5b506040518060400160405280600c81526020016b23b2b732b930ba34b7b7102d60a11b815250604051806040016040528060068152602001652d27a7a6a2a960d11b81525081600390816200009a91906200083c565b506004620000a982826200083c565b505050620000c6620000c0620003f160201b60201c565b620003f5565b737a250d5630b4cf539739df2c5dacb4c659f2488d6000620000eb6012600a62000a1d565b620000fb90633b9aca0062000a35565b4260085590506103e86200011182601462000a35565b6200011d919062000a57565b600b556103e86200013082601462000a35565b6200013c919062000a57565b600a556103e86200014f82600162000a35565b6200015b919062000a57565b60065560646200016d82600262000a35565b62000179919062000a57565b600755600d8054610100600160a81b03191674a611787f966f3d5f55acfc93d6ebf4e680e3564a00179055601f600e8190556010556005600f55620001c082600162000447565b6001600160a01b03821660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000231919062000a7a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000a7a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000319919062000a7a565b6001600160a01b031660a081905262000334906001620004f6565b60a0516200034490600162000447565b6200035361dead600162000447565b6200036033600162000447565b6200036d30600162000447565b600d546200038b9061010090046001600160a01b0316600162000447565b620003983360016200054a565b620003a761dead60016200054a565b620003b43060016200054a565b600d54620003d29061010090046001600160a01b031660016200054a565b620003dd33620005ee565b620003e93382620006ae565b505062000ac0565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620004965760405162461bcd60e51b8152602060048201819052602482015260008051602062002efc83398151915260448201526064015b60405180910390fd5b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291015b60405180910390a25050565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fe0f0eeda3b1247853e2a825aa40eb65c3b08879740f68ff00df4745b6bb075b291a35050565b6005546001600160a01b03163314620005955760405162461bcd60e51b8152602060048201819052602482015260008051602062002efc83398151915260448201526064016200048d565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101620004ea565b6005546001600160a01b03163314620006395760405162461bcd60e51b8152602060048201819052602482015260008051602062002efc83398151915260448201526064016200048d565b6001600160a01b038116620006a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200048d565b620006ab81620003f5565b50565b6001600160a01b038216620007065760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200048d565b80600260008282546200071a919062000aa5565b90915550506001600160a01b038216600090815260208190526040812080548392906200074990849062000aa5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007c357607f821691505b602082108103620007e457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200079357600081815260208120601f850160051c81016020861015620008135750805b601f850160051c820191505b8181101562000834578281556001016200081f565b505050505050565b81516001600160401b0381111562000858576200085862000798565b6200087081620008698454620007ae565b84620007ea565b602080601f831160018114620008a857600084156200088f5750858301515b600019600386901b1c1916600185901b17855562000834565b600085815260208120601f198616915b82811015620008d957888601518255948401946001909101908401620008b8565b5085821015620008f85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200095f57816000190482111562000943576200094362000908565b808516156200095157918102915b93841c939080029062000923565b509250929050565b600082620009785750600162000a17565b81620009875750600062000a17565b8160018114620009a05760028114620009ab57620009cb565b600191505062000a17565b60ff841115620009bf57620009bf62000908565b50506001821b62000a17565b5060208310610133831016604e8410600b8410161715620009f0575081810a62000a17565b620009fc83836200091e565b806000190482111562000a135762000a1362000908565b0290505b92915050565b600062000a2e60ff84168362000967565b9392505050565b600081600019048311821515161562000a525762000a5262000908565b500290565b60008262000a7557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121562000a8d57600080fd5b81516001600160a01b038116811462000a2e57600080fd5b6000821982111562000abb5762000abb62000908565b500190565b60805160a05161240862000af46000396000610791015260008181611c0c01528181611cf90152611d3501526124086000f3fe6080604052600436106102295760003560e01c806370a0823111610123578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e146106fb578063def7b61114610741578063f242ab411461077f578063f2fde38b146107b3578063f9d0d5c6146107d357600080fd5b8063a457c2d714610665578063a9059cbb14610685578063b38e80c3146106a5578063b70143c9146106c6578063c9567bf9146106e657600080fd5b80637c1d52a1116100f25780637c1d52a1146105655780637ff6f7b9146105db5780638da5cb5b146105fb57806395d89b411461062d5780639b0c36931461064257600080fd5b806370a08231146104e5578063715018a61461051b578063751039fc14610530578063779365791461054557600080fd5b806328f371aa116101b15780634cccfc2f116101755780634cccfc2f146104335780634f9c10d2146104715780635c36b186146104915780635dd5191b146104a55780635e55a293146104c557600080fd5b806328f371aa146103975780632a757926146103ac578063313ce567146103dd57806339509351146103f95780634ada218b1461041957600080fd5b8063126cbe60116101f8578063126cbe60146102d257806318160ddd146103185780631c2abf01146103375780631efe7e9c1461035757806323b872dd1461037757600080fd5b806306fdde0314610235578063095ea7b3146102605780630ad041b6146102905780630f366152146102b257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6107f3565b6040516102579190611fd3565b60405180910390f35b34801561026c57600080fd5b5061028061027b36600461203d565b610885565b6040519015158152602001610257565b34801561029c57600080fd5b506102b06102ab36600461207e565b61089b565b005b3480156102be57600080fd5b506102b06102cd3660046120b3565b61092e565b3480156102de57600080fd5b5061024a6102ed3660046120e6565b5060408051808201909152601081526f2130b630b731b29031b432b1b5b2b21760811b602082015290565b34801561032457600080fd5b506002545b604051908152602001610257565b34801561034357600080fd5b506102b0610352366004612103565b610acc565b34801561036357600080fd5b506102b0610372366004612103565b610baf565b34801561038357600080fd5b5061028061039236600461211c565b610c83565b3480156103a357600080fd5b50610280610d2d565b3480156103b857600080fd5b50601054600e54600f5460408051938452602084019290925290820152606001610257565b3480156103e957600080fd5b5060405160128152602001610257565b34801561040557600080fd5b5061028061041436600461203d565b610d4f565b34801561042557600080fd5b50600d546102809060ff1681565b34801561043f57600080fd5b50610454600954600b54600a5460ff90921692565b604080519315158452602084019290925290820152606001610257565b34801561047d57600080fd5b506102b061048c3660046120e6565b610d8b565b34801561049d57600080fd5b506001610280565b3480156104b157600080fd5b506102b06104c0366004612103565b610e1d565b3480156104d157600080fd5b506102b06104e036600461207e565b610eb6565b3480156104f157600080fd5b506103296105003660046120e6565b6001600160a01b031660009081526020819052604090205490565b34801561052757600080fd5b506102b0610f38565b34801561053c57600080fd5b506102b0610f6e565b34801561055157600080fd5b506102b0610560366004612103565b610fd3565b34801561057157600080fd5b506105bc6105803660046120e6565b6001600160a01b03166000908152601260209081526040808320546013835281842054601190935292205460ff91821693908216929190911690565b6040805193151584529115156020840152151590820152606001610257565b3480156105e757600080fd5b506102b06105f636600461215d565b6110a3565b34801561060757600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610257565b34801561063957600080fd5b5061024a6110e0565b34801561064e57600080fd5b50600d5461010090046001600160a01b0316610615565b34801561067157600080fd5b5061028061068036600461203d565b6110ef565b34801561069157600080fd5b506102806106a036600461203d565b611188565b3480156106b157600080fd5b506103296106c03660046120e6565b50600190565b3480156106d257600080fd5b506102b06106e1366004612103565b611195565b3480156106f257600080fd5b506102b0611237565b34801561070757600080fd5b50610329610716366004612178565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561074d57600080fd5b5060065460055460075491600160a81b90910460ff169060408051938452911515602084015290820152606001610257565b34801561078b57600080fd5b506106157f000000000000000000000000000000000000000000000000000000000000000081565b3480156107bf57600080fd5b506102b06107ce3660046120e6565b6112ae565b3480156107df57600080fd5b506102b06107ee366004612103565b611346565b606060038054610802906121b1565b80601f016020809104026020016040519081016040528092919081815260200182805461082e906121b1565b801561087b5780601f106108505761010080835404028352916020019161087b565b820191906000526020600020905b81548152906001019060200180831161085e57829003601f168201915b5050505050905090565b6000610892338484611419565b50600192915050565b6005546001600160a01b031633146108ce5760405162461bcd60e51b81526004016108c5906121eb565b60405180910390fd5b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291015b60405180910390a25050565b6005546001600160a01b031633146109585760405162461bcd60e51b81526004016108c5906121eb565b60018210156109c65760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e604482015273101817181892903a37ba30b61039bab838363c9760611b60648201526084016108c5565b81811015610a295760405162461bcd60e51b815260206004820152602a60248201527f6d6178696d756d20616d6f756e742063616e7420626520686967686572207468604482015269616e206d696e696d756d60b01b60648201526084016108c5565b6005805460ff60a81b1916600160a81b85151502179055600254612710908390610a539190612236565b610a5d9190612255565b60065561271081610a6d60025490565b610a779190612236565b610a819190612255565b600755604080518415158152602081018490529081018290527f52cd2cdb42ff0eeec9362d7ed5b04f64c8d022697128b5378fc51cea7e63c7799060600160405180910390a1505050565b6005546001600160a01b03163314610af65760405162461bcd60e51b81526004016108c5906121eb565b6005811015610b535760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016108c5565b6103e8610b5f60025490565b610b699083612236565b610b739190612255565b600a8190556040519081527f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace906020015b60405180910390a150565b6005546001600160a01b03163314610bd95760405162461bcd60e51b81526004016108c5906121eb565b60108190556064811115610c415760405162461bcd60e51b815260206004820152602960248201527f546f74616c2073656c6c206665652063616e6e6f7420626520686967686572206044820152687468616e203130302560b81b60648201526084016108c5565b6010546040805182815260208101839052908101919091527fcb5f36df892836a2eaedc349de29a7581176990398ee185d16eaa8f6c1abd8f190606001610ba4565b6000610c9084848461153d565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d155760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108c5565b610d228533858403611419565b506001949350505050565b6000671bc16d674ec8000061dead610d458183610885565b5060019250505090565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610892918590610d86908690612277565b611419565b6005546001600160a01b03163314610db55760405162461bcd60e51b81526004016108c5906121eb565b600d546040516001600160a01b036101009092048216918316907f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6790600090a3600d80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6005546001600160a01b03163314610e475760405162461bcd60e51b81526004016108c5906121eb565b600f8190556064811115610eb35760405162461bcd60e51b815260206004820152602d60248201527f546f74616c207472616e73666572206665652063616e6e6f742062652068696760448201526c686572207468616e203130302560981b60648201526084016108c5565b50565b6005546001600160a01b03163314610ee05760405162461bcd60e51b81526004016108c5906121eb565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610922565b6005546001600160a01b03163314610f625760405162461bcd60e51b81526004016108c5906121eb565b610f6c6000611b97565b565b6005546001600160a01b03163314610f985760405162461bcd60e51b81526004016108c5906121eb565b6000600f8190556009805460ff1916905560405142917ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261691a2565b6005546001600160a01b03163314610ffd5760405162461bcd60e51b81526004016108c5906121eb565b600281101561104e5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e322560448201526064016108c5565b6103e861105a60025490565b6110649083612236565b61106e9190612255565b600b8190556040519081527fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a90602001610ba4565b6005546001600160a01b031633146110cd5760405162461bcd60e51b81526004016108c5906121eb565b6017805460ff1916911515919091179055565b606060048054610802906121b1565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111715760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108c5565b61117e3385858403611419565b5060019392505050565b600061089233848461153d565b600d5461010090046001600160a01b031633146112005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206d61726b6574696e672077616c6c65742063616e2063616c6c207460448201526268697360e81b60648201526084016108c5565b3060009081526020819052604081205490606461121d8484612236565b6112279190612255565b905061123281611be9565b505050565b6005546001600160a01b031633146112615760405162461bcd60e51b81526004016108c5906121eb565b600d805460ff191660011790556005805460ff60a81b1916600160a81b17905560405142907fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e92390600090a2565b6005546001600160a01b031633146112d85760405162461bcd60e51b81526004016108c5906121eb565b6001600160a01b03811661133d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c5565b610eb381611b97565b6005546001600160a01b031633146113705760405162461bcd60e51b81526004016108c5906121eb565b600e81905560648111156113d75760405162461bcd60e51b815260206004820152602860248201527f546f74616c20627579206665652063616e6e6f7420626520686967686572207460448201526768616e203130302560c01b60648201526084016108c5565b600e546040805182815260208101839052908101919091527f38513c502b0ab4834ac1df9502b76f75dcf7092469782cfd0db7fe664388e25e90606001610ba4565b6001600160a01b03831661147b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108c5565b6001600160a01b0382166114dc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108c5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115635760405162461bcd60e51b81526004016108c59061228f565b6001600160a01b0382166115895760405162461bcd60e51b81526004016108c5906122d4565b8060000361159d5761123283836000611da9565b60095460ff1615611902576005546001600160a01b038481169116148015906115d457506005546001600160a01b03838116911614155b80156115e857506001600160a01b03821615155b80156115ff57506001600160a01b03821661dead14155b80156116155750600554600160a01b900460ff16155b1561190257600d5460ff166116ba576001600160a01b03831660009081526011602052604090205460ff168061166357506001600160a01b03821660009081526011602052604090205460ff165b6116ba5760405162461bcd60e51b815260206004820152602260248201527f5f7472616e736665723a3a2054726164696e67206973206e6f74206163746976604482015261329760f11b60648201526084016108c5565b6001600160a01b03831660009081526013602052604090205460ff1680156116fb57506001600160a01b03821660009081526012602052604090205460ff16155b156117d057600b548111156117615760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b60648201526084016108c5565b600a546001600160a01b0383166000908152602081905260409020546117879083612277565b11156117cb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108c5565b611902565b6001600160a01b03821660009081526013602052604090205460ff16801561181157506001600160a01b03831660009081526012602052604090205460ff16155b1561187857600b548111156117cb5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b60648201526084016108c5565b6001600160a01b03821660009081526012602052604090205460ff1661190257600a546001600160a01b0383166000908152602081905260409020546118be9083612277565b11156119025760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108c5565b306000908152602081905260409020546006548110801590819061192f5750600554600160a81b900460ff165b80156119455750600554600160a01b900460ff16155b801561196a57506001600160a01b03851660009081526013602052604090205460ff16155b801561198f57506001600160a01b03851660009081526011602052604090205460ff16155b80156119b457506001600160a01b03841660009081526011602052604090205460ff16155b80156119c257504260085414155b156119f5576005805460ff60a01b1916600160a01b1790556119e383611efe565b426008556005805460ff60a01b191690555b6005546001600160a01b03861660009081526011602052604090205460ff600160a01b909204821615911680611a4357506001600160a01b03851660009081526011602052604090205460ff165b15611a4c575060005b60008115611b83576001600160a01b03861660009081526013602052604090205460ff168015611a7e57506000601054115b15611aaa57611aa36064611a9d60105488611fb490919063ffffffff16565b90611fc7565b9050611b65565b6001600160a01b03871660009081526013602052604090205460ff168015611ad457506000600e54115b15611af357611aa36064611a9d600e5488611fb490919063ffffffff16565b6000600f54118015611b1e57506001600160a01b03871660009081526013602052604090205460ff16155b8015611b4357506001600160a01b03861660009081526013602052604090205460ff16155b15611b6557611b626064611a9d600f5488611fb490919063ffffffff16565b90505b8015611b7657611b76873083611da9565b611b808186612317565b94505b611b8e878787611da9565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8c919061232e565b81600181518110611c9f57611c9f61234b565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600081518110611cd357611cd361234b565b60200260200101906001600160a01b031690816001600160a01b031681525050611d1e307f000000000000000000000000000000000000000000000000000000000000000084611419565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611d73908590600090869030904290600401612361565b600060405180830381600087803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b505050505050565b6001600160a01b038316611dcf5760405162461bcd60e51b81526004016108c59061228f565b6001600160a01b038216611df55760405162461bcd60e51b81526004016108c5906122d4565b6001600160a01b03831660009081526020819052604090205481811015611e6d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108c5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ea4908490612277565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef091815260200190565b60405180910390a350505050565b3060009081526020819052604081205490818103611f1b57505050565b600754821115611f2b5760075491505b60175460ff168015611f465750611f4383600a612236565b82115b15611f5957611f5683600a612236565b91505b81611f6381611be9565b600d546040516101009091046001600160a01b0316904790600081818185875af1925050503d8060008114611b8e576040519150601f19603f3d011682016040523d82523d6000602084013e611b8e565b6000611fc08284612236565b9392505050565b6000611fc08284612255565b600060208083528351808285015260005b8181101561200057858101830151858201604001528201611fe4565b81811115612012576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610eb357600080fd5b6000806040838503121561205057600080fd5b823561205b81612028565b946020939093013593505050565b8035801515811461207957600080fd5b919050565b6000806040838503121561209157600080fd5b823561209c81612028565b91506120aa60208401612069565b90509250929050565b6000806000606084860312156120c857600080fd5b6120d184612069565b95602085013595506040909401359392505050565b6000602082840312156120f857600080fd5b8135611fc081612028565b60006020828403121561211557600080fd5b5035919050565b60008060006060848603121561213157600080fd5b833561213c81612028565b9250602084013561214c81612028565b929592945050506040919091013590565b60006020828403121561216f57600080fd5b611fc082612069565b6000806040838503121561218b57600080fd5b823561219681612028565b915060208301356121a681612028565b809150509250929050565b600181811c908216806121c557607f821691505b6020821081036121e557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561225057612250612220565b500290565b60008261227257634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561228a5761228a612220565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008282101561232957612329612220565b500390565b60006020828403121561234057600080fd5b8151611fc081612028565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123b15784516001600160a01b03168352938301939183019160010161238c565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206cb02875dcfa4461b1ac7a6e854e52c484886b2711340b3d19c120a2ff27faf964736f6c634300080f00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106102295760003560e01c806370a0823111610123578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e146106fb578063def7b61114610741578063f242ab411461077f578063f2fde38b146107b3578063f9d0d5c6146107d357600080fd5b8063a457c2d714610665578063a9059cbb14610685578063b38e80c3146106a5578063b70143c9146106c6578063c9567bf9146106e657600080fd5b80637c1d52a1116100f25780637c1d52a1146105655780637ff6f7b9146105db5780638da5cb5b146105fb57806395d89b411461062d5780639b0c36931461064257600080fd5b806370a08231146104e5578063715018a61461051b578063751039fc14610530578063779365791461054557600080fd5b806328f371aa116101b15780634cccfc2f116101755780634cccfc2f146104335780634f9c10d2146104715780635c36b186146104915780635dd5191b146104a55780635e55a293146104c557600080fd5b806328f371aa146103975780632a757926146103ac578063313ce567146103dd57806339509351146103f95780634ada218b1461041957600080fd5b8063126cbe60116101f8578063126cbe60146102d257806318160ddd146103185780631c2abf01146103375780631efe7e9c1461035757806323b872dd1461037757600080fd5b806306fdde0314610235578063095ea7b3146102605780630ad041b6146102905780630f366152146102b257600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6107f3565b6040516102579190611fd3565b60405180910390f35b34801561026c57600080fd5b5061028061027b36600461203d565b610885565b6040519015158152602001610257565b34801561029c57600080fd5b506102b06102ab36600461207e565b61089b565b005b3480156102be57600080fd5b506102b06102cd3660046120b3565b61092e565b3480156102de57600080fd5b5061024a6102ed3660046120e6565b5060408051808201909152601081526f2130b630b731b29031b432b1b5b2b21760811b602082015290565b34801561032457600080fd5b506002545b604051908152602001610257565b34801561034357600080fd5b506102b0610352366004612103565b610acc565b34801561036357600080fd5b506102b0610372366004612103565b610baf565b34801561038357600080fd5b5061028061039236600461211c565b610c83565b3480156103a357600080fd5b50610280610d2d565b3480156103b857600080fd5b50601054600e54600f5460408051938452602084019290925290820152606001610257565b3480156103e957600080fd5b5060405160128152602001610257565b34801561040557600080fd5b5061028061041436600461203d565b610d4f565b34801561042557600080fd5b50600d546102809060ff1681565b34801561043f57600080fd5b50610454600954600b54600a5460ff90921692565b604080519315158452602084019290925290820152606001610257565b34801561047d57600080fd5b506102b061048c3660046120e6565b610d8b565b34801561049d57600080fd5b506001610280565b3480156104b157600080fd5b506102b06104c0366004612103565b610e1d565b3480156104d157600080fd5b506102b06104e036600461207e565b610eb6565b3480156104f157600080fd5b506103296105003660046120e6565b6001600160a01b031660009081526020819052604090205490565b34801561052757600080fd5b506102b0610f38565b34801561053c57600080fd5b506102b0610f6e565b34801561055157600080fd5b506102b0610560366004612103565b610fd3565b34801561057157600080fd5b506105bc6105803660046120e6565b6001600160a01b03166000908152601260209081526040808320546013835281842054601190935292205460ff91821693908216929190911690565b6040805193151584529115156020840152151590820152606001610257565b3480156105e757600080fd5b506102b06105f636600461215d565b6110a3565b34801561060757600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610257565b34801561063957600080fd5b5061024a6110e0565b34801561064e57600080fd5b50600d5461010090046001600160a01b0316610615565b34801561067157600080fd5b5061028061068036600461203d565b6110ef565b34801561069157600080fd5b506102806106a036600461203d565b611188565b3480156106b157600080fd5b506103296106c03660046120e6565b50600190565b3480156106d257600080fd5b506102b06106e1366004612103565b611195565b3480156106f257600080fd5b506102b0611237565b34801561070757600080fd5b50610329610716366004612178565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561074d57600080fd5b5060065460055460075491600160a81b90910460ff169060408051938452911515602084015290820152606001610257565b34801561078b57600080fd5b506106157f00000000000000000000000021477976259b3fa0fa87250c6128b450db61f5df81565b3480156107bf57600080fd5b506102b06107ce3660046120e6565b6112ae565b3480156107df57600080fd5b506102b06107ee366004612103565b611346565b606060038054610802906121b1565b80601f016020809104026020016040519081016040528092919081815260200182805461082e906121b1565b801561087b5780601f106108505761010080835404028352916020019161087b565b820191906000526020600020905b81548152906001019060200180831161085e57829003601f168201915b5050505050905090565b6000610892338484611419565b50600192915050565b6005546001600160a01b031633146108ce5760405162461bcd60e51b81526004016108c5906121eb565b60405180910390fd5b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9291015b60405180910390a25050565b6005546001600160a01b031633146109585760405162461bcd60e51b81526004016108c5906121eb565b60018210156109c65760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e604482015273101817181892903a37ba30b61039bab838363c9760611b60648201526084016108c5565b81811015610a295760405162461bcd60e51b815260206004820152602a60248201527f6d6178696d756d20616d6f756e742063616e7420626520686967686572207468604482015269616e206d696e696d756d60b01b60648201526084016108c5565b6005805460ff60a81b1916600160a81b85151502179055600254612710908390610a539190612236565b610a5d9190612255565b60065561271081610a6d60025490565b610a779190612236565b610a819190612255565b600755604080518415158152602081018490529081018290527f52cd2cdb42ff0eeec9362d7ed5b04f64c8d022697128b5378fc51cea7e63c7799060600160405180910390a1505050565b6005546001600160a01b03163314610af65760405162461bcd60e51b81526004016108c5906121eb565b6005811015610b535760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016108c5565b6103e8610b5f60025490565b610b699083612236565b610b739190612255565b600a8190556040519081527f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace906020015b60405180910390a150565b6005546001600160a01b03163314610bd95760405162461bcd60e51b81526004016108c5906121eb565b60108190556064811115610c415760405162461bcd60e51b815260206004820152602960248201527f546f74616c2073656c6c206665652063616e6e6f7420626520686967686572206044820152687468616e203130302560b81b60648201526084016108c5565b6010546040805182815260208101839052908101919091527fcb5f36df892836a2eaedc349de29a7581176990398ee185d16eaa8f6c1abd8f190606001610ba4565b6000610c9084848461153d565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d155760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108c5565b610d228533858403611419565b506001949350505050565b6000671bc16d674ec8000061dead610d458183610885565b5060019250505090565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610892918590610d86908690612277565b611419565b6005546001600160a01b03163314610db55760405162461bcd60e51b81526004016108c5906121eb565b600d546040516001600160a01b036101009092048216918316907f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6790600090a3600d80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6005546001600160a01b03163314610e475760405162461bcd60e51b81526004016108c5906121eb565b600f8190556064811115610eb35760405162461bcd60e51b815260206004820152602d60248201527f546f74616c207472616e73666572206665652063616e6e6f742062652068696760448201526c686572207468616e203130302560981b60648201526084016108c5565b50565b6005546001600160a01b03163314610ee05760405162461bcd60e51b81526004016108c5906121eb565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610922565b6005546001600160a01b03163314610f625760405162461bcd60e51b81526004016108c5906121eb565b610f6c6000611b97565b565b6005546001600160a01b03163314610f985760405162461bcd60e51b81526004016108c5906121eb565b6000600f8190556009805460ff1916905560405142917ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261691a2565b6005546001600160a01b03163314610ffd5760405162461bcd60e51b81526004016108c5906121eb565b600281101561104e5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e322560448201526064016108c5565b6103e861105a60025490565b6110649083612236565b61106e9190612255565b600b8190556040519081527fff3dd5e80294197918c284bbfc3dadd97d0b40ce92106110946329088f80068a90602001610ba4565b6005546001600160a01b031633146110cd5760405162461bcd60e51b81526004016108c5906121eb565b6017805460ff1916911515919091179055565b606060048054610802906121b1565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111715760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108c5565b61117e3385858403611419565b5060019392505050565b600061089233848461153d565b600d5461010090046001600160a01b031633146112005760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206d61726b6574696e672077616c6c65742063616e2063616c6c207460448201526268697360e81b60648201526084016108c5565b3060009081526020819052604081205490606461121d8484612236565b6112279190612255565b905061123281611be9565b505050565b6005546001600160a01b031633146112615760405162461bcd60e51b81526004016108c5906121eb565b600d805460ff191660011790556005805460ff60a81b1916600160a81b17905560405142907fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e92390600090a2565b6005546001600160a01b031633146112d85760405162461bcd60e51b81526004016108c5906121eb565b6001600160a01b03811661133d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c5565b610eb381611b97565b6005546001600160a01b031633146113705760405162461bcd60e51b81526004016108c5906121eb565b600e81905560648111156113d75760405162461bcd60e51b815260206004820152602860248201527f546f74616c20627579206665652063616e6e6f7420626520686967686572207460448201526768616e203130302560c01b60648201526084016108c5565b600e546040805182815260208101839052908101919091527f38513c502b0ab4834ac1df9502b76f75dcf7092469782cfd0db7fe664388e25e90606001610ba4565b6001600160a01b03831661147b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108c5565b6001600160a01b0382166114dc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108c5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115635760405162461bcd60e51b81526004016108c59061228f565b6001600160a01b0382166115895760405162461bcd60e51b81526004016108c5906122d4565b8060000361159d5761123283836000611da9565b60095460ff1615611902576005546001600160a01b038481169116148015906115d457506005546001600160a01b03838116911614155b80156115e857506001600160a01b03821615155b80156115ff57506001600160a01b03821661dead14155b80156116155750600554600160a01b900460ff16155b1561190257600d5460ff166116ba576001600160a01b03831660009081526011602052604090205460ff168061166357506001600160a01b03821660009081526011602052604090205460ff165b6116ba5760405162461bcd60e51b815260206004820152602260248201527f5f7472616e736665723a3a2054726164696e67206973206e6f74206163746976604482015261329760f11b60648201526084016108c5565b6001600160a01b03831660009081526013602052604090205460ff1680156116fb57506001600160a01b03821660009081526012602052604090205460ff16155b156117d057600b548111156117615760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b60648201526084016108c5565b600a546001600160a01b0383166000908152602081905260409020546117879083612277565b11156117cb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108c5565b611902565b6001600160a01b03821660009081526013602052604090205460ff16801561181157506001600160a01b03831660009081526012602052604090205460ff16155b1561187857600b548111156117cb5760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b60648201526084016108c5565b6001600160a01b03821660009081526012602052604090205460ff1661190257600a546001600160a01b0383166000908152602081905260409020546118be9083612277565b11156119025760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108c5565b306000908152602081905260409020546006548110801590819061192f5750600554600160a81b900460ff165b80156119455750600554600160a01b900460ff16155b801561196a57506001600160a01b03851660009081526013602052604090205460ff16155b801561198f57506001600160a01b03851660009081526011602052604090205460ff16155b80156119b457506001600160a01b03841660009081526011602052604090205460ff16155b80156119c257504260085414155b156119f5576005805460ff60a01b1916600160a01b1790556119e383611efe565b426008556005805460ff60a01b191690555b6005546001600160a01b03861660009081526011602052604090205460ff600160a01b909204821615911680611a4357506001600160a01b03851660009081526011602052604090205460ff165b15611a4c575060005b60008115611b83576001600160a01b03861660009081526013602052604090205460ff168015611a7e57506000601054115b15611aaa57611aa36064611a9d60105488611fb490919063ffffffff16565b90611fc7565b9050611b65565b6001600160a01b03871660009081526013602052604090205460ff168015611ad457506000600e54115b15611af357611aa36064611a9d600e5488611fb490919063ffffffff16565b6000600f54118015611b1e57506001600160a01b03871660009081526013602052604090205460ff16155b8015611b4357506001600160a01b03861660009081526013602052604090205460ff16155b15611b6557611b626064611a9d600f5488611fb490919063ffffffff16565b90505b8015611b7657611b76873083611da9565b611b808186612317565b94505b611b8e878787611da9565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8c919061232e565b81600181518110611c9f57611c9f61234b565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600081518110611cd357611cd361234b565b60200260200101906001600160a01b031690816001600160a01b031681525050611d1e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611419565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611d73908590600090869030904290600401612361565b600060405180830381600087803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b505050505050565b6001600160a01b038316611dcf5760405162461bcd60e51b81526004016108c59061228f565b6001600160a01b038216611df55760405162461bcd60e51b81526004016108c5906122d4565b6001600160a01b03831660009081526020819052604090205481811015611e6d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108c5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ea4908490612277565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef091815260200190565b60405180910390a350505050565b3060009081526020819052604081205490818103611f1b57505050565b600754821115611f2b5760075491505b60175460ff168015611f465750611f4383600a612236565b82115b15611f5957611f5683600a612236565b91505b81611f6381611be9565b600d546040516101009091046001600160a01b0316904790600081818185875af1925050503d8060008114611b8e576040519150601f19603f3d011682016040523d82523d6000602084013e611b8e565b6000611fc08284612236565b9392505050565b6000611fc08284612255565b600060208083528351808285015260005b8181101561200057858101830151858201604001528201611fe4565b81811115612012576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610eb357600080fd5b6000806040838503121561205057600080fd5b823561205b81612028565b946020939093013593505050565b8035801515811461207957600080fd5b919050565b6000806040838503121561209157600080fd5b823561209c81612028565b91506120aa60208401612069565b90509250929050565b6000806000606084860312156120c857600080fd5b6120d184612069565b95602085013595506040909401359392505050565b6000602082840312156120f857600080fd5b8135611fc081612028565b60006020828403121561211557600080fd5b5035919050565b60008060006060848603121561213157600080fd5b833561213c81612028565b9250602084013561214c81612028565b929592945050506040919091013590565b60006020828403121561216f57600080fd5b611fc082612069565b6000806040838503121561218b57600080fd5b823561219681612028565b915060208301356121a681612028565b809150509250929050565b600181811c908216806121c557607f821691505b6020821081036121e557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561225057612250612220565b500290565b60008261227257634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561228a5761228a612220565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008282101561232957612329612220565b500390565b60006020828403121561234057600080fd5b8151611fc081612028565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123b15784516001600160a01b03168352938301939183019160010161238c565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206cb02875dcfa4461b1ac7a6e854e52c484886b2711340b3d19c120a2ff27faf964736f6c634300080f0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.