ETH Price: $3,496.99 (+3.11%)
Gas: 3 Gwei

Contract

0xbD715a2C144ba27e89AB3757c39345be6d9A7230
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,496.99/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve200790732024-06-12 23:37:3537 days ago1718235455IN
0xbD715a2C...e6d9A7230
0 ETH0.00039428.48720302
Transfer198474532024-05-11 14:41:4769 days ago1715438507IN
0xbD715a2C...e6d9A7230
0 ETH0.000416195.21187356
Approve181548032023-09-17 9:13:59306 days ago1694942039IN
0xbD715a2C...e6d9A7230
0 ETH0.0005073410.90905019
Approve176089732023-07-02 21:23:23383 days ago1688333003IN
0xbD715a2C...e6d9A7230
0 ETH0.0006525414.04928155
Approve176059672023-07-02 11:16:23383 days ago1688296583IN
0xbD715a2C...e6d9A7230
0 ETH0.0007324815.75
Transfer176059602023-07-02 11:14:59383 days ago1688296499IN
0xbD715a2C...e6d9A7230
0 ETH0.0011738814.7
Approve175884132023-06-30 0:05:35386 days ago1688083535IN
0xbD715a2C...e6d9A7230
0 ETH0.0010319622.21807299
Approve175882932023-06-29 23:41:23386 days ago1688082083IN
0xbD715a2C...e6d9A7230
0 ETH0.0010444222.48640941
Approve175879762023-06-29 22:37:23386 days ago1688078243IN
0xbD715a2C...e6d9A7230
0 ETH0.0021420746.11876239
Transfer175877482023-06-29 21:51:23386 days ago1688075483IN
0xbD715a2C...e6d9A7230
0 ETH0.0029608853.25612406
Transfer175876062023-06-29 21:22:59386 days ago1688073779IN
0xbD715a2C...e6d9A7230
0 ETH0.0021482638.63985581
Transfer175874872023-06-29 20:58:59386 days ago1688072339IN
0xbD715a2C...e6d9A7230
0 ETH0.0026116946.97553648
Transfer175874332023-06-29 20:48:11386 days ago1688071691IN
0xbD715a2C...e6d9A7230
0 ETH0.0025397345.68118998
Transfer175874092023-06-29 20:43:23386 days ago1688071403IN
0xbD715a2C...e6d9A7230
0 ETH0.0029445546.92066868
Transfer175873902023-06-29 20:39:35386 days ago1688071175IN
0xbD715a2C...e6d9A7230
0 ETH0.002725843.43491731
Transfer175873512023-06-29 20:31:47386 days ago1688070707IN
0xbD715a2C...e6d9A7230
0 ETH0.0033954261.07214925
Transfer175873432023-06-29 20:30:11386 days ago1688070611IN
0xbD715a2C...e6d9A7230
0 ETH0.0034265861.63259834
Transfer175873432023-06-29 20:30:11386 days ago1688070611IN
0xbD715a2C...e6d9A7230
0 ETH0.003372161.63259834
Transfer175873232023-06-29 20:26:11386 days ago1688070371IN
0xbD715a2C...e6d9A7230
0 ETH0.004932961.77245369
Transfer175873032023-06-29 20:22:11386 days ago1688070131IN
0xbD715a2C...e6d9A7230
0 ETH0.002865451.53884735
Transfer175872992023-06-29 20:21:23386 days ago1688070083IN
0xbD715a2C...e6d9A7230
0 ETH0.0029373952.83367222
Transfer175872982023-06-29 20:21:11386 days ago1688070071IN
0xbD715a2C...e6d9A7230
0 ETH0.0035013562.977428
Transfer175872952023-06-29 20:20:35386 days ago1688070035IN
0xbD715a2C...e6d9A7230
0 ETH0.0027865450.12035723
Transfer175872862023-06-29 20:18:35386 days ago1688069915IN
0xbD715a2C...e6d9A7230
0 ETH0.002684248.27962824
Transfer175872822023-06-29 20:17:47386 days ago1688069867IN
0xbD715a2C...e6d9A7230
0 ETH0.0027511849.48442099
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
181548042023-09-17 9:14:11306 days ago1694942051
0xbD715a2C...e6d9A7230
0.00548593 ETH
181548042023-09-17 9:14:11306 days ago1694942051
0xbD715a2C...e6d9A7230
0.0128005 ETH
181548042023-09-17 9:14:11306 days ago1694942051
0xbD715a2C...e6d9A7230
0.01828643 ETH
177826742023-07-27 6:39:47359 days ago1690439987
0xbD715a2C...e6d9A7230
0.00577192 ETH
177826742023-07-27 6:39:47359 days ago1690439987
0xbD715a2C...e6d9A7230
0.01346783 ETH
177826742023-07-27 6:39:47359 days ago1690439987
0xbD715a2C...e6d9A7230
0.01923975 ETH
176538552023-07-09 4:43:35377 days ago1688877815
0xbD715a2C...e6d9A7230
0.006281 ETH
176538552023-07-09 4:43:35377 days ago1688877815
0xbD715a2C...e6d9A7230
0.01465566 ETH
176538552023-07-09 4:43:35377 days ago1688877815
0xbD715a2C...e6d9A7230
0.02093666 ETH
176152052023-07-03 18:26:11382 days ago1688408771
0xbD715a2C...e6d9A7230
0.00676807 ETH
176152052023-07-03 18:26:11382 days ago1688408771
0xbD715a2C...e6d9A7230
0.01579218 ETH
176152052023-07-03 18:26:11382 days ago1688408771
0xbD715a2C...e6d9A7230
0.02256025 ETH
176089732023-07-02 21:23:23383 days ago1688333003
0xbD715a2C...e6d9A7230
0.0072791 ETH
176089732023-07-02 21:23:23383 days ago1688333003
0xbD715a2C...e6d9A7230
0.01698456 ETH
176089732023-07-02 21:23:23383 days ago1688333003
0xbD715a2C...e6d9A7230
0.02426366 ETH
176059692023-07-02 11:16:47383 days ago1688296607
0xbD715a2C...e6d9A7230
0.00770195 ETH
176059692023-07-02 11:16:47383 days ago1688296607
0xbD715a2C...e6d9A7230
0.01797123 ETH
176059692023-07-02 11:16:47383 days ago1688296607
0xbD715a2C...e6d9A7230
0.02567318 ETH
175886812023-06-30 0:59:23386 days ago1688086763
0xbD715a2C...e6d9A7230
0.01110993 ETH
175886812023-06-30 0:59:23386 days ago1688086763
0xbD715a2C...e6d9A7230
0.02592318 ETH
175886812023-06-30 0:59:23386 days ago1688086763
0xbD715a2C...e6d9A7230
0.03703312 ETH
175883032023-06-29 23:43:23386 days ago1688082203
0xbD715a2C...e6d9A7230
0.01211546 ETH
175883032023-06-29 23:43:23386 days ago1688082203
0xbD715a2C...e6d9A7230
0.0282694 ETH
175883032023-06-29 23:43:23386 days ago1688082203
0xbD715a2C...e6d9A7230
0.04038486 ETH
175873332023-06-29 20:28:11386 days ago1688070491
0xbD715a2C...e6d9A7230
0.01363747 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SAITAMA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Saitama2.0.sol
//SPDX-License-Identifier: MIT

