ETH Price: $3,094.39 (+0.72%)
Gas: 5 Gwei

Contract

0x2f3F0589021D202e9Fbb48cB17b23961B9Ef75b3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve201837482024-06-27 14:53:3513 days ago1719500015IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0006897114.81850801
Approve200989912024-06-15 18:29:5925 days ago1718476199IN
0x2f3F0589...1B9Ef75b3
0 ETH0.000215044.62029404
Approve200081832024-06-03 2:02:2337 days ago1717380143IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0007025115.09352708
Approve198726072024-05-15 3:11:3556 days ago1715742695IN
0x2f3F0589...1B9Ef75b3
0 ETH0.000330927.15788921
Transfer198726022024-05-15 3:10:3556 days ago1715742635IN
0x2f3F0589...1B9Ef75b3
0 ETH0.000478666.79296808
Approve198167082024-05-07 7:30:3564 days ago1715067035IN
0x2f3F0589...1B9Ef75b3
0 ETH0.000179837.41290193
Approve198166242024-05-07 7:13:4764 days ago1715066027IN
0x2f3F0589...1B9Ef75b3
0 ETH0.00046529.99484505
Approve197610032024-04-29 12:34:4772 days ago1714394087IN
0x2f3F0589...1B9Ef75b3
0 ETH0.000812517.52454265
Approve197211342024-04-23 22:40:2377 days ago1713912023IN
0x2f3F0589...1B9Ef75b3
0 ETH0.000392888.49803057
Approve196009192024-04-07 2:43:3594 days ago1712457815IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0005506711.81598377
Approve195749902024-04-03 11:37:2398 days ago1712144243IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0010355722.2493861
Approve194634542024-03-18 18:27:35114 days ago1710786455IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0016973136.71297186
Approve193766282024-03-06 14:08:23126 days ago1709734103IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0026260999.73026462
Approve193766252024-03-06 14:07:47126 days ago1709734067IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0048765105.47888933
Approve193208912024-02-27 19:11:23134 days ago1709061083IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0035265475.67045873
Approve192558322024-02-18 16:20:11143 days ago1708273211IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0014485431.12208249
Approve192391402024-02-16 8:00:47145 days ago1708070447IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0011050123.71064796
Approve192391392024-02-16 8:00:35145 days ago1708070435IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0010910323.41079002
Transfer192387942024-02-16 6:50:23145 days ago1708066223IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0009860418.65569044
Transfer192387752024-02-16 6:46:35145 days ago1708065995IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0011272821.32790089
Approve192384242024-02-16 5:35:23145 days ago1708061723IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0010032221.55442288
Approve192265042024-02-14 13:27:47147 days ago1707917267IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0013911530.09066233
Approve192256942024-02-14 10:44:35147 days ago1707907475IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0012423226.67075422
Transfer192187122024-02-13 11:11:47148 days ago1707822707IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0013621125.52448116
Approve191239942024-01-31 4:08:59161 days ago1706674139IN
0x2f3F0589...1B9Ef75b3
0 ETH0.0004468818.37523374
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
185086412023-11-05 22:01:35247 days ago1699221695
0x2f3F0589...1B9Ef75b3
0.37030522 ETH
185086412023-11-05 22:01:35247 days ago1699221695
0x2f3F0589...1B9Ef75b3
0.37030522 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.18882126 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.18882126 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.20672619 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.20672619 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.22730617 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.22730617 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.25112217 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.25112217 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.27889038 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.27889038 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.31153676 ETH
185085932023-11-05 21:51:59247 days ago1699221119
0x2f3F0589...1B9Ef75b3
0.31153676 ETH
185085882023-11-05 21:50:59247 days ago1699221059
0x2f3F0589...1B9Ef75b3
0.32052993 ETH
185085882023-11-05 21:50:59247 days ago1699221059
0x2f3F0589...1B9Ef75b3
0.32052993 ETH
185085752023-11-05 21:48:23247 days ago1699220903
0x2f3F0589...1B9Ef75b3
0.35846709 ETH
185085752023-11-05 21:48:23247 days ago1699220903
0x2f3F0589...1B9Ef75b3
0.35846709 ETH
185085602023-11-05 21:45:23247 days ago1699220723
0x2f3F0589...1B9Ef75b3
0.06409702 ETH
185085602023-11-05 21:45:23247 days ago1699220723
0x2f3F0589...1B9Ef75b3
0.06409702 ETH
185085602023-11-05 21:45:23247 days ago1699220723
0x2f3F0589...1B9Ef75b3
0.06754596 ETH
185085602023-11-05 21:45:23247 days ago1699220723
0x2f3F0589...1B9Ef75b3
0.06754596 ETH
185085602023-11-05 21:45:23247 days ago1699220723
0x2f3F0589...1B9Ef75b3
0.07128111 ETH
185085602023-11-05 21:45:23247 days ago1699220723
0x2f3F0589...1B9Ef75b3
0.07128111 ETH
185085602023-11-05 21:45:23247 days ago1699220723
0x2f3F0589...1B9Ef75b3
0.07533507 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AJAX

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion
File 1 of 1 : AJAX.sol
// SPDX-License-Identifier: MIT
// Welcome to Apple GPT | AJAX
// TG: https://t.me/AjaxAppleAI
// TWITTER: https://twitter.com/AJAXERC20
// ARTICLE: https://www.bloomberg.com/news/articles/2023-07-19/apple-preps-ajax-generative-ai-apple-gpt-to-rival-openai-and-google?leadSource=uverify%20wall


