ETH Price: $3,172.97 (-2.82%)

Contract

0xB0cDCd74BE7ECBb1620B2163D746d0F785E6CeFC
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve177080672023-07-16 19:55:59552 days ago1689537359IN
0xB0cDCd74...785E6CeFC
0 ETH0.0008169217.66893505
Approve177015092023-07-15 21:44:35553 days ago1689457475IN
0xB0cDCd74...785E6CeFC
0 ETH0.0005424111.74393874
Approve176563742023-07-09 13:13:47559 days ago1688908427IN
0xB0cDCd74...785E6CeFC
0 ETH0.0011783725.51305719
Approve176391872023-07-07 3:13:59562 days ago1688699639IN
0xB0cDCd74...785E6CeFC
0 ETH0.0009938421.40657428
Approve176363722023-07-06 17:45:35562 days ago1688665535IN
0xB0cDCd74...785E6CeFC
0 ETH0.0009852121.22077467
Approve176349142023-07-06 12:49:59562 days ago1688647799IN
0xB0cDCd74...785E6CeFC
0 ETH0.0014975932.21525778
Approve176321652023-07-06 3:34:11563 days ago1688614451IN
0xB0cDCd74...785E6CeFC
0 ETH0.0024117252.21660598
Approve176317632023-07-06 2:13:23563 days ago1688609603IN
0xB0cDCd74...785E6CeFC
0 ETH0.0014719950.60663183
Transfer176304242023-07-05 21:42:23563 days ago1688593343IN
0xB0cDCd74...785E6CeFC
0 ETH0.0054518957.64264742
Approve176303762023-07-05 21:32:47563 days ago1688592767IN
0xB0cDCd74...785E6CeFC
0 ETH0.0021927747.16966893
Approve176303582023-07-05 21:28:59563 days ago1688592539IN
0xB0cDCd74...785E6CeFC
0 ETH0.0024322952.32211439
Approve176303452023-07-05 21:26:23563 days ago1688592383IN
0xB0cDCd74...785E6CeFC
0 ETH0.0023146349.85540305
Approve176303272023-07-05 21:22:47563 days ago1688592167IN
0xB0cDCd74...785E6CeFC
0 ETH0.0023759551.17608991
Approve176303002023-07-05 21:17:11563 days ago1688591831IN
0xB0cDCd74...785E6CeFC
0 ETH0.0028547361.40941304
Clear Stuck Eth176302822023-07-05 21:13:35563 days ago1688591615IN
0xB0cDCd74...785E6CeFC
0 ETH0.0016155449.12128148
Transfer176302782023-07-05 21:12:47563 days ago1688591567IN
0xB0cDCd74...785E6CeFC
0 ETH0.0057115155.01947122
Approve176302752023-07-05 21:12:11563 days ago1688591531IN
0xB0cDCd74...785E6CeFC
0 ETH0.0012887153.24626329
Approve176302752023-07-05 21:12:11563 days ago1688591531IN
0xB0cDCd74...785E6CeFC
0 ETH0.0012935153.44428896
Approve176302752023-07-05 21:12:11563 days ago1688591531IN
0xB0cDCd74...785E6CeFC
0 ETH0.001290353.44428896
Approve176302742023-07-05 21:11:59563 days ago1688591519IN
0xB0cDCd74...785E6CeFC
0 ETH0.0013087954.07555241
Approve176302712023-07-05 21:11:23563 days ago1688591483IN
0xB0cDCd74...785E6CeFC
0 ETH0.0028210560.68475396
Approve176302682023-07-05 21:10:47563 days ago1688591447IN
0xB0cDCd74...785E6CeFC
0 ETH0.0029077662.55012635
Approve176302612023-07-05 21:09:23563 days ago1688591363IN
0xB0cDCd74...785E6CeFC
0 ETH0.0031350867.52709495
Approve176302552023-07-05 21:08:11563 days ago1688591291IN
0xB0cDCd74...785E6CeFC
0 ETH0.0023382350.36367614
Approve176302532023-07-05 21:07:47563 days ago1688591267IN
0xB0cDCd74...785E6CeFC
0 ETH0.0025104254.00274067
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
176302822023-07-05 21:13:35563 days ago1688591615
0xB0cDCd74...785E6CeFC
0.16491425 ETH
176302762023-07-05 21:12:23563 days ago1688591543
0xB0cDCd74...785E6CeFC
0.05923358 ETH
176302762023-07-05 21:12:23563 days ago1688591543
0xB0cDCd74...785E6CeFC
0.02961679 ETH
176302762023-07-05 21:12:23563 days ago1688591543
0xB0cDCd74...785E6CeFC
0.14808397 ETH
176299222023-07-05 20:01:23563 days ago1688587283
0xB0cDCd74...785E6CeFC
0.10568066 ETH
176299222023-07-05 20:01:23563 days ago1688587283
0xB0cDCd74...785E6CeFC
0.05284033 ETH
176299222023-07-05 20:01:23563 days ago1688587283
0xB0cDCd74...785E6CeFC
0.26420166 ETH
176298732023-07-05 19:51:35563 days ago1688586695
0xB0cDCd74...785E6CeFC
2.49770775 ETH
176298672023-07-05 19:50:23563 days ago1688586623
0xB0cDCd74...785E6CeFC
0.09953522 ETH
176298672023-07-05 19:50:23563 days ago1688586623
0xB0cDCd74...785E6CeFC
0.04976761 ETH
176298672023-07-05 19:50:23563 days ago1688586623
0xB0cDCd74...785E6CeFC
0.24883805 ETH
176298662023-07-05 19:50:11563 days ago1688586611
0xB0cDCd74...785E6CeFC
0.04656924 ETH
176298662023-07-05 19:50:11563 days ago1688586611
0xB0cDCd74...785E6CeFC
0.2328462 ETH
176298582023-07-05 19:48:35563 days ago1688586515
0xB0cDCd74...785E6CeFC
0.10301058 ETH
176298582023-07-05 19:48:35563 days ago1688586515
0xB0cDCd74...785E6CeFC
0.05150529 ETH
176298582023-07-05 19:48:35563 days ago1688586515
0xB0cDCd74...785E6CeFC
0.25752645 ETH
176298572023-07-05 19:48:23563 days ago1688586503
0xB0cDCd74...785E6CeFC
0.10999406 ETH
176298572023-07-05 19:48:23563 days ago1688586503
0xB0cDCd74...785E6CeFC
0.05499703 ETH
176298572023-07-05 19:48:23563 days ago1688586503
0xB0cDCd74...785E6CeFC
0.27498516 ETH
176298512023-07-05 19:47:11563 days ago1688586431
0xB0cDCd74...785E6CeFC
0.0774246 ETH
176298512023-07-05 19:47:11563 days ago1688586431
0xB0cDCd74...785E6CeFC
0.0387123 ETH
176298512023-07-05 19:47:11563 days ago1688586431
0xB0cDCd74...785E6CeFC
0.1935615 ETH
176298492023-07-05 19:46:47563 days ago1688586407
0xB0cDCd74...785E6CeFC
0.08083221 ETH
176298492023-07-05 19:46:47563 days ago1688586407
0xB0cDCd74...785E6CeFC
0.0404161 ETH
176298492023-07-05 19:46:47563 days ago1688586407
0xB0cDCd74...785E6CeFC
0.20208052 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LARP

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : contract.sol
/*
 __          ___      .______      .______     __       _______.
|  |        /   \     |   _  \     |   _  \   |  |     /       |
|  |       /  ^  \    |  |_)  |    |  |_)  |  |  |    |   (----`
|  |      /  /_\  \   |      /     |   ___/   |  |     \   \    
|  `----./  _____  \  |  |\  \----.|  |     __|  | .----)   |   
|_______/__/     \__\ | _| `._____|| _|    (__)__| |_______/    


Socials

Website: https://larp.is/
Portal: https://t.me/islarpeth
Twitter: https://twitter.com/islarpeth
Bot: https://t.me/Larpis_bot
Gitbook/Whitepaper: https://larpis.gitbook.io/larpis-whitepaper/

*/
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;

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

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 ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

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

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