//202020202020202020
//202020202020202020
//202020202020202020
//SAITAMA2.0 Twitter Twitter.com/saitamanew20
//SAITAMA2.0 Telegram https://t.me/saitamanew20
//202020202020202020
//202020202020202020
//202020202020202020

pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address __owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed _owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() 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);
}

abstract contract Auth {
    address internal _owner;
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this"); 
        _; 
    }
    function owner() public view returns (address) { 
        return _owner; 
    }
    function transferOwnership(address payable newOwner) external onlyOwner { 
        _owner = newOwner; 
        emit OwnershipTransferred(newOwner); 
    }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); 
        emit OwnershipTransferred(address(0)); 
    }
    event OwnershipTransferred(address _owner);
}

contract SAITAMA is IERC20, Auth {
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 1_000_000_000 * (10**_decimals);
    string private constant _name         = "SAITAMA2.0";
    string private  constant _symbol      = "SAITAMA 2.0";

    uint8 private antiSnipeTax1 = 25;  //sniper tax for first block
    uint8 private antiSnipeTax2 = 35;  //sniper tax for second block
    uint8 private antiSnipeBlocks1 = 1;
    uint8 private antiSnipeBlocks2 = 1;
    uint256 private _antiMevBlock = 2;

    uint8 private _initialBuyTaxRate  = 5; // starting buy tax (which ultimately goes to zero)
    uint8 private _initialSellTaxRate = 35; // starting sell tax (which ultimatley goes to zero)

    uint8 private _finalBuyTaxRate = 0;
    uint8 private _finalSellTaxRate = 0;

    uint256 private txCount; 

    uint256 _reduceTaxAt = 220; //after 220 transactions, tax will be set to zero

    uint16 private _taxSharesMarketing   = 70;
    uint16 private _taxSharesDevelopment = 30;
    uint16 private _taxSharesLP          = 0;
    uint16 private _totalTaxShares = _taxSharesMarketing + _taxSharesDevelopment + _taxSharesLP;

    address payable private _walletMarketing = payable(0x34ea8C37225BA17eB80510581A275BCFA0dc4f4C); 
    address payable private _walletDevelopment = payable(0xC4B72ffb8F877E93BfBdb8EB51536394F4c3F0ae); 

    uint256 private _launchBlock;
    uint256 private _maxTxAmount     = _totalSupply; 
    uint256 private _maxWalletAmount = _totalSupply;
    uint256 private _taxSwapMin = _totalSupply * 10 / 100000;
    uint256 private _taxSwapMax = _totalSupply * 888 / 100000;
    uint256 private _swapLimit = _taxSwapMin * 59 * 100;

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

    address private _lpOwner;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);

    constructor() Auth(msg.sender) {
        _lpOwner = msg.sender;

        
        uint256 airdropFunds = (_totalSupply * 60) / 100;
        
        _balances[address(this)] = _totalSupply - airdropFunds;
        emit Transfer(address(0), address(this), _balances[address(this)]);


        _balances[_owner] = airdropFunds;
        emit Transfer(address(0), _owner, _balances[_owner]);
   

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
        _noFees[_walletDevelopment] = true;
        _noLimits[_owner] = true;
        _noLimits[address(this)] = true;
        _noLimits[_swapRouterAddress] = true;
        _noLimits[_walletMarketing] = true;
        _noLimits[_walletDevelopment] = true;
    }

    receive() external payable {}
    
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    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 transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance, false);
        _isLP[_primaryLP] = true;
        _openTrading();
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
        address lpTokenRecipient = _lpOwner;
        if ( autoburn ) { lpTokenRecipient = address(0); }
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
    }

    function _openTrading() internal {
        _maxTxAmount     = _totalSupply * 1 / 100; 
        _maxWalletAmount = _totalSupply * 1 / 100;
        _tradingOpen = true;
        _launchBlock = block.number;
        _antiMevBlock = _antiMevBlock + _launchBlock + antiSnipeBlocks1 + antiSnipeBlocks2;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }
        if ( block.number < _antiMevBlock && block.number >= _launchBlock && _isLP[sender] ) {
            require(recipient == tx.origin, "MEV blocked");
        }
        if ( sender != address(this) && recipient != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); 
        }
        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        txCount = txCount +1;
        _balances[sender] = _balances[sender] - amount;
        _swapLimit += _taxAmount;
        _balances[recipient] = _balances[recipient] + _transferAmount;
        emit Transfer(sender, recipient, _transferAmount);
        return true;
    }

    function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) {
            if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
            else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender] && _noLimits[sender]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _noFees[sender] || _noFees[recipient] ) { 
            taxAmount = 0; 
           
        } else if ( _isLP[sender] ) { 
            if ( block.number >= _launchBlock + antiSnipeBlocks1 + antiSnipeBlocks2 ) {
              taxAmount =  (amount * ((txCount >_reduceTaxAt)?_finalBuyTaxRate:_initialBuyTaxRate)) / 100;
              
            } else if ( block.number >= _launchBlock + antiSnipeBlocks1 ) {
                taxAmount = amount * antiSnipeTax2 / 100;
            } else if ( block.number >= _launchBlock) {
                taxAmount = amount * antiSnipeTax1 / 100;
               
            }
        } else if ( _isLP[recipient] ) { 
            taxAmount =  (amount * ((txCount >_reduceTaxAt)?_finalSellTaxRate:_initialSellTaxRate)) / 100;
        }

        return taxAmount;
    }


    function exemptFromFees(address wallet) external view returns (bool) {
        return _noFees[wallet];
    } 
    function exemptFromLimits(address wallet) external view returns (bool) {
        return _noLimits[wallet];
    } 
    function setExempt(address wallet, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); }
        _noFees[ wallet ] = noFees;
        _noLimits[ wallet ] = noLimits;
    }

    function buyFee() external view returns(uint8) {
        return (txCount >_reduceTaxAt)?_finalBuyTaxRate:_initialBuyTaxRate;
    }
    function sellFee() external view returns(uint8) {
        return (txCount >_reduceTaxAt)?_finalSellTaxRate:_initialSellTaxRate;
    }

    function feeSplit() external view returns (uint16 marketing, uint16 development, uint16 LP ) {
        return ( _taxSharesMarketing, _taxSharesDevelopment, _taxSharesLP);
    }
    function setFees(uint8 buy, uint8 sell) external onlyOwner {
        require(buy + sell <= 80, "Roundtrip too high");
        _initialBuyTaxRate = buy;
        _initialSellTaxRate = sell;
    }  

    function setReduceFeeAtTx(uint256 newTxCount) external {
        require (msg.sender == _lpOwner,"you're not authorized");
        require (newTxCount < 220, "must be less than 220 tx");
        _reduceTaxAt = newTxCount;
    }

    function setFeeSplit(uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesDevelopment) external onlyOwner {
        uint16 totalShares = sharesAutoLP + sharesMarketing + sharesDevelopment;
        require( totalShares > 0, "All cannot be 0");
        _taxSharesLP = sharesAutoLP;
        _taxSharesMarketing = sharesMarketing;
        _taxSharesDevelopment = sharesDevelopment;
        _totalTaxShares = totalShares;
    }

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

    function developmentWallet() external view returns (address) {
        return _walletDevelopment;
    }

    function updateWallets(address marketing, address development, address LPtokens) external onlyOwner {
        require(!_isLP[marketing] && !_isLP[development] && !_isLP[LPtokens], "LP cannot be tax wallet");
        
        _walletMarketing = payable(marketing);
        _walletDevelopment = payable(development);
        _lpOwner = LPtokens;
        
        _noFees[marketing] = true;
        _noLimits[marketing] = true;
        
        _noFees[development] = true;        
        _noLimits[development] = true;
    }

    function maxWallet() external view returns (uint256) {
        return _maxWalletAmount;
    }
    function maxTransaction() external view returns (uint256) {
        return _maxTxAmount;
    }

    function swapAtMin() external view returns (uint256) {
        return _taxSwapMin;
    }
    function swapAtMax() external view returns (uint256) {
        return _taxSwapMax;
    }

    function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransactionPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }

    function setTaxSwap(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
        _taxSwapMin = _totalSupply * minValue / minDivider;
        _taxSwapMax = _totalSupply * maxValue / maxDivider;
        require(_taxSwapMax>=_taxSwapMin, "Min/Max error");
        require(_taxSwapMax>_totalSupply / 100000, "Max too low");
        require(_taxSwapMax<_totalSupply / 100, "Max too high");
    }


    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = _swapLimit;
        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            uint256 _tokensForLP = _taxTokensAvailable * _taxSharesLP / _totalTaxShares / 2;
            
            uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
            if( _tokensToSwap > 10**_decimals ) {
                uint256 _ethPreSwap = address(this).balance;
                _balances[address(this)] += _taxTokensAvailable;
                _swapTaxTokensForEth(_tokensToSwap);
                _swapLimit -= _taxTokensAvailable;
                uint256 _ethSwapped = address(this).balance - _ethPreSwap;
                if ( _taxSharesLP > 0 ) {
                    uint256 _ethWeiAmount = _ethSwapped * _taxSharesLP / _totalTaxShares ;
                    _approveRouter(_tokensForLP);
                    _addLiquidity(_tokensForLP, _ethWeiAmount, false);
                }
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _primarySwapRouter.WETH();
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTaxEth(uint256 amount) private {
        uint16 _taxShareTotal = _taxSharesMarketing + _taxSharesDevelopment;
        if (_taxShareTotal > 0) {
            uint256 marketingAmount = amount * _taxSharesMarketing / _taxShareTotal;
            uint256 developmentAmount = amount * _taxSharesDevelopment / _taxShareTotal;
            if ( marketingAmount > 0 ) { _walletMarketing.transfer(marketingAmount); }
            if ( developmentAmount > 0 ) { _walletDevelopment.transfer(developmentAmount); }
        }
    }

    function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendEth) external onlyOwner lockTaxSwap {
        require(swapTokenPercent <= 100, "Cannot swap more than 100%");
        uint256 tokensToSwap = _balances[address(this)] * swapTokenPercent / 100;
        if (tokensToSwap > 10 ** _decimals) {
            _swapTaxTokensForEth(tokensToSwap);
        }
        if (sendEth) { 
            uint256 ethBalance = address(this).balance;
            require(ethBalance > 0, "No ETH");
            _distributeTaxEth(address(this).balance); 
        }
    }

}

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":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","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":"addLiquidity","outputs":[],"stateMutability":"payable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSplit","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"LP","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"swapTokenPercent","type":"uint8"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","type":"uint16"}],"name":"setFeeSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransactionPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxCount","type":"uint256"}],"name":"setReduceFeeAtTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"setTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMin","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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 payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"development","type":"address"},{"internalType":"address","name":"LPtokens","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260008054630101231960a01b63ffffffff60a01b1990911617905560026001819055805463ffffffff191661230517905560dc6004556005805465ffffffffffff1916621e00461790819055640100000000810461ffff908116916200007491620100009091041660466200044d565b6200008091906200044d565b600580547b34ea8c37225ba17eb80510581a275bcfa0dc4f4c0000000000000000600160401b600160e01b031961ffff9490941666010000000000000293909316600160301b600160e01b031990911617919091179055600680546001600160a01b03191673c4b72ffb8f877e93bfbdb8eb51536394f4c3f0ae1790556200010b6009600a62000571565b6200011b90633b9aca0062000589565b6008556200012c6009600a62000571565b6200013c90633b9aca0062000589565b600955620186a06009600a62000153919062000571565b6200016390633b9aca0062000589565b6200017090600a62000589565b6200017c9190620005a3565b600a55620186a06009600a62000193919062000571565b620001a390633b9aca0062000589565b620001b19061037862000589565b620001bd9190620005a3565b600b55600a54620001d090603b62000589565b620001dd90606462000589565b600c55601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556015805461ff00191690553480156200021e57600080fd5b5060008054336001600160a01b0319918216811783556011805490921617905560646200024e6009600a62000571565b6200025e90633b9aca0062000589565b6200026b90603c62000589565b620002779190620005a3565b905080620002886009600a62000571565b6200029890633b9aca0062000589565b620002a49190620005c6565b306000818152600d60209081526040808320859055519384529192909160008051602062002d7c833981519152910160405180910390a3600080546001600160a01b039081168252600d602090815260408084208590558354909216808452828420549251928352929160008051602062002d7c833981519152910160405180910390a350600080546001600160a01b039081168252600f602090815260408084208054600160ff1991821681179092553080875283872080548316841790557f7e98db1b893d503d049bbf1a3858119b9172e4b74989a91dfee4165dd9ce42a880548316841790556005805468010000000000000000908190048816895285892080548516861790556006805489168a52868a208054861687179055895489168a526010909752858920805485168617905591885284882080548416851790557feb1861b62122c39d7846b597c3c20bac261ab9032a26ee7d64c4c7f875977df880548416851790555404851686528286208054821683179055925490931684529092208054909216179055620005dc565b634e487b7160e01b600052601160045260246000fd5b61ffff8181168382160190808211156200046b576200046b62000437565b5092915050565b600181815b80851115620004b357816000190482111562000497576200049762000437565b80851615620004a557918102915b93841c939080029062000477565b509250929050565b600082620004cc575060016200056b565b81620004db575060006200056b565b8160018114620004f45760028114620004ff576200051f565b60019150506200056b565b60ff84111562000513576200051362000437565b50506001821b6200056b565b5060208310610133831016604e8410600b841016171562000544575081810a6200056b565b62000550838362000472565b806000190482111562000567576200056762000437565b0290505b92915050565b60006200058260ff841683620004bb565b9392505050565b80820281158282048414176200056b576200056b62000437565b600082620005c157634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156200056b576200056b62000437565b61279080620005ec6000396000f3fe6080604052600436106101e75760003560e01c806370a0823111610102578063a9059cbb11610095578063de3cb85d11610064578063de3cb85d14610629578063e8078d9414610649578063f2fde38b14610651578063f8b45b051461067157600080fd5b8063a9059cbb14610590578063c04a5414146105b0578063c3f70b52146105ce578063dd62ed3e146105e357600080fd5b80638d3e6e40116100d15780638d3e6e40146104e55780638da5cb5b1461051e57806395d89b411461053c578063a6097b0a1461057057600080fd5b806370a0823114610441578063715018a61461047757806375f0a8741461048c57806376a39c28146104c557600080fd5b8063368f48001161017a5780634fcd2446116101495780634fcd24461461038757806357ff135a146103a75780635a90a49e146103c75780636373ea691461040057600080fd5b8063368f48001461032857806346b8983414610348578063470624021461035d5780634d4ce9351461037257600080fd5b806323b872dd116101b657806323b872dd146102ad5780632b14ca56146102cd5780632fb528ba146102f4578063313ce5671461031457600080fd5b806306fdde03146101f3578063095ea7b314610238578063147c9f6d1461026857806318160ddd1461028a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600a815269053414954414d41322e360b41b60208201525b60405161022f9190612154565b60405180910390f35b34801561024457600080fd5b506102586102533660046121b7565b610686565b604051901515815260200161022f565b34801561027457600080fd5b506102886102833660046121e3565b6106f3565b005b34801561029657600080fd5b5061029f610887565b60405190815260200161022f565b3480156102b957600080fd5b506102586102c836600461222e565b6108a8565b3480156102d957600080fd5b506102e2610962565b60405160ff909116815260200161022f565b34801561030057600080fd5b5061028861030f366004612295565b61098f565b34801561032057600080fd5b5060096102e2565b34801561033457600080fd5b506102886103433660046122da565b610abd565b34801561035457600080fd5b50600a5461029f565b34801561036957600080fd5b506102e2610c00565b34801561037e57600080fd5b50600b5461029f565b34801561039357600080fd5b506102886103a2366004612304565b610c27565b3480156103b357600080fd5b506102886103c236600461232e565b610cc7565b3480156103d357600080fd5b506102586103e2366004612373565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561040c57600080fd5b506005546040805161ffff8084168252620100008404811660208301526401000000009093049092169082015260600161022f565b34801561044d57600080fd5b5061029f61045c366004612373565b6001600160a01b03166000908152600d602052604090205490565b34801561048357600080fd5b50610288610d9d565b34801561049857600080fd5b50600554600160401b90046001600160a01b03165b6040516001600160a01b03909116815260200161022f565b3480156104d157600080fd5b506102886104e0366004612390565b610e0c565b3480156104f157600080fd5b50610258610500366004612373565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561052a57600080fd5b506000546001600160a01b03166104ad565b34801561054857600080fd5b5060408051808201909152600b81526a053414954414d4120322e360ac1b6020820152610222565b34801561057c57600080fd5b5061028861058b3660046123de565b610eef565b34801561059c57600080fd5b506102586105ab3660046121b7565b6110ad565b3480156105bc57600080fd5b506006546001600160a01b03166104ad565b3480156105da57600080fd5b5060085461029f565b3480156105ef57600080fd5b5061029f6105fe366004612432565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b34801561063557600080fd5b5061028861064436600461246b565b6110e6565b61028861118d565b34801561065d57600080fd5b5061028861066c366004612373565b6114e2565b34801561067d57600080fd5b5060095461029f565b336000818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107265760405162461bcd60e51b815260040161071d90612484565b60405180910390fd5b6001600160a01b03831660009081526014602052604090205460ff1615801561076857506001600160a01b03821660009081526014602052604090205460ff16155b801561078d57506001600160a01b03811660009081526014602052604090205460ff16155b6107d95760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161071d565b6005805468010000000000000000600160e01b031916600160401b6001600160a01b0395861690810291909117909155600680546001600160a01b03199081169486169485179091556011805490911692909416919091179092556000918252600f60208181526040808520805460ff199081166001908117909255601080855283882080548316841790559587529383528186208054851682179055939091529092208054909216179055565b60006108956009600a6125b5565b6108a390633b9aca006125c4565b905090565b60006108b384611560565b6108cf5760405162461bcd60e51b815260040161071d906125db565b6001600160a01b0384166000908152600e602090815260408083203384529091529020546000191461094f576001600160a01b0384166000908152600e6020908152604080832033845290915290205461092a908390612605565b6001600160a01b0385166000908152600e602090815260408083203384529091529020555b61095a8484846115c6565b949350505050565b60006004546003541161097e5750600254610100900460ff1690565b506002546301000000900460ff1690565b6000546001600160a01b031633146109b95760405162461bcd60e51b815260040161071d90612484565b6015805461ff001916610100179055606460ff83161115610a1c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000604482015260640161071d565b306000908152600d6020526040812054606490610a3d9060ff8616906125c4565b610a479190612618565b9050610a556009600a6125b5565b811115610a6557610a65816118e1565b8115610aad574780610aa25760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161071d565b610aab47611a2b565b505b50506015805461ff001916905550565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260040161071d90612484565b60006103e861ffff8416610afd6009600a6125b5565b610b0b90633b9aca006125c4565b610b1591906125c4565b610b1f9190612618565b610b2a90600161263a565b9050600854811015610b6b5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161071d565b600881905560006103e861ffff8416610b866009600a6125b5565b610b9490633b9aca006125c4565b610b9e91906125c4565b610ba89190612618565b610bb390600161263a565b9050600954811015610bf85760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161071d565b600955505050565b600060045460035411610c17575060025460ff1690565b5060025462010000900460ff1690565b6000546001600160a01b03163314610c515760405162461bcd60e51b815260040161071d90612484565b6050610c5d828461264d565b60ff161115610ca35760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161071d565b6002805460ff9283166101000261ffff199091169290931691909117919091179055565b6000546001600160a01b03163314610cf15760405162461bcd60e51b815260040161071d90612484565b8080610cfa5750815b15610d5b576001600160a01b03831660009081526014602052604090205460ff1615610d5b5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161071d565b6001600160a01b039092166000908152600f60209081526040808320805494151560ff1995861617905560109091529020805492151592909116919091179055565b6000546001600160a01b03163314610dc75760405162461bcd60e51b815260040161071d90612484565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610e365760405162461bcd60e51b815260040161071d90612484565b600081610e438486612666565b610e4d9190612666565b905060008161ffff1611610e955760405162461bcd60e51b815260206004820152600f60248201526e0416c6c2063616e6e6f74206265203608c1b604482015260640161071d565b6005805461ffff928316600160301b0267ffff00000000000019948416620100000263ffffffff19978516640100000000029790971665ffffffffffff199092169190911794909216939093179390931716919091179055565b6000546001600160a01b03163314610f195760405162461bcd60e51b815260040161071d90612484565b63ffffffff808416908516610f306009600a6125b5565b610f3e90633b9aca006125c4565b610f4891906125c4565b610f529190612618565b600a819055508063ffffffff168263ffffffff166009600a610f7491906125b5565b610f8290633b9aca006125c4565b610f8c91906125c4565b610f969190612618565b600b819055600a541115610fdc5760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b604482015260640161071d565b620186a0610fec6009600a6125b5565b610ffa90633b9aca006125c4565b6110049190612618565b600b54116110425760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b604482015260640161071d565b60646110506009600a6125b5565b61105e90633b9aca006125c4565b6110689190612618565b600b54106110a75760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b604482015260640161071d565b50505050565b60006110b833611560565b6110d45760405162461bcd60e51b815260040161071d906125db565b6110df3384846115c6565b9392505050565b6011546001600160a01b031633146111385760405162461bcd60e51b81526020600482015260156024820152741e5bdd49dc99481b9bdd08185d5d1a1bdc9a5e9959605a1b604482015260640161071d565b60dc81106111885760405162461bcd60e51b815260206004820152601860248201527f6d757374206265206c657373207468616e203232302074780000000000000000604482015260640161071d565b600455565b6000546001600160a01b031633146111b75760405162461bcd60e51b815260040161071d90612484565b6015805461ff0019166101001790556013546001600160a01b03161561120b5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b604482015260640161071d565b60155460ff16156112505760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161071d565b600034118061125f5750600047115b6112ab5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000604482015260640161071d565b306000908152600d60205260409020546112ff5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b604482015260640161071d565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113769190612688565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190612688565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d9190612688565b601380546001600160a01b0319166001600160a01b0392909216919091179055306000908152600d60205260408120546114a8914790611b33565b6013546001600160a01b03166000908152601460205260409020805460ff191660011790556114d5611bee565b6015805461ff0019169055565b6000546001600160a01b0316331461150c5760405162461bcd60e51b815260040161071d90612484565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b601554600090819060ff1615611578575060016106ed565b6001600160a01b0383166000908152600f602052604090205460ff1680156115b857506001600160a01b03831660009081526010602052604090205460ff165b156106ed5750600192915050565b60006001600160a01b03841661161e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000604482015260640161071d565b60155460ff16611684576001600160a01b0384166000908152600f602052604090205460ff16801561166857506001600160a01b03841660009081526010602052604090205460ff165b6116845760405162461bcd60e51b815260040161071d906125db565b601554610100900460ff161580156116b457506001600160a01b03831660009081526014602052604090205460ff165b156116c1576116c1611ca9565b600154431080156116d457506007544310155b80156116f857506001600160a01b03841660009081526014602052604090205460ff165b15611743576001600160a01b03831632146117435760405162461bcd60e51b815260206004820152600b60248201526a13515588189b1bd8dad95960aa1b604482015260640161071d565b6001600160a01b038416301480159061176557506001600160a01b0383163014155b801561177f57506000546001600160a01b03858116911614155b156117cf5761178f848484611e1d565b6117cf5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b604482015260640161071d565b60006117dc858585611ee7565b905060006117ea8285612605565b905060035460016117fb919061263a565b6003556001600160a01b0386166000908152600d6020526040902054611822908590612605565b6001600160a01b0387166000908152600d6020526040812091909155600c805484929061185090849061263a565b90915550506001600160a01b0385166000908152600d602052604090205461187990829061263a565b6001600160a01b038087166000818152600d602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118cd9085815260200190565b60405180910390a350600195945050505050565b6118ea816120af565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061191f5761191f6126a5565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199c9190612688565b816001815181106119af576119af6126a5565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906119f59085906000908690309042906004016126bb565b600060405180830381600087803b158015611a0f57600080fd5b505af1158015611a23573d6000803e3d6000fd5b505050505050565b600554600090611a479061ffff62010000820481169116612666565b905061ffff811615611b2f5760055460009061ffff80841691611a6b9116856125c4565b611a759190612618565b60055490915060009061ffff80851691611a97916201000090910416866125c4565b611aa19190612618565b90508115611aeb57600554604051600160401b9091046001600160a01b0316906108fc8415029084906000818181858888f19350505050158015611ae9573d6000803e3d6000fd5b505b80156110a7576006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b2b573d6000803e3d6000fd5b5050505b5050565b6011546001600160a01b03168115611b49575060005b611b52846120af565b60125460405163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611bc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611be5919061272c565b50505050505050565b6064611bfc6009600a6125b5565b611c0a90633b9aca006125c4565b611c159060016125c4565b611c1f9190612618565b6008556064611c306009600a6125b5565b611c3e90633b9aca006125c4565b611c499060016125c4565b611c539190612618565b6009556015805460ff191660019081179091554360078190556000549154600160b81b830460ff90811693600160b01b90041691611c909161263a565b611c9a919061263a565b611ca4919061263a565b600155565b6015805461ff001916610100179055600c54600a548110801590611ccf575060155460ff165b15611e0f57600b548110611ce25750600b545b60055460009060029061ffff600160301b8204811691611d0c9164010000000090910416856125c4565b611d169190612618565b611d209190612618565b90506000611d2e8284612605565b9050611d3c6009600a6125b5565b811115611dfb57306000908152600d6020526040812080544792869291611d6490849061263a565b90915550611d739050826118e1565b83600c6000828254611d859190612605565b9091555060009050611d978247612605565b600554909150640100000000900461ffff1615611df85760055460009061ffff600160301b8204811691611dd59164010000000090910416846125c4565b611ddf9190612618565b9050611dea856120af565b611df685826000611b33565b505b50505b478015611e0b57611e0b81611a2b565b5050505b506015805461ff0019169055565b60155460009060019060ff168015611e4e57506001600160a01b03851660009081526010602052604090205460ff16155b8015611e7357506001600160a01b03841660009081526010602052604090205460ff16155b1561095a57600854831115611e8a5750600061095a565b6001600160a01b03841660009081526014602052604090205460ff16158015611ed757506009546001600160a01b0385166000908152600d6020526040902054611ed590859061263a565b115b1561095a57506000949350505050565b601554600090819060ff161580611f1657506001600160a01b0385166000908152600f602052604090205460ff165b80611f3957506001600160a01b0384166000908152600f602052604090205460ff165b15611f465750600061095a565b6001600160a01b03851660009081526014602052604090205460ff16156120435760005460075460ff600160b81b8304811692611f8e92600160b01b9091049091169061263a565b611f98919061263a565b4310611fe157606460045460035411611fb65760025460ff16611fc3565b60025462010000900460ff165b611fd09060ff16856125c4565b611fda9190612618565b905061095a565b600054600754611ffb91600160b01b900460ff169061263a565b431061201b57600054606490611fd090600160a81b900460ff16856125c4565b600754431061203e57600054606490611fd090600160a01b900460ff16856125c4565b61095a565b6001600160a01b03841660009081526014602052604090205460ff161561095a5760646004546003541161208157600254610100900460ff1661208f565b6002546301000000900460ff165b61209c9060ff16856125c4565b6120a69190612618565b95945050505050565b306000908152600e60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561215157306000818152600e60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b600060208083528351808285015260005b8181101561218157858101830151858201604001528201612165565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461215157600080fd5b600080604083850312156121ca57600080fd5b82356121d5816121a2565b946020939093013593505050565b6000806000606084860312156121f857600080fd5b8335612203816121a2565b92506020840135612213816121a2565b91506040840135612223816121a2565b809150509250925092565b60008060006060848603121561224357600080fd5b833561224e816121a2565b9250602084013561225e816121a2565b929592945050506040919091013590565b803560ff8116811461228057600080fd5b919050565b8035801515811461228057600080fd5b600080604083850312156122a857600080fd5b6122b18361226f565b91506122bf60208401612285565b90509250929050565b803561ffff8116811461228057600080fd5b600080604083850312156122ed57600080fd5b6122f6836122c8565b91506122bf602084016122c8565b6000806040838503121561231757600080fd5b6123208361226f565b91506122bf6020840161226f565b60008060006060848603121561234357600080fd5b833561234e816121a2565b925061235c60208501612285565b915061236a60408501612285565b90509250925092565b60006020828403121561238557600080fd5b81356110df816121a2565b6000806000606084860312156123a557600080fd5b6123ae846122c8565b92506123bc602085016122c8565b915061236a604085016122c8565b803563ffffffff8116811461228057600080fd5b600080600080608085870312156123f457600080fd5b6123fd856123ca565b935061240b602086016123ca565b9250612419604086016123ca565b9150612427606086016123ca565b905092959194509250565b6000806040838503121561244557600080fd5b8235612450816121a2565b91506020830135612460816121a2565b809150509250929050565b60006020828403121561247d57600080fd5b5035919050565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561250c5781600019048211156124f2576124f26124bb565b808516156124ff57918102915b93841c93908002906124d6565b509250929050565b600082612523575060016106ed565b81612530575060006106ed565b816001811461254657600281146125505761256c565b60019150506106ed565b60ff841115612561576125616124bb565b50506001821b6106ed565b5060208310610133831016604e8410600b841016171561258f575081810a6106ed565b61259983836124d1565b80600019048211156125ad576125ad6124bb565b029392505050565b60006110df60ff841683612514565b80820281158282048414176106ed576106ed6124bb565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b818103818111156106ed576106ed6124bb565b60008261263557634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106ed576106ed6124bb565b60ff81811683821601908111156106ed576106ed6124bb565b61ffff818116838216019080821115612681576126816124bb565b5092915050565b60006020828403121561269a57600080fd5b81516110df816121a2565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561270b5784516001600160a01b0316835293830193918301916001016126e6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561274157600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200988a365f187e6974d2294f5c7e4ba5a7071db59308de01c961800b6b79c9fe164736f6c63430008130033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806370a0823111610102578063a9059cbb11610095578063de3cb85d11610064578063de3cb85d14610629578063e8078d9414610649578063f2fde38b14610651578063f8b45b051461067157600080fd5b8063a9059cbb14610590578063c04a5414146105b0578063c3f70b52146105ce578063dd62ed3e146105e357600080fd5b80638d3e6e40116100d15780638d3e6e40146104e55780638da5cb5b1461051e57806395d89b411461053c578063a6097b0a1461057057600080fd5b806370a0823114610441578063715018a61461047757806375f0a8741461048c57806376a39c28146104c557600080fd5b8063368f48001161017a5780634fcd2446116101495780634fcd24461461038757806357ff135a146103a75780635a90a49e146103c75780636373ea691461040057600080fd5b8063368f48001461032857806346b8983414610348578063470624021461035d5780634d4ce9351461037257600080fd5b806323b872dd116101b657806323b872dd146102ad5780632b14ca56146102cd5780632fb528ba146102f4578063313ce5671461031457600080fd5b806306fdde03146101f3578063095ea7b314610238578063147c9f6d1461026857806318160ddd1461028a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600a815269053414954414d41322e360b41b60208201525b60405161022f9190612154565b60405180910390f35b34801561024457600080fd5b506102586102533660046121b7565b610686565b604051901515815260200161022f565b34801561027457600080fd5b506102886102833660046121e3565b6106f3565b005b34801561029657600080fd5b5061029f610887565b60405190815260200161022f565b3480156102b957600080fd5b506102586102c836600461222e565b6108a8565b3480156102d957600080fd5b506102e2610962565b60405160ff909116815260200161022f565b34801561030057600080fd5b5061028861030f366004612295565b61098f565b34801561032057600080fd5b5060096102e2565b34801561033457600080fd5b506102886103433660046122da565b610abd565b34801561035457600080fd5b50600a5461029f565b34801561036957600080fd5b506102e2610c00565b34801561037e57600080fd5b50600b5461029f565b34801561039357600080fd5b506102886103a2366004612304565b610c27565b3480156103b357600080fd5b506102886103c236600461232e565b610cc7565b3480156103d357600080fd5b506102586103e2366004612373565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561040c57600080fd5b506005546040805161ffff8084168252620100008404811660208301526401000000009093049092169082015260600161022f565b34801561044d57600080fd5b5061029f61045c366004612373565b6001600160a01b03166000908152600d602052604090205490565b34801561048357600080fd5b50610288610d9d565b34801561049857600080fd5b50600554600160401b90046001600160a01b03165b6040516001600160a01b03909116815260200161022f565b3480156104d157600080fd5b506102886104e0366004612390565b610e0c565b3480156104f157600080fd5b50610258610500366004612373565b6001600160a01b031660009081526010602052604090205460ff1690565b34801561052a57600080fd5b506000546001600160a01b03166104ad565b34801561054857600080fd5b5060408051808201909152600b81526a053414954414d4120322e360ac1b6020820152610222565b34801561057c57600080fd5b5061028861058b3660046123de565b610eef565b34801561059c57600080fd5b506102586105ab3660046121b7565b6110ad565b3480156105bc57600080fd5b506006546001600160a01b03166104ad565b3480156105da57600080fd5b5060085461029f565b3480156105ef57600080fd5b5061029f6105fe366004612432565b6001600160a01b039182166000908152600e6020908152604080832093909416825291909152205490565b34801561063557600080fd5b5061028861064436600461246b565b6110e6565b61028861118d565b34801561065d57600080fd5b5061028861066c366004612373565b6114e2565b34801561067d57600080fd5b5060095461029f565b336000818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146107265760405162461bcd60e51b815260040161071d90612484565b60405180910390fd5b6001600160a01b03831660009081526014602052604090205460ff1615801561076857506001600160a01b03821660009081526014602052604090205460ff16155b801561078d57506001600160a01b03811660009081526014602052604090205460ff16155b6107d95760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161071d565b6005805468010000000000000000600160e01b031916600160401b6001600160a01b0395861690810291909117909155600680546001600160a01b03199081169486169485179091556011805490911692909416919091179092556000918252600f60208181526040808520805460ff199081166001908117909255601080855283882080548316841790559587529383528186208054851682179055939091529092208054909216179055565b60006108956009600a6125b5565b6108a390633b9aca006125c4565b905090565b60006108b384611560565b6108cf5760405162461bcd60e51b815260040161071d906125db565b6001600160a01b0384166000908152600e602090815260408083203384529091529020546000191461094f576001600160a01b0384166000908152600e6020908152604080832033845290915290205461092a908390612605565b6001600160a01b0385166000908152600e602090815260408083203384529091529020555b61095a8484846115c6565b949350505050565b60006004546003541161097e5750600254610100900460ff1690565b506002546301000000900460ff1690565b6000546001600160a01b031633146109b95760405162461bcd60e51b815260040161071d90612484565b6015805461ff001916610100179055606460ff83161115610a1c5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000604482015260640161071d565b306000908152600d6020526040812054606490610a3d9060ff8616906125c4565b610a479190612618565b9050610a556009600a6125b5565b811115610a6557610a65816118e1565b8115610aad574780610aa25760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161071d565b610aab47611a2b565b505b50506015805461ff001916905550565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260040161071d90612484565b60006103e861ffff8416610afd6009600a6125b5565b610b0b90633b9aca006125c4565b610b1591906125c4565b610b1f9190612618565b610b2a90600161263a565b9050600854811015610b6b5760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161071d565b600881905560006103e861ffff8416610b866009600a6125b5565b610b9490633b9aca006125c4565b610b9e91906125c4565b610ba89190612618565b610bb390600161263a565b9050600954811015610bf85760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161071d565b600955505050565b600060045460035411610c17575060025460ff1690565b5060025462010000900460ff1690565b6000546001600160a01b03163314610c515760405162461bcd60e51b815260040161071d90612484565b6050610c5d828461264d565b60ff161115610ca35760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161071d565b6002805460ff9283166101000261ffff199091169290931691909117919091179055565b6000546001600160a01b03163314610cf15760405162461bcd60e51b815260040161071d90612484565b8080610cfa5750815b15610d5b576001600160a01b03831660009081526014602052604090205460ff1615610d5b5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161071d565b6001600160a01b039092166000908152600f60209081526040808320805494151560ff1995861617905560109091529020805492151592909116919091179055565b6000546001600160a01b03163314610dc75760405162461bcd60e51b815260040161071d90612484565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610e365760405162461bcd60e51b815260040161071d90612484565b600081610e438486612666565b610e4d9190612666565b905060008161ffff1611610e955760405162461bcd60e51b815260206004820152600f60248201526e0416c6c2063616e6e6f74206265203608c1b604482015260640161071d565b6005805461ffff928316600160301b0267ffff00000000000019948416620100000263ffffffff19978516640100000000029790971665ffffffffffff199092169190911794909216939093179390931716919091179055565b6000546001600160a01b03163314610f195760405162461bcd60e51b815260040161071d90612484565b63ffffffff808416908516610f306009600a6125b5565b610f3e90633b9aca006125c4565b610f4891906125c4565b610f529190612618565b600a819055508063ffffffff168263ffffffff166009600a610f7491906125b5565b610f8290633b9aca006125c4565b610f8c91906125c4565b610f969190612618565b600b819055600a541115610fdc5760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b604482015260640161071d565b620186a0610fec6009600a6125b5565b610ffa90633b9aca006125c4565b6110049190612618565b600b54116110425760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b604482015260640161071d565b60646110506009600a6125b5565b61105e90633b9aca006125c4565b6110689190612618565b600b54106110a75760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b604482015260640161071d565b50505050565b60006110b833611560565b6110d45760405162461bcd60e51b815260040161071d906125db565b6110df3384846115c6565b9392505050565b6011546001600160a01b031633146111385760405162461bcd60e51b81526020600482015260156024820152741e5bdd49dc99481b9bdd08185d5d1a1bdc9a5e9959605a1b604482015260640161071d565b60dc81106111885760405162461bcd60e51b815260206004820152601860248201527f6d757374206265206c657373207468616e203232302074780000000000000000604482015260640161071d565b600455565b6000546001600160a01b031633146111b75760405162461bcd60e51b815260040161071d90612484565b6015805461ff0019166101001790556013546001600160a01b03161561120b5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b604482015260640161071d565b60155460ff16156112505760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161071d565b600034118061125f5750600047115b6112ab5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000604482015260640161071d565b306000908152600d60205260409020546112ff5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b604482015260640161071d565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113769190612688565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190612688565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146d9190612688565b601380546001600160a01b0319166001600160a01b0392909216919091179055306000908152600d60205260408120546114a8914790611b33565b6013546001600160a01b03166000908152601460205260409020805460ff191660011790556114d5611bee565b6015805461ff0019169055565b6000546001600160a01b0316331461150c5760405162461bcd60e51b815260040161071d90612484565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b601554600090819060ff1615611578575060016106ed565b6001600160a01b0383166000908152600f602052604090205460ff1680156115b857506001600160a01b03831660009081526010602052604090205460ff165b156106ed5750600192915050565b60006001600160a01b03841661161e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000604482015260640161071d565b60155460ff16611684576001600160a01b0384166000908152600f602052604090205460ff16801561166857506001600160a01b03841660009081526010602052604090205460ff165b6116845760405162461bcd60e51b815260040161071d906125db565b601554610100900460ff161580156116b457506001600160a01b03831660009081526014602052604090205460ff165b156116c1576116c1611ca9565b600154431080156116d457506007544310155b80156116f857506001600160a01b03841660009081526014602052604090205460ff165b15611743576001600160a01b03831632146117435760405162461bcd60e51b815260206004820152600b60248201526a13515588189b1bd8dad95960aa1b604482015260640161071d565b6001600160a01b038416301480159061176557506001600160a01b0383163014155b801561177f57506000546001600160a01b03858116911614155b156117cf5761178f848484611e1d565b6117cf5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b604482015260640161071d565b60006117dc858585611ee7565b905060006117ea8285612605565b905060035460016117fb919061263a565b6003556001600160a01b0386166000908152600d6020526040902054611822908590612605565b6001600160a01b0387166000908152600d6020526040812091909155600c805484929061185090849061263a565b90915550506001600160a01b0385166000908152600d602052604090205461187990829061263a565b6001600160a01b038087166000818152600d602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118cd9085815260200190565b60405180910390a350600195945050505050565b6118ea816120af565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061191f5761191f6126a5565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199c9190612688565b816001815181106119af576119af6126a5565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906119f59085906000908690309042906004016126bb565b600060405180830381600087803b158015611a0f57600080fd5b505af1158015611a23573d6000803e3d6000fd5b505050505050565b600554600090611a479061ffff62010000820481169116612666565b905061ffff811615611b2f5760055460009061ffff80841691611a6b9116856125c4565b611a759190612618565b60055490915060009061ffff80851691611a97916201000090910416866125c4565b611aa19190612618565b90508115611aeb57600554604051600160401b9091046001600160a01b0316906108fc8415029084906000818181858888f19350505050158015611ae9573d6000803e3d6000fd5b505b80156110a7576006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b2b573d6000803e3d6000fd5b5050505b5050565b6011546001600160a01b03168115611b49575060005b611b52846120af565b60125460405163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611bc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611be5919061272c565b50505050505050565b6064611bfc6009600a6125b5565b611c0a90633b9aca006125c4565b611c159060016125c4565b611c1f9190612618565b6008556064611c306009600a6125b5565b611c3e90633b9aca006125c4565b611c499060016125c4565b611c539190612618565b6009556015805460ff191660019081179091554360078190556000549154600160b81b830460ff90811693600160b01b90041691611c909161263a565b611c9a919061263a565b611ca4919061263a565b600155565b6015805461ff001916610100179055600c54600a548110801590611ccf575060155460ff165b15611e0f57600b548110611ce25750600b545b60055460009060029061ffff600160301b8204811691611d0c9164010000000090910416856125c4565b611d169190612618565b611d209190612618565b90506000611d2e8284612605565b9050611d3c6009600a6125b5565b811115611dfb57306000908152600d6020526040812080544792869291611d6490849061263a565b90915550611d739050826118e1565b83600c6000828254611d859190612605565b9091555060009050611d978247612605565b600554909150640100000000900461ffff1615611df85760055460009061ffff600160301b8204811691611dd59164010000000090910416846125c4565b611ddf9190612618565b9050611dea856120af565b611df685826000611b33565b505b50505b478015611e0b57611e0b81611a2b565b5050505b506015805461ff0019169055565b60155460009060019060ff168015611e4e57506001600160a01b03851660009081526010602052604090205460ff16155b8015611e7357506001600160a01b03841660009081526010602052604090205460ff16155b1561095a57600854831115611e8a5750600061095a565b6001600160a01b03841660009081526014602052604090205460ff16158015611ed757506009546001600160a01b0385166000908152600d6020526040902054611ed590859061263a565b115b1561095a57506000949350505050565b601554600090819060ff161580611f1657506001600160a01b0385166000908152600f602052604090205460ff165b80611f3957506001600160a01b0384166000908152600f602052604090205460ff165b15611f465750600061095a565b6001600160a01b03851660009081526014602052604090205460ff16156120435760005460075460ff600160b81b8304811692611f8e92600160b01b9091049091169061263a565b611f98919061263a565b4310611fe157606460045460035411611fb65760025460ff16611fc3565b60025462010000900460ff165b611fd09060ff16856125c4565b611fda9190612618565b905061095a565b600054600754611ffb91600160b01b900460ff169061263a565b431061201b57600054606490611fd090600160a81b900460ff16856125c4565b600754431061203e57600054606490611fd090600160a01b900460ff16856125c4565b61095a565b6001600160a01b03841660009081526014602052604090205460ff161561095a5760646004546003541161208157600254610100900460ff1661208f565b6002546301000000900460ff165b61209c9060ff16856125c4565b6120a69190612618565b95945050505050565b306000908152600e60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561215157306000818152600e60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b600060208083528351808285015260005b8181101561218157858101830151858201604001528201612165565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461215157600080fd5b600080604083850312156121ca57600080fd5b82356121d5816121a2565b946020939093013593505050565b6000806000606084860312156121f857600080fd5b8335612203816121a2565b92506020840135612213816121a2565b91506040840135612223816121a2565b809150509250925092565b60008060006060848603121561224357600080fd5b833561224e816121a2565b9250602084013561225e816121a2565b929592945050506040919091013590565b803560ff8116811461228057600080fd5b919050565b8035801515811461228057600080fd5b600080604083850312156122a857600080fd5b6122b18361226f565b91506122bf60208401612285565b90509250929050565b803561ffff8116811461228057600080fd5b600080604083850312156122ed57600080fd5b6122f6836122c8565b91506122bf602084016122c8565b6000806040838503121561231757600080fd5b6123208361226f565b91506122bf6020840161226f565b60008060006060848603121561234357600080fd5b833561234e816121a2565b925061235c60208501612285565b915061236a60408501612285565b90509250925092565b60006020828403121561238557600080fd5b81356110df816121a2565b6000806000606084860312156123a557600080fd5b6123ae846122c8565b92506123bc602085016122c8565b915061236a604085016122c8565b803563ffffffff8116811461228057600080fd5b600080600080608085870312156123f457600080fd5b6123fd856123ca565b935061240b602086016123ca565b9250612419604086016123ca565b9150612427606086016123ca565b905092959194509250565b6000806040838503121561244557600080fd5b8235612450816121a2565b91506020830135612460816121a2565b809150509250929050565b60006020828403121561247d57600080fd5b5035919050565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561250c5781600019048211156124f2576124f26124bb565b808516156124ff57918102915b93841c93908002906124d6565b509250929050565b600082612523575060016106ed565b81612530575060006106ed565b816001811461254657600281146125505761256c565b60019150506106ed565b60ff841115612561576125616124bb565b50506001821b6106ed565b5060208310610133831016604e8410600b841016171561258f575081810a6106ed565b61259983836124d1565b80600019048211156125ad576125ad6124bb565b029392505050565b60006110df60ff841683612514565b80820281158282048414176106ed576106ed6124bb565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b818103818111156106ed576106ed6124bb565b60008261263557634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106ed576106ed6124bb565b60ff81811683821601908111156106ed576106ed6124bb565b61ffff818116838216019080821115612681576126816124bb565b5092915050565b60006020828403121561269a57600080fd5b81516110df816121a2565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561270b5784516001600160a01b0316835293830193918301916001016126e6565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561274157600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200988a365f187e6974d2294f5c7e4ba5a7071db59308de01c961800b6b79c9fe164736f6c63430008130033

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.