pragma solidity ^0.8.17;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        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);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

library Address {

    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _oldOwner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner(bool currentOwner) {
        if(currentOwner)
            require(_owner == _msgSender(), "Ownable: caller is not the owner");
        else
            require(_oldOwner == _msgSender(), "Ownable: caller is not the old owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner(true) {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner(true) {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

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

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

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

contract AJAX is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;
    
    string private _name = "AJAX";
    string private _symbol = "AJAX";
    uint8 private _decimals = 9;
    uint256 private _totalSupply =  1000000 * 10**_decimals;           
    uint256 private minimumTokensBeforeSwap = 10000 * 10**_decimals;
    uint256 public _walletMax = 20000 * 10**_decimals;
    
    address payable public marketingWalletAddress = payable(0x80422Cd0AA3B8c76b3b84125a5DaEaaa40baa489);
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;


    uint8 public _buyTax = 25;
    uint8 public _sellTax = 30;


    IDEXRouter public idexV2Router;
    address public idexPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;
    bool public swapAndLiquifyByLimitOnly = true;
    uint256 public swapAndLiquidityCount=0;
    uint256 public swapAndLiquidityFrequency=2;
    bool public _startTrading=true;
    bool public walletLimitCheck=true;
    bool public disableLiquidityCountCycle=false;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event Log(string message);
    
    constructor () {
        //SEPOLIA: 0x86dcd3293C53Cf8EFd7303B57beb2a3F671dDE98
        //ETH_UNISWAP: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D 
       IDEXRouter _idexV2Router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
       idexPair = IDEXFactory(_idexV2Router.factory()).createPair(address(this), _idexV2Router.WETH());

       idexV2Router = _idexV2Router;
       _allowances[address(this)][address(idexV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[marketingWalletAddress] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(idexPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[marketingWalletAddress] = true;
        isWalletLimitExempt[deadAddress] = true;

        isMarketPair[address(idexPair)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

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

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

    function setMarketPairStatus(address account, bool newValue) public onlyOwner(false) {
        isMarketPair[account] = newValue;
    }

    
    function setIsExcludedFromFee(address account, bool newValue) public onlyOwner(false) {
        isExcludedFromFee[account] = newValue;
    }


    function setTaxes(uint8 sell, uint8 buy) external onlyOwner(true) {
        _buyTax = buy;
        _sellTax = sell;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner(false) {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMarketingWalletAddress(address newAddress) external onlyOwner(false) {
        marketingWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner(false) {
        swapAndLiquifyEnabled = _enabled;
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner(false) {
        swapAndLiquifyByLimitOnly = newValue;
    }

    function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner(false) {
        isWalletLimitExempt[holder] = exempt;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner(true) {
        _walletMax  = newLimit;
    }

    function setWalletCheck(bool value) public onlyOwner(false){
        walletLimitCheck = value;
    }

    function setDisableLiquidityCountCycle(bool value) public onlyOwner(false){
        disableLiquidityCountCycle = value;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function setSwapAndLiquidityCountAndFrequency(uint256 valueCount,uint256 valueFrequency) external onlyOwner(false) {
        swapAndLiquidityCount= valueCount;
        swapAndLiquidityFrequency=valueFrequency;
    }


    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(_startTrading,"The market is closed");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {         
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            bool overMinimumTokenBalance = balanceOf(address(this)) >= minimumTokensBeforeSwap;

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? 
                                         amount : feeManagement(sender, recipient, amount);

            if (overMinimumTokenBalance && !inSwapAndLiquify && (!isMarketPair[sender]) && swapAndLiquifyEnabled){
                if(swapAndLiquidityCount>=swapAndLiquidityFrequency || disableLiquidityCountCycle){
                    finalAmount = amount;
                }
            }                     

            feeManager(sender);

            if(walletLimitCheck && !isWalletLimitExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);                             

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);

            return true;
        }
    }

    function feeManager(address sender) internal{
            bool overMinimumTokenBalance = balanceOf(address(this)) >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && (!isMarketPair[sender]) && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquidityCount>=swapAndLiquidityFrequency || disableLiquidityCountCycle){
                    if(swapAndLiquifyByLimitOnly)
                        swapAndLiquify(minimumTokensBeforeSwap);  
                    else
                        swapAndLiquify(balanceOf(address(this)));  

                    swapAndLiquidityCount=0;
                }else{
                     swapAndLiquidityCount+=1;
                }
            }
    }

    function manualSellTaxTokens(uint256 amount) public onlyOwner(false){
        swapAndLiquify(amount>0 ? amount : balanceOf(address(this)));    
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        swapTokensForEth(tAmount);
    
        if(tAmount > 0)
            transferToAddressETH(marketingWalletAddress, address(this).balance);

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

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

        // make the swap
         
        try idexV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp){
                emit Log("sell ok");
            }catch{
                emit Log("sell ko");
            }
    }

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

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

    function feeManagement(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender] && _buyTax>0) {
            feeAmount = amount.mul(_buyTax).div(100);
        }
        else if(isMarketPair[recipient] && _sellTax>0) {
            feeAmount = amount.mul(_sellTax).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
             emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function startTrading(bool newValue) external onlyOwner(true) {
        if(newValue==true)
            _startTrading = newValue;
    }

    function backupTax() public onlyOwner(false) {
        if(_balances[address(this)]>0)
             _basicTransfer(address(this),msg.sender,_balances[address(this)]);
    }

    
}

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

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":"string","name":"message","type":"string"}],"name":"Log","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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_startTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"backupTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"disableLiquidityCountCycle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"idexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"idexV2Router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSellTaxTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setDisableLiquidityCountCycle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"valueCount","type":"uint256"},{"internalType":"uint256","name":"valueFrequency","type":"uint256"}],"name":"setSwapAndLiquidityCountAndFrequency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"sell","type":"uint8"},{"internalType":"uint8","name":"buy","type":"uint8"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setWalletCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquidityCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquidityFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"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":[],"name":"walletLimitCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600460a0908152630829482b60e31b60c0526002906200002590826200059d565b506040805180820190915260048152630829482b60e31b60208201526003906200005090826200059d565b506004805460ff191660099081179091556200006e90600a6200077e565b6200007d90620f424062000796565b600555600454620000939060ff16600a6200077e565b620000a19061271062000796565b600655600454620000b79060ff16600a6200077e565b620000c590614e2062000796565b600755600880546001600160a01b0319167380422cd0aa3b8c76b3b84125a5daeaaa40baa48917905561dead608052600e8054611e1961ffff19909116179055600f805461ffff60a81b1916600160b01b179055600060105560026011556012805462ffffff19166101011790553480156200014057600080fd5b5060008054336001600160a01b031991821681178355600180549092168117909155604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020d9190620007b0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002819190620007b0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f59190620007b0565b600f80546001600160a01b0319166001600160a01b03928316179055600e805462010000600160b01b0319166201000084841681029190911791829055600554306000908152600a602090815260408083209490950490951681529190935290812091909155600190600b90620003746000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600b909352818320805485166001908117909155600854909116835290822080549093168117909255600d90620003e46000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600f805483168252600d8552838220805487166001908117909155308352848320805488168217905560085484168352848320805488168217905560805184168352848320805488168217905590549092168152600c90935290822080549093161790915560055490600990620004863390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620004e991815260200190565b60405180910390a350620007db565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200052357607f821691505b6020821081036200054457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200059857600081815260208120601f850160051c81016020861015620005735750805b601f850160051c820191505b8181101562000594578281556001016200057f565b5050505b505050565b81516001600160401b03811115620005b957620005b9620004f8565b620005d181620005ca84546200050e565b846200054a565b602080601f831160018114620006095760008415620005f05750858301515b600019600386901b1c1916600185901b17855562000594565b600085815260208120601f198616915b828110156200063a5788860151825594840194600190910190840162000619565b5085821015620006595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006c0578160001904821115620006a457620006a462000669565b80851615620006b257918102915b93841c939080029062000684565b509250929050565b600082620006d95750600162000778565b81620006e85750600062000778565b81600181146200070157600281146200070c576200072c565b600191505062000778565b60ff84111562000720576200072062000669565b50506001821b62000778565b5060208310610133831016604e8410600b841016171562000751575081810a62000778565b6200075d83836200067f565b806000190482111562000774576200077462000669565b0290505b92915050565b60006200078f60ff841683620006c8565b9392505050565b808202811582820484141762000778576200077862000669565b600060208284031215620007c357600080fd5b81516001600160a01b03811681146200078f57600080fd5b608051612144620007fe600039600081816104310152610b9501526121446000f3fe6080604052600436106102b25760003560e01c806360e65bb811610175578063ade035ec116100dc578063d158272d11610095578063dd62ed3e1161006f578063dd62ed3e14610876578063ef422a18146108bc578063f1d5f517146108dc578063f2fde38b146108fc57600080fd5b8063d158272d14610815578063d97abe0f14610835578063da00097d1461085557600080fd5b8063ade035ec14610747578063b0b0134414610766578063b388c5c214610786578063c49b9a80146107a6578063c867d60b146107c6578063ca9ec199146107f657600080fd5b80638da5cb5b1161012e5780638da5cb5b1461069f57806395d89b41146106bd578063a073d37f146106d2578063a457c2d7146106e7578063a5d69d1f14610707578063a9059cbb1461072757600080fd5b806360e65bb8146105fa57806370a082311461061a578063715018a61461063a578063807c2d9c1461064f578063844d591c146106655780638813f5e31461068557600080fd5b80632b112e49116102195780633ecad271116101d25780633ecad2711461052c57806342a110951461055c5780634a74bb02146105765780634cb80fd5146105975780635342acb4146105b7578063557ed1ba146105e757600080fd5b80632b112e491461046b5780632dc98f1c14610480578063313ce567146104a057806331444de3146104c657806339509351146104ec5780633b97084a1461050c57600080fd5b8063182843c61161026b578063182843c6146103895780631a5ae0d0146103a95780632198cf6c146103c95780632277b489146103e957806323b872dd146103ff57806327c8f8351461041f57600080fd5b806306fdde03146102be578063095ea7b3146102e95780631277e709146103195780631341602c1461033b57806317d05ee91461035f57806318160ddd1461037457600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d361091c565b6040516102e09190611cf4565b60405180910390f35b3480156102f557600080fd5b50610309610304366004611d57565b6109ae565b60405190151581526020016102e0565b34801561032557600080fd5b50610339610334366004611d99565b6109c5565b005b34801561034757600080fd5b5061035160115481565b6040519081526020016102e0565b34801561036b57600080fd5b50610339610a1d565b34801561038057600080fd5b50600554610351565b34801561039557600080fd5b506103396103a4366004611ddc565b610a7f565b3480156103b557600080fd5b506012546103099062010000900460ff1681565b3480156103d557600080fd5b506103396103e4366004611df7565b610ac8565b3480156103f557600080fd5b5061035160105481565b34801561040b57600080fd5b5061030961041a366004611e23565b610b20565b34801561042b57600080fd5b506104537f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e0565b34801561047757600080fd5b50610351610b8b565b34801561048c57600080fd5b5061033961049b366004611e64565b610bc7565b3480156104ac57600080fd5b5060045460ff165b60405160ff90911681526020016102e0565b3480156104d257600080fd5b50600e54610453906201000090046001600160a01b031681565b3480156104f857600080fd5b50610309610507366004611d57565b610bff565b34801561051857600080fd5b50610339610527366004611e86565b610c35565b34801561053857600080fd5b50610309610547366004611e9f565b600c6020526000908152604090205460ff1681565b34801561056857600080fd5b50600e546104b49060ff1681565b34801561058257600080fd5b50600f5461030990600160a81b900460ff1681565b3480156105a357600080fd5b506103396105b2366004611e9f565b610c67565b3480156105c357600080fd5b506103096105d2366004611e9f565b600b6020526000908152604090205460ff1681565b3480156105f357600080fd5b5042610351565b34801561060657600080fd5b50610339610615366004611ddc565b610cb6565b34801561062657600080fd5b50610351610635366004611e9f565b610d01565b34801561064657600080fd5b50610339610d1c565b34801561065b57600080fd5b5061035160075481565b34801561067157600080fd5b50610339610680366004611df7565b610d9a565b34801561069157600080fd5b506012546103099060ff1681565b3480156106ab57600080fd5b506000546001600160a01b0316610453565b3480156106c957600080fd5b506102d3610df2565b3480156106de57600080fd5b50600654610351565b3480156106f357600080fd5b50610309610702366004611d57565b610e01565b34801561071357600080fd5b50610339610722366004611ddc565b610e50565b34801561073357600080fd5b50610309610742366004611d57565b610e9b565b34801561075357600080fd5b5060125461030990610100900460ff1681565b34801561077257600080fd5b50600f54610453906001600160a01b031681565b34801561079257600080fd5b506103396107a1366004611e86565b610ea8565b3480156107b257600080fd5b506103396107c1366004611ddc565b610ef3565b3480156107d257600080fd5b506103096107e1366004611e9f565b600d6020526000908152604090205460ff1681565b34801561080257600080fd5b50600e546104b490610100900460ff1681565b34801561082157600080fd5b50600854610453906001600160a01b031681565b34801561084157600080fd5b50610339610850366004611ddc565b610f3e565b34801561086157600080fd5b50600f5461030990600160b01b900460ff1681565b34801561088257600080fd5b50610351610891366004611ebc565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156108c857600080fd5b506103396108d7366004611df7565b610f85565b3480156108e857600080fd5b506103396108f7366004611e86565b610fdd565b34801561090857600080fd5b50610339610917366004611e9f565b611010565b60606002805461092b90611ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461095790611ef5565b80156109a45780601f10610979576101008083540402835291602001916109a4565b820191906000526020600020905b81548152906001019060200180831161098757829003601f168201915b5050505050905090565b60006109bb3384846110fe565b5060015b92915050565b6000546001906001600160a01b031633146109fb5760405162461bcd60e51b81526004016109f290611f2f565b60405180910390fd5b50600e805460ff9384166101000261ffff199091169390921692909217179055565b60006001546001600160a01b03163314610a495760405162461bcd60e51b81526004016109f290611f64565b3060009081526009602052604090205415610a7c5730600081815260096020526040902054610a7a91903390611222565b505b50565b60006001546001600160a01b03163314610aab5760405162461bcd60e51b81526004016109f290611f64565b5060128054911515620100000262ff000019909216919091179055565b60006001546001600160a01b03163314610af45760405162461bcd60e51b81526004016109f290611f64565b506001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000610b2d848484611308565b50610b808433610b7b856040518060600160405280602881526020016120c2602891396001600160a01b038a166000908152600a602090815260408083203384529091529020549190611678565b6110fe565b5060015b9392505050565b6000610bc2610bb97f0000000000000000000000000000000000000000000000000000000000000000610d01565b600554906116b2565b905090565b60006001546001600160a01b03163314610bf35760405162461bcd60e51b81526004016109f290611f64565b50601091909155601155565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916109bb918590610b7b90866116f4565b60006001546001600160a01b03163314610c615760405162461bcd60e51b81526004016109f290611f64565b50600655565b60006001546001600160a01b03163314610c935760405162461bcd60e51b81526004016109f290611f64565b50600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001906001600160a01b03163314610ce35760405162461bcd60e51b81526004016109f290611f2f565b811515600103610a7a576012805483151560ff199091161790555050565b6001600160a01b031660009081526009602052604090205490565b6000546001906001600160a01b03163314610d495760405162461bcd60e51b81526004016109f290611f2f565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350600080546001600160a01b03191661dead179055565b60006001546001600160a01b03163314610dc65760405162461bcd60e51b81526004016109f290611f64565b506001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60606003805461092b90611ef5565b60006109bb3384610b7b856040518060600160405280602581526020016120ea60259139336000908152600a602090815260408083206001600160a01b038d1684529091529020549190611678565b60006001546001600160a01b03163314610e7c5760405162461bcd60e51b81526004016109f290611f64565b50600f8054911515600160b01b0260ff60b01b19909216919091179055565b6000610b80338484611308565b60006001546001600160a01b03163314610ed45760405162461bcd60e51b81526004016109f290611f64565b610a7a60008311610eed57610ee830610d01565b611753565b82611753565b60006001546001600160a01b03163314610f1f5760405162461bcd60e51b81526004016109f290611f64565b50600f8054911515600160a81b0260ff60a81b19909216919091179055565b60006001546001600160a01b03163314610f6a5760405162461bcd60e51b81526004016109f290611f64565b50601280549115156101000261ff0019909216919091179055565b60006001546001600160a01b03163314610fb15760405162461bcd60e51b81526004016109f290611f64565b506001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001906001600160a01b0316331461100a5760405162461bcd60e51b81526004016109f290611f2f565b50600755565b6000546001906001600160a01b0316331461103d5760405162461bcd60e51b81526004016109f290611f2f565b6001600160a01b0382166110a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109f2565b600080546040516001600160a01b03808616939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f2565b6001600160a01b0382166111c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f2565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600990915291822054611273918490611678565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546112a290836116f4565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f69086815260200190565b60405180910390a35060019392505050565b60006001600160a01b03841661136e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f2565b6001600160a01b0383166113d05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f2565b60125460ff166114195760405162461bcd60e51b8152602060048201526014602482015273151a19481b585c9ad95d081a5cc818db1bdcd95960621b60448201526064016109f2565b600f54600160a01b900460ff161561143d57611436848484611222565b9050610b84565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152919091205461148f918490611678565b6001600160a01b0385166000908152600960205260408120919091556006546114b730610d01565b6001600160a01b0387166000908152600b6020526040812054929091101592509060ff16806114fe57506001600160a01b0385166000908152600b602052604090205460ff165b6115125761150d86868661179b565b611514565b835b905081801561152d5750600f54600160a01b900460ff16155b801561155257506001600160a01b0386166000908152600c602052604090205460ff16155b80156115675750600f54600160a81b900460ff165b1561158f57601154601054101580611587575060125462010000900460ff165b1561158f5750825b611598866118cd565b601254610100900460ff1680156115c857506001600160a01b0385166000908152600d602052604090205460ff16155b156115ee576007546115e3826115dd88610d01565b906116f4565b11156115ee57600080fd5b6001600160a01b03851660009081526009602052604090205461161190826116f4565b6001600160a01b0380871660008181526009602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116659085815260200190565b60405180910390a3600192505050610b84565b6000818484111561169c5760405162461bcd60e51b81526004016109f29190611cf4565b5060006116a98486611fbe565b95945050505050565b6000610b8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611678565b6000806117018385611fd1565b905083811015610b845760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109f2565b600f805460ff60a01b1916600160a01b17905561176f816119a9565b801561178b5760085461178b906001600160a01b031647611bcc565b50600f805460ff60a01b19169055565b6001600160a01b0383166000908152600c6020526040812054819060ff1680156117c95750600e5460ff1615155b156117f357600e546117ec906064906117e690869060ff16611c07565b90611c89565b9050611849565b6001600160a01b0384166000908152600c602052604090205460ff1680156118245750600e54610100900460ff1615155b1561184957600e54611846906064906117e6908690610100900460ff16611c07565b90505b80156118c3573060009081526009602052604090205461186990826116f4565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118ba9085815260200190565b60405180910390a35b6116a983826116b2565b60006006546118db30610d01565b101590508080156118f65750600f54600160a01b900460ff16155b801561191b57506001600160a01b0382166000908152600c602052604090205460ff16155b80156119305750600f54600160a81b900460ff165b15610a7a57601154601054101580611950575060125462010000900460ff165b1561198d57600f54600160b01b900460ff161561197757611972600654611753565b611983565b611983610ee830610d01565b6000601055610a7a565b6001601060008282546119a09190611fd1565b90915550505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119de576119de611fe4565b60200260200101906001600160a01b031690816001600160a01b031681525050600e60029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a759190611ffa565b81600181518110611a8857611a88611fe4565b6001600160a01b039283166020918202929092010152600e54611ab491309162010000900416846110fe565b600e5460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790611af2908590600090869030904290600401612017565b600060405180830381600087803b158015611b0c57600080fd5b505af1925050508015611b1d575060015b611b77577fcf34ef537ac33ee1ac626ca1587a0a7e8e51561e5514f8cb36afa1c5102b3bab604051611b6a9060208082526007908201526673656c6c206b6f60c81b604082015260600190565b60405180910390a1610a7a565b7fcf34ef537ac33ee1ac626ca1587a0a7e8e51561e5514f8cb36afa1c5102b3bab604051611bc09060208082526007908201526673656c6c206f6b60c81b604082015260600190565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611c02573d6000803e3d6000fd5b505050565b600082600003611c19575060006109bf565b6000611c258385612088565b905082611c32858361209f565b14610b845760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109f2565b6000610b8483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ce75760405162461bcd60e51b81526004016109f29190611cf4565b5060006116a9848661209f565b600060208083528351808285015260005b81811015611d2157858101830151858201604001528201611d05565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a7c57600080fd5b60008060408385031215611d6a57600080fd5b8235611d7581611d42565b946020939093013593505050565b803560ff81168114611d9457600080fd5b919050565b60008060408385031215611dac57600080fd5b611db583611d83565b9150611dc360208401611d83565b90509250929050565b80358015158114611d9457600080fd5b600060208284031215611dee57600080fd5b610b8482611dcc565b60008060408385031215611e0a57600080fd5b8235611e1581611d42565b9150611dc360208401611dcc565b600080600060608486031215611e3857600080fd5b8335611e4381611d42565b92506020840135611e5381611d42565b929592945050506040919091013590565b60008060408385031215611e7757600080fd5b50508035926020909101359150565b600060208284031215611e9857600080fd5b5035919050565b600060208284031215611eb157600080fd5b8135610b8481611d42565b60008060408385031215611ecf57600080fd5b8235611eda81611d42565b91506020830135611eea81611d42565b809150509250929050565b600181811c90821680611f0957607f821691505b602082108103611f2957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f6c64206f6040820152633bb732b960e11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156109bf576109bf611fa8565b808201808211156109bf576109bf611fa8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561200c57600080fd5b8151610b8481611d42565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120675784516001600160a01b031683529383019391830191600101612042565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176109bf576109bf611fa8565b6000826120bc57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bdf0cc60b004ad952434e616a07453bfca26ac9dfcc1ea1256f04673b682140364736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c806360e65bb811610175578063ade035ec116100dc578063d158272d11610095578063dd62ed3e1161006f578063dd62ed3e14610876578063ef422a18146108bc578063f1d5f517146108dc578063f2fde38b146108fc57600080fd5b8063d158272d14610815578063d97abe0f14610835578063da00097d1461085557600080fd5b8063ade035ec14610747578063b0b0134414610766578063b388c5c214610786578063c49b9a80146107a6578063c867d60b146107c6578063ca9ec199146107f657600080fd5b80638da5cb5b1161012e5780638da5cb5b1461069f57806395d89b41146106bd578063a073d37f146106d2578063a457c2d7146106e7578063a5d69d1f14610707578063a9059cbb1461072757600080fd5b806360e65bb8146105fa57806370a082311461061a578063715018a61461063a578063807c2d9c1461064f578063844d591c146106655780638813f5e31461068557600080fd5b80632b112e49116102195780633ecad271116101d25780633ecad2711461052c57806342a110951461055c5780634a74bb02146105765780634cb80fd5146105975780635342acb4146105b7578063557ed1ba146105e757600080fd5b80632b112e491461046b5780632dc98f1c14610480578063313ce567146104a057806331444de3146104c657806339509351146104ec5780633b97084a1461050c57600080fd5b8063182843c61161026b578063182843c6146103895780631a5ae0d0146103a95780632198cf6c146103c95780632277b489146103e957806323b872dd146103ff57806327c8f8351461041f57600080fd5b806306fdde03146102be578063095ea7b3146102e95780631277e709146103195780631341602c1461033b57806317d05ee91461035f57806318160ddd1461037457600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d361091c565b6040516102e09190611cf4565b60405180910390f35b3480156102f557600080fd5b50610309610304366004611d57565b6109ae565b60405190151581526020016102e0565b34801561032557600080fd5b50610339610334366004611d99565b6109c5565b005b34801561034757600080fd5b5061035160115481565b6040519081526020016102e0565b34801561036b57600080fd5b50610339610a1d565b34801561038057600080fd5b50600554610351565b34801561039557600080fd5b506103396103a4366004611ddc565b610a7f565b3480156103b557600080fd5b506012546103099062010000900460ff1681565b3480156103d557600080fd5b506103396103e4366004611df7565b610ac8565b3480156103f557600080fd5b5061035160105481565b34801561040b57600080fd5b5061030961041a366004611e23565b610b20565b34801561042b57600080fd5b506104537f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b0390911681526020016102e0565b34801561047757600080fd5b50610351610b8b565b34801561048c57600080fd5b5061033961049b366004611e64565b610bc7565b3480156104ac57600080fd5b5060045460ff165b60405160ff90911681526020016102e0565b3480156104d257600080fd5b50600e54610453906201000090046001600160a01b031681565b3480156104f857600080fd5b50610309610507366004611d57565b610bff565b34801561051857600080fd5b50610339610527366004611e86565b610c35565b34801561053857600080fd5b50610309610547366004611e9f565b600c6020526000908152604090205460ff1681565b34801561056857600080fd5b50600e546104b49060ff1681565b34801561058257600080fd5b50600f5461030990600160a81b900460ff1681565b3480156105a357600080fd5b506103396105b2366004611e9f565b610c67565b3480156105c357600080fd5b506103096105d2366004611e9f565b600b6020526000908152604090205460ff1681565b3480156105f357600080fd5b5042610351565b34801561060657600080fd5b50610339610615366004611ddc565b610cb6565b34801561062657600080fd5b50610351610635366004611e9f565b610d01565b34801561064657600080fd5b50610339610d1c565b34801561065b57600080fd5b5061035160075481565b34801561067157600080fd5b50610339610680366004611df7565b610d9a565b34801561069157600080fd5b506012546103099060ff1681565b3480156106ab57600080fd5b506000546001600160a01b0316610453565b3480156106c957600080fd5b506102d3610df2565b3480156106de57600080fd5b50600654610351565b3480156106f357600080fd5b50610309610702366004611d57565b610e01565b34801561071357600080fd5b50610339610722366004611ddc565b610e50565b34801561073357600080fd5b50610309610742366004611d57565b610e9b565b34801561075357600080fd5b5060125461030990610100900460ff1681565b34801561077257600080fd5b50600f54610453906001600160a01b031681565b34801561079257600080fd5b506103396107a1366004611e86565b610ea8565b3480156107b257600080fd5b506103396107c1366004611ddc565b610ef3565b3480156107d257600080fd5b506103096107e1366004611e9f565b600d6020526000908152604090205460ff1681565b34801561080257600080fd5b50600e546104b490610100900460ff1681565b34801561082157600080fd5b50600854610453906001600160a01b031681565b34801561084157600080fd5b50610339610850366004611ddc565b610f3e565b34801561086157600080fd5b50600f5461030990600160b01b900460ff1681565b34801561088257600080fd5b50610351610891366004611ebc565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156108c857600080fd5b506103396108d7366004611df7565b610f85565b3480156108e857600080fd5b506103396108f7366004611e86565b610fdd565b34801561090857600080fd5b50610339610917366004611e9f565b611010565b60606002805461092b90611ef5565b80601f016020809104026020016040519081016040528092919081815260200182805461095790611ef5565b80156109a45780601f10610979576101008083540402835291602001916109a4565b820191906000526020600020905b81548152906001019060200180831161098757829003601f168201915b5050505050905090565b60006109bb3384846110fe565b5060015b92915050565b6000546001906001600160a01b031633146109fb5760405162461bcd60e51b81526004016109f290611f2f565b60405180910390fd5b50600e805460ff9384166101000261ffff199091169390921692909217179055565b60006001546001600160a01b03163314610a495760405162461bcd60e51b81526004016109f290611f64565b3060009081526009602052604090205415610a7c5730600081815260096020526040902054610a7a91903390611222565b505b50565b60006001546001600160a01b03163314610aab5760405162461bcd60e51b81526004016109f290611f64565b5060128054911515620100000262ff000019909216919091179055565b60006001546001600160a01b03163314610af45760405162461bcd60e51b81526004016109f290611f64565b506001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000610b2d848484611308565b50610b808433610b7b856040518060600160405280602881526020016120c2602891396001600160a01b038a166000908152600a602090815260408083203384529091529020549190611678565b6110fe565b5060015b9392505050565b6000610bc2610bb97f000000000000000000000000000000000000000000000000000000000000dead610d01565b600554906116b2565b905090565b60006001546001600160a01b03163314610bf35760405162461bcd60e51b81526004016109f290611f64565b50601091909155601155565b336000818152600a602090815260408083206001600160a01b038716845290915281205490916109bb918590610b7b90866116f4565b60006001546001600160a01b03163314610c615760405162461bcd60e51b81526004016109f290611f64565b50600655565b60006001546001600160a01b03163314610c935760405162461bcd60e51b81526004016109f290611f64565b50600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001906001600160a01b03163314610ce35760405162461bcd60e51b81526004016109f290611f2f565b811515600103610a7a576012805483151560ff199091161790555050565b6001600160a01b031660009081526009602052604090205490565b6000546001906001600160a01b03163314610d495760405162461bcd60e51b81526004016109f290611f2f565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350600080546001600160a01b03191661dead179055565b60006001546001600160a01b03163314610dc65760405162461bcd60e51b81526004016109f290611f64565b506001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60606003805461092b90611ef5565b60006109bb3384610b7b856040518060600160405280602581526020016120ea60259139336000908152600a602090815260408083206001600160a01b038d1684529091529020549190611678565b60006001546001600160a01b03163314610e7c5760405162461bcd60e51b81526004016109f290611f64565b50600f8054911515600160b01b0260ff60b01b19909216919091179055565b6000610b80338484611308565b60006001546001600160a01b03163314610ed45760405162461bcd60e51b81526004016109f290611f64565b610a7a60008311610eed57610ee830610d01565b611753565b82611753565b60006001546001600160a01b03163314610f1f5760405162461bcd60e51b81526004016109f290611f64565b50600f8054911515600160a81b0260ff60a81b19909216919091179055565b60006001546001600160a01b03163314610f6a5760405162461bcd60e51b81526004016109f290611f64565b50601280549115156101000261ff0019909216919091179055565b60006001546001600160a01b03163314610fb15760405162461bcd60e51b81526004016109f290611f64565b506001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001906001600160a01b0316331461100a5760405162461bcd60e51b81526004016109f290611f2f565b50600755565b6000546001906001600160a01b0316331461103d5760405162461bcd60e51b81526004016109f290611f2f565b6001600160a01b0382166110a25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109f2565b600080546040516001600160a01b03808616939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109f2565b6001600160a01b0382166111c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109f2565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600990915291822054611273918490611678565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546112a290836116f4565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112f69086815260200190565b60405180910390a35060019392505050565b60006001600160a01b03841661136e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109f2565b6001600160a01b0383166113d05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109f2565b60125460ff166114195760405162461bcd60e51b8152602060048201526014602482015273151a19481b585c9ad95d081a5cc818db1bdcd95960621b60448201526064016109f2565b600f54600160a01b900460ff161561143d57611436848484611222565b9050610b84565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152919091205461148f918490611678565b6001600160a01b0385166000908152600960205260408120919091556006546114b730610d01565b6001600160a01b0387166000908152600b6020526040812054929091101592509060ff16806114fe57506001600160a01b0385166000908152600b602052604090205460ff165b6115125761150d86868661179b565b611514565b835b905081801561152d5750600f54600160a01b900460ff16155b801561155257506001600160a01b0386166000908152600c602052604090205460ff16155b80156115675750600f54600160a81b900460ff165b1561158f57601154601054101580611587575060125462010000900460ff165b1561158f5750825b611598866118cd565b601254610100900460ff1680156115c857506001600160a01b0385166000908152600d602052604090205460ff16155b156115ee576007546115e3826115dd88610d01565b906116f4565b11156115ee57600080fd5b6001600160a01b03851660009081526009602052604090205461161190826116f4565b6001600160a01b0380871660008181526009602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116659085815260200190565b60405180910390a3600192505050610b84565b6000818484111561169c5760405162461bcd60e51b81526004016109f29190611cf4565b5060006116a98486611fbe565b95945050505050565b6000610b8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611678565b6000806117018385611fd1565b905083811015610b845760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109f2565b600f805460ff60a01b1916600160a01b17905561176f816119a9565b801561178b5760085461178b906001600160a01b031647611bcc565b50600f805460ff60a01b19169055565b6001600160a01b0383166000908152600c6020526040812054819060ff1680156117c95750600e5460ff1615155b156117f357600e546117ec906064906117e690869060ff16611c07565b90611c89565b9050611849565b6001600160a01b0384166000908152600c602052604090205460ff1680156118245750600e54610100900460ff1615155b1561184957600e54611846906064906117e6908690610100900460ff16611c07565b90505b80156118c3573060009081526009602052604090205461186990826116f4565b30600081815260096020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118ba9085815260200190565b60405180910390a35b6116a983826116b2565b60006006546118db30610d01565b101590508080156118f65750600f54600160a01b900460ff16155b801561191b57506001600160a01b0382166000908152600c602052604090205460ff16155b80156119305750600f54600160a81b900460ff165b15610a7a57601154601054101580611950575060125462010000900460ff165b1561198d57600f54600160b01b900460ff161561197757611972600654611753565b611983565b611983610ee830610d01565b6000601055610a7a565b6001601060008282546119a09190611fd1565b90915550505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119de576119de611fe4565b60200260200101906001600160a01b031690816001600160a01b031681525050600e60029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a759190611ffa565b81600181518110611a8857611a88611fe4565b6001600160a01b039283166020918202929092010152600e54611ab491309162010000900416846110fe565b600e5460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790611af2908590600090869030904290600401612017565b600060405180830381600087803b158015611b0c57600080fd5b505af1925050508015611b1d575060015b611b77577fcf34ef537ac33ee1ac626ca1587a0a7e8e51561e5514f8cb36afa1c5102b3bab604051611b6a9060208082526007908201526673656c6c206b6f60c81b604082015260600190565b60405180910390a1610a7a565b7fcf34ef537ac33ee1ac626ca1587a0a7e8e51561e5514f8cb36afa1c5102b3bab604051611bc09060208082526007908201526673656c6c206f6b60c81b604082015260600190565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611c02573d6000803e3d6000fd5b505050565b600082600003611c19575060006109bf565b6000611c258385612088565b905082611c32858361209f565b14610b845760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109f2565b6000610b8483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ce75760405162461bcd60e51b81526004016109f29190611cf4565b5060006116a9848661209f565b600060208083528351808285015260005b81811015611d2157858101830151858201604001528201611d05565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a7c57600080fd5b60008060408385031215611d6a57600080fd5b8235611d7581611d42565b946020939093013593505050565b803560ff81168114611d9457600080fd5b919050565b60008060408385031215611dac57600080fd5b611db583611d83565b9150611dc360208401611d83565b90509250929050565b80358015158114611d9457600080fd5b600060208284031215611dee57600080fd5b610b8482611dcc565b60008060408385031215611e0a57600080fd5b8235611e1581611d42565b9150611dc360208401611dcc565b600080600060608486031215611e3857600080fd5b8335611e4381611d42565b92506020840135611e5381611d42565b929592945050506040919091013590565b60008060408385031215611e7757600080fd5b50508035926020909101359150565b600060208284031215611e9857600080fd5b5035919050565b600060208284031215611eb157600080fd5b8135610b8481611d42565b60008060408385031215611ecf57600080fd5b8235611eda81611d42565b91506020830135611eea81611d42565b809150509250929050565b600181811c90821680611f0957607f821691505b602082108103611f2957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526024908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f6c64206f6040820152633bb732b960e11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156109bf576109bf611fa8565b808201808211156109bf576109bf611fa8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561200c57600080fd5b8151610b8481611d42565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120675784516001600160a01b031683529383019391830191600101612042565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176109bf576109bf611fa8565b6000826120bc57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bdf0cc60b004ad952434e616a07453bfca26ac9dfcc1ea1256f04673b682140364736f6c63430008110033

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.