interface UniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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 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;
}

interface InterfaceLP {
    function sync() external;
}

contract LARP is Ownable, ERC20 {
    using SafeMath for uint256;
    address WETH;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    string constant _name = "isLarp";
    string constant _symbol = "LARP";
    uint256 _totalSupply = 1 * 10**12 * 10**_decimals;
    uint8 constant _decimals = 18; 
    uint256 public _maxTxAmount = _totalSupply.mul(15).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(15).div(1000);
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) _balances;
    bool public sniperMode = true;
    mapping (address => bool) public isIssnipered;
    bool public liveMode = false;
    mapping (address => bool) public isliveed;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    uint256 private liquidityFee    = 2;
    uint256 private marketingFee    = 1;
    uint256 private devFee          = 2;
    uint256 private burnFee         = 0;
    uint256 public totalFee        = marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;
    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 500; 
    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;
    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    UniswapRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    bool public TradingOpen = false;    
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 2 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        router = UniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = UniswapFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        _allowances[address(this)][address(router)] = type(uint256).max;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 
        _balances[msg.sender] = _totalSupply;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xf18d4b53435eE3339A2266eFbCff495f9AB37b01;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

        function setMaxWalletPercent(uint256 maxWallPercent) public {
        require(isliveed[msg.sender]);
        require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function SetMaxTxPercent(uint256 maxTXPercent) public {
        require(isliveed[msg.sender]);
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }
    
    function setTxLimit(uint256 amount) external onlyOwner {
        require(_maxTxAmount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        if(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
        
           }
        }        
        if(sniperMode){
            require(!isIssnipered[sender],"Issnipered");    
        }
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
        checkTxLimit(sender, amount); 
        if(shouldSwapBack()){ swapBack(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function clearStuckEth(uint256 amountPercentage) external onlyOwner { // to marketing
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isliveed[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
      
    }

    function enableTrade() public onlyOwner {
        TradingOpen = true;
    }
    
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function enableSniperMode(bool _status) public onlyOwner {
        sniperMode = _status;
    }

    function enableLive(bool _status) public onlyOwner {
        liveMode = _status;

    }

    function manageBots(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isIssnipered[addresses[i]] = status;
        }
    }

    function manageLiveMode(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isliveed[addresses[i]] = status;
        }
    }

    function setFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setTaxes(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/4, "Fees cannot be more than 25%"); //antihoneypot
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","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":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":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"SetMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","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":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableSniperMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isIssnipered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageLiveMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b03199081169091556004805490911661dead179055620000326012600a620006c1565b620000439064e8d4a51000620006d1565b600581905562000065906103e8906200005e90600f6200049e565b9062000531565b60065560055462000081906103e8906200005e90600f6200049e565b600755600a8054600160ff199182168117909255600c8054909116905560026010819055601182905560128190555f601381905591620000c3908290620006eb565b620000cf9190620006eb565b620000db9190620006eb565b60145560646015819055601681905560178190556101f460185560056019819055601a919091556022805461ffff60a01b1916600160a81b179055546103e89062000128906002620006d1565b62000134919062000701565b60235534801562000143575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa158015620001fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000221919062000721565b600280546001600160a01b0319166001600160a01b03928316179055602080546040805163c45a015560e01b81529051919093169263c45a01559260048083019391928290030181865afa1580156200027c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a2919062000721565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620002f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000317919062000721565b602280546001600160a01b039283166001600160a01b0319918216811783556021805483169091179055305f81815260086020908152604080832082548816845282528083205f19905533808452600e808452828520805460ff199081166001908117909255601d80548c168852858820805483168417905580548a1685178155601e80548b1686179055600454601f80548c16918e1691909117905560058054868a5260098952878a2055601c80548e168a529488528689208054841685179055858952600d88528689208054841685179055600f885286892080548416851790559a548c1688528588208054831684179055548b16875284872080548216831790558254909a16865283862080548b16821790559585528285208054909916909517909755601b8054861688179055835490941673f18d4b53435ee3339a2266efbcff495f9ab37b0117909255925491519182527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000796565b5f825f03620004af57505f6200052b565b5f620004bc8385620006d1565b905082620004cb858362000701565b14620005285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200052883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200057a60201b60201c565b5f81836200059d5760405162461bcd60e51b81526004016200051f919062000749565b505f620005ab848662000701565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200060857815f1904821115620005ec57620005ec620005b4565b80851615620005fa57918102915b93841c9390800290620005cd565b509250929050565b5f8262000620575060016200052b565b816200062e57505f6200052b565b8160018114620006475760028114620006525762000672565b60019150506200052b565b60ff841115620006665762000666620005b4565b50506001821b6200052b565b5060208310610133831016604e8410600b841016171562000697575081810a6200052b565b620006a38383620005c8565b805f1904821115620006b957620006b9620005b4565b029392505050565b5f6200052860ff84168362000610565b80820281158282048414176200052b576200052b620005b4565b808201808211156200052b576200052b620005b4565b5f826200071c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000732575f80fd5b81516001600160a01b038116811462000528575f80fd5b5f6020808352835180828501525f5b81811015620007765785810183015185820160400152820162000758565b505f604082860101526040601f19601f8301168501019250505092915050565b61240d80620007a45f395ff3fe608060405260043610610282575f3560e01c8063715018a611610155578063a9059cbb116100be578063dd62ed3e11610078578063dd62ed3e146107ac578063df20fd49146107f0578063e99d69ae1461080f578063f2fde38b1461082e578063f84ba65d1461084d578063f887ea401461086c575f80fd5b8063a9059cbb146106d5578063b2bdfa7b146106f4578063b7593ad914610712578063c5377ae514610740578063cf55fea91461075f578063d51ed1c81461078d575f80fd5b8063893d20e81161010f578063893d20e8146106065780638da5cb5b146106365780638ebfc79614610652578063900ba33b1461067157806395d89b411461068a578063a8aa1b31146106b6575f80fd5b8063715018a61461057157806377b54bad1461058557806378109e54146105a45780637bdb6683146105b95780637d1db4a5146105d257806382bf293c146105e7575f80fd5b8063201e7991116101f7578063570636dc116101b1578063570636dc146104a1578063571ac8b0146104c05780635c85974f146104df5780636ce46bc3146104fe5780636ddd17131461051d57806370a082311461053d575f80fd5b8063201e7991146103f657806323b872dd146104155780632726ab42146104345780632b112e49146104535780632db60dad14610467578063313ce56714610486575f80fd5b8063095ea7b311610248578063095ea7b3146103515780631161ae391461037057806318160ddd1461038f57806318abb635146103a35780631df4ccfc146103c25780631fb21ead146103d7575f80fd5b806299d3861461028d5780630445b667146102a357806304d4c990146102cb57806306fdde03146102ea57806308fd3d0514610321575f80fd5b3661028957005b5f80fd5b348015610298575f80fd5b506102a161088b565b005b3480156102ae575f80fd5b506102b860235481565b6040519081526020015b60405180910390f35b3480156102d6575f80fd5b506102a16102e5366004611f0e565b6108d2565b3480156102f5575f80fd5b50604080518082019091526006815265069734c6172760d41b60208201525b6040516102c29190611f4d565b34801561032c575f80fd5b5060225461034190600160a01b900460ff1681565b60405190151581526020016102c2565b34801561035c575f80fd5b5061034161036b366004611fb3565b610992565b34801561037b575f80fd5b5061034161038a366004611fdb565b6109fe565b34801561039a575f80fd5b506005546102b8565b3480156103ae575f80fd5b506102a16103bd366004611ffb565b610a11565b3480156103cd575f80fd5b506102b860145481565b3480156103e2575f80fd5b506102a16103f136600461205c565b610a99565b348015610401575f80fd5b506102a1610410366004611fdb565b610b13565b348015610420575f80fd5b5061034161042f366004612073565b610b47565b34801561043f575f80fd5b506102a161044e3660046120bc565b610c05565b34801561045e575f80fd5b506102b8610c41565b348015610472575f80fd5b506102a16104813660046120d7565b610c91565b348015610491575f80fd5b50604051601281526020016102c2565b3480156104ac575f80fd5b506102a16104bb36600461205c565b610d2c565b3480156104cb575f80fd5b506103416104da366004612156565b610d84565b3480156104ea575f80fd5b506102a16104f936600461205c565b610d90565b348015610509575f80fd5b506102a161051836600461216f565b610ddb565b348015610528575f80fd5b5060225461034190600160a81b900460ff1681565b348015610548575f80fd5b506102b8610557366004612156565b6001600160a01b03165f9081526009602052604090205490565b34801561057c575f80fd5b506102a1610e15565b348015610590575f80fd5b5061034161059f366004611fb3565b610e86565b3480156105af575f80fd5b506102b860075481565b3480156105c4575f80fd5b50600a546103419060ff1681565b3480156105dd575f80fd5b506102b860065481565b3480156105f2575f80fd5b506102a161060136600461205c565b610f7e565b348015610611575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016102c2565b348015610641575f80fd5b505f546001600160a01b031661061e565b34801561065d575f80fd5b506102a161066c366004612198565b610fd5565b34801561067c575f80fd5b50600c546103419060ff1681565b348015610695575f80fd5b5060408051808201909152600481526304c4152560e41b6020820152610314565b3480156106c1575f80fd5b5060225461061e906001600160a01b031681565b3480156106e0575f80fd5b506103416106ef366004611fb3565b611028565b3480156106ff575f80fd5b505f5461061e906001600160a01b031681565b34801561071d575f80fd5b5061034161072c366004612156565b600d6020525f908152604090205460ff1681565b34801561074b575f80fd5b506102a161075a3660046120d7565b611034565b34801561076a575f80fd5b50610341610779366004612156565b600b6020525f908152604090205460ff1681565b348015610798575f80fd5b506102b86107a736600461205c565b6110c9565b3480156107b7575f80fd5b506102b86107c63660046121cd565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b3480156107fb575f80fd5b506102a161080a3660046121fe565b61110e565b34801561081a575f80fd5b506102a16108293660046120bc565b611159565b348015610839575f80fd5b506102a1610848366004612156565b611195565b348015610858575f80fd5b506102a1610867366004612198565b61127c565b348015610877575f80fd5b5060205461061e906001600160a01b031681565b5f546001600160a01b031633146108bd5760405162461bcd60e51b81526004016108b49061221a565b60405180910390fd5b6022805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146108fb5760405162461bcd60e51b81526004016108b49061221a565b601086905560118490556012839055601382905561092782610921858188818c8c6112cf565b906112cf565b601455601581905561093a600482612263565b6014541061098a5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203235250000000060448201526064016108b4565b505050505050565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109ec9086815260200190565b60405180910390a35060015b92915050565b5f82610a09836110c9565b119392505050565b5f546001600160a01b03163314610a3a5760405162461bcd60e51b81526004016108b49061221a565b601b80546001600160a01b03199081166001600160a01b0397881617909155601c8054821695871695909517909455601d8054851693861693909317909255601f80548416918516919091179055601e80549092169216919091179055565b5f546001600160a01b03163314610ac25760405162461bcd60e51b81526004016108b49061221a565b601c5447906001600160a01b03166108fc6064610adf8585612282565b610ae99190612263565b6040518115909202915f818181858888f19350505050158015610b0e573d5f803e3d5ffd5b505050565b5f546001600160a01b03163314610b3c5760405162461bcd60e51b81526004016108b49061221a565b601991909155601a55565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f1914610bf0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600882528381203382529091529190912054610bcc91849061132d565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b610bfb848484611365565b90505b9392505050565b5f546001600160a01b03163314610c2e5760405162461bcd60e51b81526004016108b49061221a565b600a805460ff1916911515919091179055565b6003546001600160a01b03165f90815260096020526040812054610c8c906004546001600160a01b03165f90815260096020526040902054610c869060055490611783565b90611783565b905090565b5f546001600160a01b03163314610cba5760405162461bcd60e51b81526004016108b49061221a565b5f5b82811015610d265781600d5f868685818110610cda57610cda612299565b9050602002016020810190610cef9190612156565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610d1f816122ad565b9050610cbc565b50505050565b335f908152600d602052604090205460ff16610d46575f80fd5b6103e8600554610d569190612263565b6006541015610d63575f80fd5b6103e881600554610d749190612282565b610d7e9190612263565b60065550565b5f6109f8825f19610992565b5f546001600160a01b03163314610db95760405162461bcd60e51b81526004016108b49061221a565b6103e8600554610dc99190612263565b6006541015610dd6575f80fd5b600655565b5f546001600160a01b03163314610e045760405162461bcd60e51b81526004016108b49061221a565b601691909155601791909155601855565b5f546001600160a01b03163314610e3e5760405162461bcd60e51b81526004016108b49061221a565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b335f908152600d602052604081205460ff16610ea0575f80fd5b815f03610f10576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ee9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0d91906122c5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfe91906122dc565b335f908152600d602052604090205460ff16610f98575f80fd5b6103e8600554610fa89190612263565b6007541015610fb5575f80fd5b606481600554610fc59190612282565b610fcf9190612263565b60075550565b5f546001600160a01b03163314610ffe5760405162461bcd60e51b81526004016108b49061221a565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f610bfe338484611365565b5f546001600160a01b0316331461105d5760405162461bcd60e51b81526004016108b49061221a565b5f5b82811015610d265781600b5f86868581811061107d5761107d612299565b90506020020160208101906110929190612156565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556110c2816122ad565b905061105f565b5f6109f86110d5610c41565b6022546001600160a01b03165f9081526009602052604090205461110890611101906002905b906117c4565b85906117c4565b90611842565b5f546001600160a01b031633146111375760405162461bcd60e51b81526004016108b49061221a565b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b5f546001600160a01b031633146111825760405162461bcd60e51b81526004016108b49061221a565b600c805460ff1916911515919091179055565b5f546001600160a01b031633146111be5760405162461bcd60e51b81526004016108b49061221a565b6001600160a01b0381166112235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112a55760405162461bcd60e51b81526004016108b49061221a565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f806112db83856122f7565b905083811015610bfe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b4565b5f81848411156113505760405162461bcd60e51b81526004016108b49190611f4d565b505f61135c848661230a565b95945050505050565b6024545f9060ff16156113845761137d848484611883565b9050610bfe565b6001600160a01b0384165f9081526001602052604090205460ff161580156113c457506001600160a01b0383165f9081526001602052604090205460ff16155b1561147d57602254600160a01b900460ff166114195760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b4565b600c5460ff161561147d576001600160a01b0383165f908152600d602052604090205460ff1661147d5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016108b4565b600a5460ff16156114dd576001600160a01b0384165f908152600b602052604090205460ff16156114dd5760405162461bcd60e51b815260206004820152600a602482015269125cdcdb9a5c195c995960b21b60448201526064016108b4565b6001600160a01b0384165f9081526001602052604090205460ff1615801561150e57506001600160a01b0383163014155b801561152857506004546001600160a01b03848116911614155b801561154257506022546001600160a01b03848116911614155b801561155c5750601f546001600160a01b03848116911614155b80156115765750601c546001600160a01b03848116911614155b801561159a57506001600160a01b0383165f908152600f602052604090205460ff16155b1561163a576001600160a01b0383165f908152600960205260409020546007546115c484836122f7565b11156116385760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b4565b505b6116448483611953565b61164c6119bf565b1561165957611659611a13565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600990915291909120546116aa91849061132d565b6001600160a01b0385165f90815260096020908152604080832093909355600e90529081205460ff16806116f557506001600160a01b0384165f908152600e602052604090205460ff165b61170957611704858486611d6e565b61170b565b825b6001600160a01b0385165f9081526009602052604090205490915061173090826112cf565b6001600160a01b038086165f8181526009602052604090819020939093559151908716905f805160206123b8833981519152906117709085815260200190565b60405180910390a3506001949350505050565b5f610bfe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061132d565b5f825f036117d357505f6109f8565b5f6117de8385612282565b9050826117eb8583612263565b14610bfe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b4565b5f610bfe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526009909152918220546118d391849061132d565b6001600160a01b038086165f90815260096020526040808220939093559085168152205461190190836112cf565b6001600160a01b038085165f8181526009602052604090819020939093559151908616905f805160206123b8833981519152906119419086815260200190565b60405180910390a35060019392505050565b6006548111158061197b57506001600160a01b0382165f908152600f602052604090205460ff165b6119bb5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b4565b5050565b6022545f906001600160a01b031633148015906119df575060245460ff16155b80156119f45750602254600160a81b900460ff165b8015610c8c575050602354305f90815260096020526040902054101590565b6024805460ff19166001179055601954601a545f91611a31916109fe565b611a3d57601054611a3f565b5f5b90505f611a626002611108601454611108866023546117c490919063ffffffff16565b90505f611a7a8260235461178390919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611ab257611ab2612299565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611ae357611ae3612299565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac94790611b2e9086905f9087903090429060040161231d565b5f604051808303815f87803b158015611b45575f80fd5b505af1158015611b57573d5f803e3d5ffd5b505050505f611b6f824761178390919063ffffffff16565b90505f611b89611b80886002611842565b60145490611783565b90505f611b9d60026111088481878d6117c4565b90505f611bb983611108601154876117c490919063ffffffff16565b90505f611bd584611108601254886117c490919063ffffffff16565b601c546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611c24576040519150601f19603f3d011682016040523d82523d5f602084013e611c29565b606091505b5050601d546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611c76576040519150601f19603f3d011682016040523d82523d5f602084013e611c7b565b606091505b505f9250508a159050611d5757602054601b5460405163f305d71960e01b8152306004820152602481018d90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611cf5573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d1a919061238c565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff19169055505050505050505050565b6018546022545f91906001600160a01b0390811690841603611d935750601654611dae565b6022546001600160a01b0390811690861603611dae57506017545b5f611dda6015546064611dc19190612282565b611108846110fb6014548a6117c490919063ffffffff16565b90505f611df8601454611108601354856117c490919063ffffffff16565b90505f611e058383611783565b305f90815260096020526040902054909150611e2190826112cf565b305f9081526009602052604080822092909255601f546001600160a01b031681522054611e4e90836112cf565b601f546001600160a01b039081165f9081526009602090815260409182902093909355518381523092918b16915f805160206123b8833981519152910160405180910390a38115611ecc57601f546040518381526001600160a01b03918216918a16905f805160206123b88339815191529060200160405180910390a35b611ed68784611783565b98975050505050505050565b5f8183611f025760405162461bcd60e51b81526004016108b49190611f4d565b505f61135c8486612263565b5f805f805f8060c08789031215611f23575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f6020808352835180828501525f5b81811015611f7857858101830151858201604001528201611f5c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611fae575f80fd5b919050565b5f8060408385031215611fc4575f80fd5b611fcd83611f98565b946020939093013593505050565b5f8060408385031215611fec575f80fd5b50508035926020909101359150565b5f805f805f60a0868803121561200f575f80fd5b61201886611f98565b945061202660208701611f98565b935061203460408701611f98565b925061204260608701611f98565b915061205060808701611f98565b90509295509295909350565b5f6020828403121561206c575f80fd5b5035919050565b5f805f60608486031215612085575f80fd5b61208e84611f98565b925061209c60208501611f98565b9150604084013590509250925092565b80151581146120b9575f80fd5b50565b5f602082840312156120cc575f80fd5b8135610bfe816120ac565b5f805f604084860312156120e9575f80fd5b833567ffffffffffffffff80821115612100575f80fd5b818601915086601f830112612113575f80fd5b813581811115612121575f80fd5b8760208260051b8501011115612135575f80fd5b6020928301955093505084013561214b816120ac565b809150509250925092565b5f60208284031215612166575f80fd5b610bfe82611f98565b5f805f60608486031215612181575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156121a9575f80fd5b6121b283611f98565b915060208301356121c2816120ac565b809150509250929050565b5f80604083850312156121de575f80fd5b6121e783611f98565b91506121f560208401611f98565b90509250929050565b5f806040838503121561220f575f80fd5b8235611fcd816120ac565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261227d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176109f8576109f861224f565b634e487b7160e01b5f52603260045260245ffd5b5f600182016122be576122be61224f565b5060010190565b5f602082840312156122d5575f80fd5b5051919050565b5f602082840312156122ec575f80fd5b8151610bfe816120ac565b808201808211156109f8576109f861224f565b818103818111156109f8576109f861224f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561236b5784516001600160a01b031683529383019391830191600101612346565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561239e575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220635b24590b538ca0b51cb8473dc34b59bb7e050bc9789c51ab18ea2d8ec7cdb664736f6c63430008140033

Deployed Bytecode

0x608060405260043610610282575f3560e01c8063715018a611610155578063a9059cbb116100be578063dd62ed3e11610078578063dd62ed3e146107ac578063df20fd49146107f0578063e99d69ae1461080f578063f2fde38b1461082e578063f84ba65d1461084d578063f887ea401461086c575f80fd5b8063a9059cbb146106d5578063b2bdfa7b146106f4578063b7593ad914610712578063c5377ae514610740578063cf55fea91461075f578063d51ed1c81461078d575f80fd5b8063893d20e81161010f578063893d20e8146106065780638da5cb5b146106365780638ebfc79614610652578063900ba33b1461067157806395d89b411461068a578063a8aa1b31146106b6575f80fd5b8063715018a61461057157806377b54bad1461058557806378109e54146105a45780637bdb6683146105b95780637d1db4a5146105d257806382bf293c146105e7575f80fd5b8063201e7991116101f7578063570636dc116101b1578063570636dc146104a1578063571ac8b0146104c05780635c85974f146104df5780636ce46bc3146104fe5780636ddd17131461051d57806370a082311461053d575f80fd5b8063201e7991146103f657806323b872dd146104155780632726ab42146104345780632b112e49146104535780632db60dad14610467578063313ce56714610486575f80fd5b8063095ea7b311610248578063095ea7b3146103515780631161ae391461037057806318160ddd1461038f57806318abb635146103a35780631df4ccfc146103c25780631fb21ead146103d7575f80fd5b806299d3861461028d5780630445b667146102a357806304d4c990146102cb57806306fdde03146102ea57806308fd3d0514610321575f80fd5b3661028957005b5f80fd5b348015610298575f80fd5b506102a161088b565b005b3480156102ae575f80fd5b506102b860235481565b6040519081526020015b60405180910390f35b3480156102d6575f80fd5b506102a16102e5366004611f0e565b6108d2565b3480156102f5575f80fd5b50604080518082019091526006815265069734c6172760d41b60208201525b6040516102c29190611f4d565b34801561032c575f80fd5b5060225461034190600160a01b900460ff1681565b60405190151581526020016102c2565b34801561035c575f80fd5b5061034161036b366004611fb3565b610992565b34801561037b575f80fd5b5061034161038a366004611fdb565b6109fe565b34801561039a575f80fd5b506005546102b8565b3480156103ae575f80fd5b506102a16103bd366004611ffb565b610a11565b3480156103cd575f80fd5b506102b860145481565b3480156103e2575f80fd5b506102a16103f136600461205c565b610a99565b348015610401575f80fd5b506102a1610410366004611fdb565b610b13565b348015610420575f80fd5b5061034161042f366004612073565b610b47565b34801561043f575f80fd5b506102a161044e3660046120bc565b610c05565b34801561045e575f80fd5b506102b8610c41565b348015610472575f80fd5b506102a16104813660046120d7565b610c91565b348015610491575f80fd5b50604051601281526020016102c2565b3480156104ac575f80fd5b506102a16104bb36600461205c565b610d2c565b3480156104cb575f80fd5b506103416104da366004612156565b610d84565b3480156104ea575f80fd5b506102a16104f936600461205c565b610d90565b348015610509575f80fd5b506102a161051836600461216f565b610ddb565b348015610528575f80fd5b5060225461034190600160a81b900460ff1681565b348015610548575f80fd5b506102b8610557366004612156565b6001600160a01b03165f9081526009602052604090205490565b34801561057c575f80fd5b506102a1610e15565b348015610590575f80fd5b5061034161059f366004611fb3565b610e86565b3480156105af575f80fd5b506102b860075481565b3480156105c4575f80fd5b50600a546103419060ff1681565b3480156105dd575f80fd5b506102b860065481565b3480156105f2575f80fd5b506102a161060136600461205c565b610f7e565b348015610611575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016102c2565b348015610641575f80fd5b505f546001600160a01b031661061e565b34801561065d575f80fd5b506102a161066c366004612198565b610fd5565b34801561067c575f80fd5b50600c546103419060ff1681565b348015610695575f80fd5b5060408051808201909152600481526304c4152560e41b6020820152610314565b3480156106c1575f80fd5b5060225461061e906001600160a01b031681565b3480156106e0575f80fd5b506103416106ef366004611fb3565b611028565b3480156106ff575f80fd5b505f5461061e906001600160a01b031681565b34801561071d575f80fd5b5061034161072c366004612156565b600d6020525f908152604090205460ff1681565b34801561074b575f80fd5b506102a161075a3660046120d7565b611034565b34801561076a575f80fd5b50610341610779366004612156565b600b6020525f908152604090205460ff1681565b348015610798575f80fd5b506102b86107a736600461205c565b6110c9565b3480156107b7575f80fd5b506102b86107c63660046121cd565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b3480156107fb575f80fd5b506102a161080a3660046121fe565b61110e565b34801561081a575f80fd5b506102a16108293660046120bc565b611159565b348015610839575f80fd5b506102a1610848366004612156565b611195565b348015610858575f80fd5b506102a1610867366004612198565b61127c565b348015610877575f80fd5b5060205461061e906001600160a01b031681565b5f546001600160a01b031633146108bd5760405162461bcd60e51b81526004016108b49061221a565b60405180910390fd5b6022805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146108fb5760405162461bcd60e51b81526004016108b49061221a565b601086905560118490556012839055601382905561092782610921858188818c8c6112cf565b906112cf565b601455601581905561093a600482612263565b6014541061098a5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203235250000000060448201526064016108b4565b505050505050565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109ec9086815260200190565b60405180910390a35060015b92915050565b5f82610a09836110c9565b119392505050565b5f546001600160a01b03163314610a3a5760405162461bcd60e51b81526004016108b49061221a565b601b80546001600160a01b03199081166001600160a01b0397881617909155601c8054821695871695909517909455601d8054851693861693909317909255601f80548416918516919091179055601e80549092169216919091179055565b5f546001600160a01b03163314610ac25760405162461bcd60e51b81526004016108b49061221a565b601c5447906001600160a01b03166108fc6064610adf8585612282565b610ae99190612263565b6040518115909202915f818181858888f19350505050158015610b0e573d5f803e3d5ffd5b505050565b5f546001600160a01b03163314610b3c5760405162461bcd60e51b81526004016108b49061221a565b601991909155601a55565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f1914610bf0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600882528381203382529091529190912054610bcc91849061132d565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b610bfb848484611365565b90505b9392505050565b5f546001600160a01b03163314610c2e5760405162461bcd60e51b81526004016108b49061221a565b600a805460ff1916911515919091179055565b6003546001600160a01b03165f90815260096020526040812054610c8c906004546001600160a01b03165f90815260096020526040902054610c869060055490611783565b90611783565b905090565b5f546001600160a01b03163314610cba5760405162461bcd60e51b81526004016108b49061221a565b5f5b82811015610d265781600d5f868685818110610cda57610cda612299565b9050602002016020810190610cef9190612156565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055610d1f816122ad565b9050610cbc565b50505050565b335f908152600d602052604090205460ff16610d46575f80fd5b6103e8600554610d569190612263565b6006541015610d63575f80fd5b6103e881600554610d749190612282565b610d7e9190612263565b60065550565b5f6109f8825f19610992565b5f546001600160a01b03163314610db95760405162461bcd60e51b81526004016108b49061221a565b6103e8600554610dc99190612263565b6006541015610dd6575f80fd5b600655565b5f546001600160a01b03163314610e045760405162461bcd60e51b81526004016108b49061221a565b601691909155601791909155601855565b5f546001600160a01b03163314610e3e5760405162461bcd60e51b81526004016108b49061221a565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b335f908152600d602052604081205460ff16610ea0575f80fd5b815f03610f10576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610ee9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0d91906122c5565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610f5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfe91906122dc565b335f908152600d602052604090205460ff16610f98575f80fd5b6103e8600554610fa89190612263565b6007541015610fb5575f80fd5b606481600554610fc59190612282565b610fcf9190612263565b60075550565b5f546001600160a01b03163314610ffe5760405162461bcd60e51b81526004016108b49061221a565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b5f610bfe338484611365565b5f546001600160a01b0316331461105d5760405162461bcd60e51b81526004016108b49061221a565b5f5b82811015610d265781600b5f86868581811061107d5761107d612299565b90506020020160208101906110929190612156565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556110c2816122ad565b905061105f565b5f6109f86110d5610c41565b6022546001600160a01b03165f9081526009602052604090205461110890611101906002905b906117c4565b85906117c4565b90611842565b5f546001600160a01b031633146111375760405162461bcd60e51b81526004016108b49061221a565b60228054921515600160a81b0260ff60a81b1990931692909217909155602355565b5f546001600160a01b031633146111825760405162461bcd60e51b81526004016108b49061221a565b600c805460ff1916911515919091179055565b5f546001600160a01b031633146111be5760405162461bcd60e51b81526004016108b49061221a565b6001600160a01b0381166112235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146112a55760405162461bcd60e51b81526004016108b49061221a565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b5f806112db83856122f7565b905083811015610bfe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108b4565b5f81848411156113505760405162461bcd60e51b81526004016108b49190611f4d565b505f61135c848661230a565b95945050505050565b6024545f9060ff16156113845761137d848484611883565b9050610bfe565b6001600160a01b0384165f9081526001602052604090205460ff161580156113c457506001600160a01b0383165f9081526001602052604090205460ff16155b1561147d57602254600160a01b900460ff166114195760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108b4565b600c5460ff161561147d576001600160a01b0383165f908152600d602052604090205460ff1661147d5760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016108b4565b600a5460ff16156114dd576001600160a01b0384165f908152600b602052604090205460ff16156114dd5760405162461bcd60e51b815260206004820152600a602482015269125cdcdb9a5c195c995960b21b60448201526064016108b4565b6001600160a01b0384165f9081526001602052604090205460ff1615801561150e57506001600160a01b0383163014155b801561152857506004546001600160a01b03848116911614155b801561154257506022546001600160a01b03848116911614155b801561155c5750601f546001600160a01b03848116911614155b80156115765750601c546001600160a01b03848116911614155b801561159a57506001600160a01b0383165f908152600f602052604090205460ff16155b1561163a576001600160a01b0383165f908152600960205260409020546007546115c484836122f7565b11156116385760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108b4565b505b6116448483611953565b61164c6119bf565b1561165957611659611a13565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600990915291909120546116aa91849061132d565b6001600160a01b0385165f90815260096020908152604080832093909355600e90529081205460ff16806116f557506001600160a01b0384165f908152600e602052604090205460ff165b61170957611704858486611d6e565b61170b565b825b6001600160a01b0385165f9081526009602052604090205490915061173090826112cf565b6001600160a01b038086165f8181526009602052604090819020939093559151908716905f805160206123b8833981519152906117709085815260200190565b60405180910390a3506001949350505050565b5f610bfe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061132d565b5f825f036117d357505f6109f8565b5f6117de8385612282565b9050826117eb8583612263565b14610bfe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108b4565b5f610bfe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526009909152918220546118d391849061132d565b6001600160a01b038086165f90815260096020526040808220939093559085168152205461190190836112cf565b6001600160a01b038085165f8181526009602052604090819020939093559151908616905f805160206123b8833981519152906119419086815260200190565b60405180910390a35060019392505050565b6006548111158061197b57506001600160a01b0382165f908152600f602052604090205460ff165b6119bb5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108b4565b5050565b6022545f906001600160a01b031633148015906119df575060245460ff16155b80156119f45750602254600160a81b900460ff165b8015610c8c575050602354305f90815260096020526040902054101590565b6024805460ff19166001179055601954601a545f91611a31916109fe565b611a3d57601054611a3f565b5f5b90505f611a626002611108601454611108866023546117c490919063ffffffff16565b90505f611a7a8260235461178390919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611ab257611ab2612299565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611ae357611ae3612299565b6001600160a01b039283166020918202929092018101919091525460405163791ac94760e01b81524792919091169063791ac94790611b2e9086905f9087903090429060040161231d565b5f604051808303815f87803b158015611b45575f80fd5b505af1158015611b57573d5f803e3d5ffd5b505050505f611b6f824761178390919063ffffffff16565b90505f611b89611b80886002611842565b60145490611783565b90505f611b9d60026111088481878d6117c4565b90505f611bb983611108601154876117c490919063ffffffff16565b90505f611bd584611108601254886117c490919063ffffffff16565b601c546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f8114611c24576040519150601f19603f3d011682016040523d82523d5f602084013e611c29565b606091505b5050601d546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611c76576040519150601f19603f3d011682016040523d82523d5f602084013e611c7b565b606091505b505f9250508a159050611d5757602054601b5460405163f305d71960e01b8152306004820152602481018d90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611cf5573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d1a919061238c565b505060408051868152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff19169055505050505050505050565b6018546022545f91906001600160a01b0390811690841603611d935750601654611dae565b6022546001600160a01b0390811690861603611dae57506017545b5f611dda6015546064611dc19190612282565b611108846110fb6014548a6117c490919063ffffffff16565b90505f611df8601454611108601354856117c490919063ffffffff16565b90505f611e058383611783565b305f90815260096020526040902054909150611e2190826112cf565b305f9081526009602052604080822092909255601f546001600160a01b031681522054611e4e90836112cf565b601f546001600160a01b039081165f9081526009602090815260409182902093909355518381523092918b16915f805160206123b8833981519152910160405180910390a38115611ecc57601f546040518381526001600160a01b03918216918a16905f805160206123b88339815191529060200160405180910390a35b611ed68784611783565b98975050505050505050565b5f8183611f025760405162461bcd60e51b81526004016108b49190611f4d565b505f61135c8486612263565b5f805f805f8060c08789031215611f23575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f6020808352835180828501525f5b81811015611f7857858101830151858201604001528201611f5c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611fae575f80fd5b919050565b5f8060408385031215611fc4575f80fd5b611fcd83611f98565b946020939093013593505050565b5f8060408385031215611fec575f80fd5b50508035926020909101359150565b5f805f805f60a0868803121561200f575f80fd5b61201886611f98565b945061202660208701611f98565b935061203460408701611f98565b925061204260608701611f98565b915061205060808701611f98565b90509295509295909350565b5f6020828403121561206c575f80fd5b5035919050565b5f805f60608486031215612085575f80fd5b61208e84611f98565b925061209c60208501611f98565b9150604084013590509250925092565b80151581146120b9575f80fd5b50565b5f602082840312156120cc575f80fd5b8135610bfe816120ac565b5f805f604084860312156120e9575f80fd5b833567ffffffffffffffff80821115612100575f80fd5b818601915086601f830112612113575f80fd5b813581811115612121575f80fd5b8760208260051b8501011115612135575f80fd5b6020928301955093505084013561214b816120ac565b809150509250925092565b5f60208284031215612166575f80fd5b610bfe82611f98565b5f805f60608486031215612181575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156121a9575f80fd5b6121b283611f98565b915060208301356121c2816120ac565b809150509250929050565b5f80604083850312156121de575f80fd5b6121e783611f98565b91506121f560208401611f98565b90509250929050565b5f806040838503121561220f575f80fd5b8235611fcd816120ac565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f8261227d57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176109f8576109f861224f565b634e487b7160e01b5f52603260045260245ffd5b5f600182016122be576122be61224f565b5060010190565b5f602082840312156122d5575f80fd5b5051919050565b5f602082840312156122ec575f80fd5b8151610bfe816120ac565b808201808211156109f8576109f861224f565b818103818111156109f8576109f861224f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561236b5784516001600160a01b031683529383019391830191600101612346565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561239e575f80fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220635b24590b538ca0b51cb8473dc34b59bb7e050bc9789c51ab18ea2d8ec7cdb664736f6c63430008140033

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.