ETH Price: $3,439.10 (+3.28%)

Contract

0x669B64c97A3E213539222171EC6Fb959967A4CdE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
_Excluded Wallet202206442024-07-02 18:33:35144 days ago1719945215IN
0x669B64c9...9967A4CdE
0 ETH0.00025285.46154141
Rescue ETH202205812024-07-02 18:20:47144 days ago1719944447IN
0x669B64c9...9967A4CdE
0 ETH0.000171235.62996865
Manual Swap202205792024-07-02 18:20:23144 days ago1719944423IN
0x669B64c9...9967A4CdE
0 ETH0.000850915.37518506
Transfer202205762024-07-02 18:19:47144 days ago1719944387IN
0x669B64c9...9967A4CdE
0.01 ETH0.000116245.52081199
_Excluded Wallet202204992024-07-02 18:04:23144 days ago1719943463IN
0x669B64c9...9967A4CdE
0 ETH0.000102494.2048604
Approve202204602024-07-02 17:56:35144 days ago1719942995IN
0x669B64c9...9967A4CdE
0 ETH0.00018313.93221468
Approve202204442024-07-02 17:53:23144 days ago1719942803IN
0x669B64c9...9967A4CdE
0 ETH0.000175873.79543949
Start Trading202204272024-07-02 17:49:59144 days ago1719942599IN
0x669B64c9...9967A4CdE
0 ETH0.011100064.24970068
0x60806040202204232024-07-02 17:49:11144 days ago1719942551IN
 Create: Navaix
0 ETH0.011909486.61944455

Latest 13 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
202205812024-07-02 18:20:47144 days ago1719944447
0x669B64c9...9967A4CdE
1 wei
202205792024-07-02 18:20:23144 days ago1719944423
0x669B64c9...9967A4CdE
0.00254888 ETH
202205792024-07-02 18:20:23144 days ago1719944423
0x669B64c9...9967A4CdE
0.00254888 ETH
202205792024-07-02 18:20:23144 days ago1719944423
0x669B64c9...9967A4CdE
0.00509777 ETH
202205792024-07-02 18:20:23144 days ago1719944423
0x669B64c9...9967A4CdE
0.00019555 ETH
202205342024-07-02 18:11:23144 days ago1719943883
0x669B64c9...9967A4CdE
0.00014996 ETH
202205342024-07-02 18:11:23144 days ago1719943883
0x669B64c9...9967A4CdE
0.00014996 ETH
202205342024-07-02 18:11:23144 days ago1719943883
0x669B64c9...9967A4CdE
0.00029993 ETH
202205342024-07-02 18:11:23144 days ago1719943883
0x669B64c9...9967A4CdE
0.00059986 ETH
202205032024-07-02 18:05:11144 days ago1719943511
0x669B64c9...9967A4CdE
0.00005013 ETH
202205032024-07-02 18:05:11144 days ago1719943511
0x669B64c9...9967A4CdE
0.00005013 ETH
202205032024-07-02 18:05:11144 days ago1719943511
0x669B64c9...9967A4CdE
0.00010027 ETH
202205032024-07-02 18:05:11144 days ago1719943511
0x669B64c9...9967A4CdE
0.00020054 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Navaix

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 4 : Navaix.sol
/*
TG: https://t.me/Dtube_ETH
Website: https://dtube.ai
Twitter: https://x.com/DTUBE_ETH
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import "./IERC20.sol";
import "./Ownable.sol";
import "./UniswapV2.sol";

contract Navaix is Context, IERC20, Ownable {

    string private constant _name = "Navaix";
    string private constant _symbol = "NAV";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 33_000_000 * 10**_decimals;

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _ExcludedWallets;

    uint256 private constant onePercent = (_totalSupply)/100;
    uint256 private constant minimumSwapAmount = onePercent/20;

    uint256 private maxSwap = onePercent / 2;

    uint256 public MaxTX = onePercent;
    uint256 public MaxWallet = onePercent;

    uint256 private InitialBlockNo;

    uint256 public buyTax = 20;
    uint256 public sellTax = 25;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address public DevWallet;
    address public OperationWallet;
    address public MarketingWallet;

    bool private launch = false;

    constructor() {
        DevWallet  = 0xc45EDB6c596ecBb929Ce0b5325FB046B5858b5BA; //58
        OperationWallet = 0xc45EDB6c596ecBb929Ce0b5325FB046B5858b5BA; //25
        MarketingWallet = 0xc45EDB6c596ecBb929Ce0b5325FB046B5858b5BA; //5

        _balance[msg.sender] = _totalSupply;

        _ExcludedWallets[msg.sender] = 1;
        _ExcludedWallets[address(this)] = 1;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

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


    function startTrading() external onlyOwner {
        require(!launch,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        
        // uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        // IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        launch = true;
        InitialBlockNo = block.number;
    }

    function _ExcludedWallet(address wallet, uint256 value) external onlyOwner {
        _ExcludedWallets[wallet] = value;
    }

    function ChangeTaxWallet(address NewDevWallet, address NewOperationWallet, address NewMarketWallet) external onlyOwner {
        DevWallet = NewDevWallet;
        OperationWallet = NewOperationWallet;
        MarketingWallet = NewMarketWallet;
    }

    function RemoveLimits() external onlyOwner {
        MaxTX = _totalSupply;
        MaxWallet = _totalSupply;
    }

    function EditDTTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= 99 && newSellTax <= 99, "Tax cannot be increased");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function ChangeDTSettings(uint256 newMaxWalletX10, uint256 newMaxTrxX10, uint256 newMaxSwapX10) external onlyOwner {
        require(newMaxSwapX10 <= 30, "can't be more than 3%");

        MaxWallet = newMaxWalletX10*(onePercent/10); //type 10 if 1%
        MaxTX = newMaxTrxX10*(onePercent/10);
        maxSwap = newMaxSwapX10*(onePercent/10);
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: no tokens transferred");
        uint256 _tax = 0;
        if (_ExcludedWallets[from] == 0 && _ExcludedWallets[to] == 0)
        {
            require(launch, "Trading not open");
            require(amount <= MaxTX, "MaxTx Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= MaxWallet, "MaxWallet Enabled at launch");
            if (block.number < InitialBlockNo + 3) {
                _tax = (from == uniswapV2Pair) ? 20 : 25;
            } else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minimumSwapAmount) { 
                        uint256 mxSw = maxSwap;
                        if (tokensToSwap > amount) tokensToSwap = amount;
                        if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                        swapTokensForEth(tokensToSwap);
                    }
                    _tax = sellTax;
                }
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

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

    function ManualSwap(uint256 percent) external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        uint256 amtswap = (percent*contractBalance)/100;
        swapTokensForEth(amtswap);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        bool success;

        uint256 devtax = address(this).balance *50/100;
        uint256 operationtax = address(this).balance *25/100;
        uint256 markettax = address(this).balance *25/100;

        (success, ) = DevWallet.call{value: devtax}("");
        (success, ) = OperationWallet.call{value: operationtax}("");
        (success, ) =  MarketingWallet.call{value: markettax}("");
    }
    receive() external payable {}
}

File 2 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC-20 standard as defined in the ERC.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
     * caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

File 3 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

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

File 4 of 4 : UniswapV2.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

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

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

Settings
{
  "remappings": [
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

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":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":"newMaxWalletX10","type":"uint256"},{"internalType":"uint256","name":"newMaxTrxX10","type":"uint256"},{"internalType":"uint256","name":"newMaxSwapX10","type":"uint256"}],"name":"ChangeDTSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"NewDevWallet","type":"address"},{"internalType":"address","name":"NewOperationWallet","type":"address"},{"internalType":"address","name":"NewMarketWallet","type":"address"}],"name":"ChangeTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"EditDTTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxTX","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":"OperationWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"_ExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260026064620000166012600a62000308565b62000026906301f78a4062000320565b6200003291906200033a565b6200003e91906200033a565b6004556064620000516012600a62000308565b62000061906301f78a4062000320565b6200006d91906200033a565b6005556064620000806012600a62000308565b62000090906301f78a4062000320565b6200009c91906200033a565b60065560146008556019600955600e805460ff60a01b19169055348015620000c357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c805473c45edb6c596ecbb929ce0b5325fb046b5858b5ba6001600160a01b03199182168117909255600d8054821683179055600e80549091169091179055620001536012600a62000308565b62000163906301f78a4062000320565b336000908152600160208181526040808420949094556003905282822081905530825291902055620001923390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001cc6012600a62000308565b620001dc906301f78a4062000320565b60405190815260200160405180910390a36200035d565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200024a5781600019048211156200022e576200022e620001f3565b808516156200023c57918102915b93841c93908002906200020e565b509250929050565b600082620002635750600162000302565b81620002725750600062000302565b81600181146200028b57600281146200029657620002b6565b600191505062000302565b60ff841115620002aa57620002aa620001f3565b50506001821b62000302565b5060208310610133831016604e8410600b8410161715620002db575081810a62000302565b620002e7838362000209565b8060001904821115620002fe57620002fe620001f3565b0290505b92915050565b60006200031960ff84168362000252565b9392505050565b8082028115828204841417620003025762000302620001f3565b6000826200035857634e487b7160e01b600052601260045260246000fd5b500490565b611a71806200036d6000396000f3fe6080604052600436106101bb5760003560e01c806356ca8a41116100ec578063b115e4df1161008a578063dd62ed3e11610064578063dd62ed3e146104dd578063e6fb0b3514610523578063e9a327a214610543578063f2fde38b1461056357600080fd5b8063b115e4df14610487578063cc1776d3146104a7578063daaf8501146104bd57600080fd5b8063715018a6116100c6578063715018a6146104085780638da5cb5b1461041d57806395d89b411461043b578063a9059cbb1461046757600080fd5b806356ca8a411461039d57806356cd40e7146103bd57806370a08231146103d257600080fd5b80632598cdb2116101595780633297acb4116101335780633297acb41461033b57806349bd5a5e146103515780634a4a9a68146103715780634f7041a51461038757600080fd5b80632598cdb2146102d2578063293230b81461030a578063313ce5671461031f57600080fd5b8063148798fe11610195578063148798fe1461025a57806318160ddd1461026f57806318a295341461029257806323b872dd146102b257600080fd5b806306fdde03146101c7578063092db63914610208578063095ea7b31461022a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600681526509cc2ecc2d2f60d31b60208201525b6040516101ff919061161b565b60405180910390f35b34801561021457600080fd5b50610228610223366004611669565b610583565b005b34801561023657600080fd5b5061024a6102453660046116aa565b6106be565b60405190151581526020016101ff565b34801561026657600080fd5b506102286106d5565b34801561027b57600080fd5b50610284610757565b6040519081526020016101ff565b34801561029e57600080fd5b506102286102ad3660046116d6565b610778565b3480156102be57600080fd5b5061024a6102cd366004611721565b6107e1565b3480156102de57600080fd5b50600e546102f2906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561031657600080fd5b50610228610894565b34801561032b57600080fd5b50604051601281526020016101ff565b34801561034757600080fd5b5061028460055481565b34801561035d57600080fd5b50600b546102f2906001600160a01b031681565b34801561037d57600080fd5b5061028460065481565b34801561039357600080fd5b5061028460085481565b3480156103a957600080fd5b506102286103b8366004611762565b610af8565b3480156103c957600080fd5b50610228610b59565b3480156103de57600080fd5b506102846103ed36600461177b565b6001600160a01b031660009081526001602052604090205490565b34801561041457600080fd5b50610228610bbf565b34801561042957600080fd5b506000546001600160a01b03166102f2565b34801561044757600080fd5b506040805180820190915260038152622720ab60e91b60208201526101f2565b34801561047357600080fd5b5061024a6104823660046116aa565b610c33565b34801561049357600080fd5b50600c546102f2906001600160a01b031681565b3480156104b357600080fd5b5061028460095481565b3480156104c957600080fd5b50600d546102f2906001600160a01b031681565b3480156104e957600080fd5b506102846104f836600461179f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561052f57600080fd5b5061022861053e3660046116aa565b610c40565b34801561054f57600080fd5b5061022861055e3660046117d8565b610c86565b34801561056f57600080fd5b5061022861057e36600461177b565b610d19565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016105ad906117fa565b60405180910390fd5b601e8111156105ff5760405162461bcd60e51b815260206004820152601560248201527463616e2774206265206d6f7265207468616e20332560581b60448201526064016105ad565b600a606461060e601283611929565b61061c906301f78a40611938565b610626919061194f565b610630919061194f565b61063a9084611938565b600655600a606461064c601283611929565b61065a906301f78a40611938565b610664919061194f565b61066e919061194f565b6106789083611938565b600555600a606461068a601283611929565b610698906301f78a40611938565b6106a2919061194f565b6106ac919061194f565b6106b69082611938565b600455505050565b60006106cb338484610d4f565b5060015b92915050565b6000546001600160a01b031633146106ff5760405162461bcd60e51b81526004016105ad906117fa565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461074c576040519150601f19603f3d011682016040523d82523d6000602084013e610751565b606091505b50505050565b60006107656012600a611929565b610773906301f78a40611938565b905090565b6000546001600160a01b031633146107a25760405162461bcd60e51b81526004016105ad906117fa565b600c80546001600160a01b039485166001600160a01b031991821617909155600d805493851693821693909317909255600e8054919093169116179055565b60006107ee848484610e73565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000198114610889578281101561087c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105ad565b6108898533858403610d4f565b506001949350505050565b6000546001600160a01b031633146108be5760405162461bcd60e51b81526004016105ad906117fa565b600e54600160a01b900460ff16156109185760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ad565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a09190611971565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a269190611971565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190611971565b600b80546001600160a01b0319166001600160a01b03928316179055600a8054610adf923092911690610acc90601290611929565b610ada906301f78a40611938565b610d4f565b600e805460ff60a01b1916600160a01b17905543600755565b6000546001600160a01b03163314610b225760405162461bcd60e51b81526004016105ad906117fa565b30600090815260016020526040812054906064610b3f8385611938565b610b49919061194f565b9050610b54816111a3565b505050565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016105ad906117fa565b610b8f6012600a611929565b610b9d906301f78a40611938565b600555610bac6012600a611929565b610bba906301f78a40611938565b600655565b6000546001600160a01b03163314610be95760405162461bcd60e51b81526004016105ad906117fa565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106cb338484610e73565b6000546001600160a01b03163314610c6a5760405162461bcd60e51b81526004016105ad906117fa565b6001600160a01b03909116600090815260036020526040902055565b6000546001600160a01b03163314610cb05760405162461bcd60e51b81526004016105ad906117fa565b60638211158015610cc2575060638111155b610d0e5760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e6372656173656400000000000000000060448201526064016105ad565b600891909155600955565b6000546001600160a01b03163314610d435760405162461bcd60e51b81526004016105ad906117fa565b610d4c81611453565b50565b6001600160a01b038316610db15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ad565b6001600160a01b038216610e125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ad565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ad565b60008111610f275760405162461bcd60e51b815260206004820152601c60248201527f45524332303a206e6f20746f6b656e73207472616e736665727265640000000060448201526064016105ad565b6001600160a01b038316600090815260036020526040812054158015610f6357506001600160a01b038316600090815260036020526040902054155b1561119757600e54600160a01b900460ff16610fb45760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016105ad565b6005548211156110065760405162461bcd60e51b815260206004820152601760248201527f4d6178547820456e61626c6564206174206c61756e636800000000000000000060448201526064016105ad565b600b546001600160a01b0384811691161480159061102f57506001600160a01b03831661dead14155b156110af5760065482611057856001600160a01b031660009081526001602052604090205490565b611061919061198e565b11156110af5760405162461bcd60e51b815260206004820152601b60248201527f4d617857616c6c657420456e61626c6564206174206c61756e6368000000000060448201526064016105ad565b6007546110bd90600361198e565b4310156110ed57600b546001600160a01b038581169116146110e05760196110e3565b60145b60ff169050611197565b600b546001600160a01b039081169085160361110c5750600854611197565b600b546001600160a01b03908116908416036111975730600090815260016020526040902054601460646111426012600a611929565b611150906301f78a40611938565b61115a919061194f565b611164919061194f565b811115611191576004548382111561117a578391505b80821115611186578091505b61118f826111a3565b505b50506009545b61075184848484611513565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111d8576111d86119a1565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611971565b81600181518110611268576112686119a1565b6001600160a01b039283166020918202929092010152600a5461128e9130911684610d4f565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c79085906000908690309042906004016119b7565b600060405180830381600087803b1580156112e157600080fd5b505af11580156112f5573d6000803e3d6000fd5b50505050600080606447603261130b9190611938565b611315919061194f565b905060006064611326476019611938565b611330919061194f565b905060006064611341476019611938565b61134b919061194f565b600c546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611399576040519150601f19603f3d011682016040523d82523d6000602084013e61139e565b606091505b5050600d546040519195506001600160a01b0316908390600081818185875af1925050503d80600081146113ee576040519150601f19603f3d011682016040523d82523d6000602084013e6113f3565b606091505b5050600e546040519195506001600160a01b0316908290600081818185875af1925050503d8060008114611443576040519150601f19603f3d011682016040523d82523d6000602084013e611448565b606091505b505050505050505050565b6001600160a01b0381166114b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ad565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060646115218385611938565b61152b919061194f565b905060006115398285611a28565b6001600160a01b038716600090815260016020526040902054909150611560908590611a28565b6001600160a01b03808816600090815260016020526040808220939093559087168152205461159090829061198e565b6001600160a01b0386166000908152600160205260408082209290925530815220546115bd90839061198e565b3060009081526001602090815260409182902092909255518281526001600160a01b0387811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050565b600060208083528351808285015260005b818110156116485785810183015185820160400152820161162c565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561167e57600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610d4c57600080fd5b600080604083850312156116bd57600080fd5b82356116c881611695565b946020939093013593505050565b6000806000606084860312156116eb57600080fd5b83356116f681611695565b9250602084013561170681611695565b9150604084013561171681611695565b809150509250925092565b60008060006060848603121561173657600080fd5b833561174181611695565b9250602084013561175181611695565b929592945050506040919091013590565b60006020828403121561177457600080fd5b5035919050565b60006020828403121561178d57600080fd5b813561179881611695565b9392505050565b600080604083850312156117b257600080fd5b82356117bd81611695565b915060208301356117cd81611695565b809150509250929050565b600080604083850312156117eb57600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118805781600019048211156118665761186661182f565b8085161561187357918102915b93841c939080029061184a565b509250929050565b600082611897575060016106cf565b816118a4575060006106cf565b81600181146118ba57600281146118c4576118e0565b60019150506106cf565b60ff8411156118d5576118d561182f565b50506001821b6106cf565b5060208310610133831016604e8410600b8410161715611903575081810a6106cf565b61190d8383611845565b80600019048211156119215761192161182f565b029392505050565b600061179860ff841683611888565b80820281158282048414176106cf576106cf61182f565b60008261196c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561198357600080fd5b815161179881611695565b808201808211156106cf576106cf61182f565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a075784516001600160a01b0316835293830193918301916001016119e2565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156106cf576106cf61182f56fea264697066735822122077af14c35041f08daf7b59a1ab9c1997cc58ddcb2942c2ddc3af4bc72a52f9dc64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806356ca8a41116100ec578063b115e4df1161008a578063dd62ed3e11610064578063dd62ed3e146104dd578063e6fb0b3514610523578063e9a327a214610543578063f2fde38b1461056357600080fd5b8063b115e4df14610487578063cc1776d3146104a7578063daaf8501146104bd57600080fd5b8063715018a6116100c6578063715018a6146104085780638da5cb5b1461041d57806395d89b411461043b578063a9059cbb1461046757600080fd5b806356ca8a411461039d57806356cd40e7146103bd57806370a08231146103d257600080fd5b80632598cdb2116101595780633297acb4116101335780633297acb41461033b57806349bd5a5e146103515780634a4a9a68146103715780634f7041a51461038757600080fd5b80632598cdb2146102d2578063293230b81461030a578063313ce5671461031f57600080fd5b8063148798fe11610195578063148798fe1461025a57806318160ddd1461026f57806318a295341461029257806323b872dd146102b257600080fd5b806306fdde03146101c7578063092db63914610208578063095ea7b31461022a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600681526509cc2ecc2d2f60d31b60208201525b6040516101ff919061161b565b60405180910390f35b34801561021457600080fd5b50610228610223366004611669565b610583565b005b34801561023657600080fd5b5061024a6102453660046116aa565b6106be565b60405190151581526020016101ff565b34801561026657600080fd5b506102286106d5565b34801561027b57600080fd5b50610284610757565b6040519081526020016101ff565b34801561029e57600080fd5b506102286102ad3660046116d6565b610778565b3480156102be57600080fd5b5061024a6102cd366004611721565b6107e1565b3480156102de57600080fd5b50600e546102f2906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561031657600080fd5b50610228610894565b34801561032b57600080fd5b50604051601281526020016101ff565b34801561034757600080fd5b5061028460055481565b34801561035d57600080fd5b50600b546102f2906001600160a01b031681565b34801561037d57600080fd5b5061028460065481565b34801561039357600080fd5b5061028460085481565b3480156103a957600080fd5b506102286103b8366004611762565b610af8565b3480156103c957600080fd5b50610228610b59565b3480156103de57600080fd5b506102846103ed36600461177b565b6001600160a01b031660009081526001602052604090205490565b34801561041457600080fd5b50610228610bbf565b34801561042957600080fd5b506000546001600160a01b03166102f2565b34801561044757600080fd5b506040805180820190915260038152622720ab60e91b60208201526101f2565b34801561047357600080fd5b5061024a6104823660046116aa565b610c33565b34801561049357600080fd5b50600c546102f2906001600160a01b031681565b3480156104b357600080fd5b5061028460095481565b3480156104c957600080fd5b50600d546102f2906001600160a01b031681565b3480156104e957600080fd5b506102846104f836600461179f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561052f57600080fd5b5061022861053e3660046116aa565b610c40565b34801561054f57600080fd5b5061022861055e3660046117d8565b610c86565b34801561056f57600080fd5b5061022861057e36600461177b565b610d19565b6000546001600160a01b031633146105b65760405162461bcd60e51b81526004016105ad906117fa565b60405180910390fd5b601e8111156105ff5760405162461bcd60e51b815260206004820152601560248201527463616e2774206265206d6f7265207468616e20332560581b60448201526064016105ad565b600a606461060e601283611929565b61061c906301f78a40611938565b610626919061194f565b610630919061194f565b61063a9084611938565b600655600a606461064c601283611929565b61065a906301f78a40611938565b610664919061194f565b61066e919061194f565b6106789083611938565b600555600a606461068a601283611929565b610698906301f78a40611938565b6106a2919061194f565b6106ac919061194f565b6106b69082611938565b600455505050565b60006106cb338484610d4f565b5060015b92915050565b6000546001600160a01b031633146106ff5760405162461bcd60e51b81526004016105ad906117fa565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461074c576040519150601f19603f3d011682016040523d82523d6000602084013e610751565b606091505b50505050565b60006107656012600a611929565b610773906301f78a40611938565b905090565b6000546001600160a01b031633146107a25760405162461bcd60e51b81526004016105ad906117fa565b600c80546001600160a01b039485166001600160a01b031991821617909155600d805493851693821693909317909255600e8054919093169116179055565b60006107ee848484610e73565b6001600160a01b03841660009081526002602090815260408083203384529091529020546000198114610889578281101561087c5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105ad565b6108898533858403610d4f565b506001949350505050565b6000546001600160a01b031633146108be5760405162461bcd60e51b81526004016105ad906117fa565b600e54600160a01b900460ff16156109185760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ad565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561097c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a09190611971565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a269190611971565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190611971565b600b80546001600160a01b0319166001600160a01b03928316179055600a8054610adf923092911690610acc90601290611929565b610ada906301f78a40611938565b610d4f565b600e805460ff60a01b1916600160a01b17905543600755565b6000546001600160a01b03163314610b225760405162461bcd60e51b81526004016105ad906117fa565b30600090815260016020526040812054906064610b3f8385611938565b610b49919061194f565b9050610b54816111a3565b505050565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016105ad906117fa565b610b8f6012600a611929565b610b9d906301f78a40611938565b600555610bac6012600a611929565b610bba906301f78a40611938565b600655565b6000546001600160a01b03163314610be95760405162461bcd60e51b81526004016105ad906117fa565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106cb338484610e73565b6000546001600160a01b03163314610c6a5760405162461bcd60e51b81526004016105ad906117fa565b6001600160a01b03909116600090815260036020526040902055565b6000546001600160a01b03163314610cb05760405162461bcd60e51b81526004016105ad906117fa565b60638211158015610cc2575060638111155b610d0e5760405162461bcd60e51b815260206004820152601760248201527f5461782063616e6e6f7420626520696e6372656173656400000000000000000060448201526064016105ad565b600891909155600955565b6000546001600160a01b03163314610d435760405162461bcd60e51b81526004016105ad906117fa565b610d4c81611453565b50565b6001600160a01b038316610db15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ad565b6001600160a01b038216610e125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ad565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ad565b60008111610f275760405162461bcd60e51b815260206004820152601c60248201527f45524332303a206e6f20746f6b656e73207472616e736665727265640000000060448201526064016105ad565b6001600160a01b038316600090815260036020526040812054158015610f6357506001600160a01b038316600090815260036020526040902054155b1561119757600e54600160a01b900460ff16610fb45760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016105ad565b6005548211156110065760405162461bcd60e51b815260206004820152601760248201527f4d6178547820456e61626c6564206174206c61756e636800000000000000000060448201526064016105ad565b600b546001600160a01b0384811691161480159061102f57506001600160a01b03831661dead14155b156110af5760065482611057856001600160a01b031660009081526001602052604090205490565b611061919061198e565b11156110af5760405162461bcd60e51b815260206004820152601b60248201527f4d617857616c6c657420456e61626c6564206174206c61756e6368000000000060448201526064016105ad565b6007546110bd90600361198e565b4310156110ed57600b546001600160a01b038581169116146110e05760196110e3565b60145b60ff169050611197565b600b546001600160a01b039081169085160361110c5750600854611197565b600b546001600160a01b03908116908416036111975730600090815260016020526040902054601460646111426012600a611929565b611150906301f78a40611938565b61115a919061194f565b611164919061194f565b811115611191576004548382111561117a578391505b80821115611186578091505b61118f826111a3565b505b50506009545b61075184848484611513565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111d8576111d86119a1565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611971565b81600181518110611268576112686119a1565b6001600160a01b039283166020918202929092010152600a5461128e9130911684610d4f565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c79085906000908690309042906004016119b7565b600060405180830381600087803b1580156112e157600080fd5b505af11580156112f5573d6000803e3d6000fd5b50505050600080606447603261130b9190611938565b611315919061194f565b905060006064611326476019611938565b611330919061194f565b905060006064611341476019611938565b61134b919061194f565b600c546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611399576040519150601f19603f3d011682016040523d82523d6000602084013e61139e565b606091505b5050600d546040519195506001600160a01b0316908390600081818185875af1925050503d80600081146113ee576040519150601f19603f3d011682016040523d82523d6000602084013e6113f3565b606091505b5050600e546040519195506001600160a01b0316908290600081818185875af1925050503d8060008114611443576040519150601f19603f3d011682016040523d82523d6000602084013e611448565b606091505b505050505050505050565b6001600160a01b0381166114b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ad565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060646115218385611938565b61152b919061194f565b905060006115398285611a28565b6001600160a01b038716600090815260016020526040902054909150611560908590611a28565b6001600160a01b03808816600090815260016020526040808220939093559087168152205461159090829061198e565b6001600160a01b0386166000908152600160205260408082209290925530815220546115bd90839061198e565b3060009081526001602090815260409182902092909255518281526001600160a01b0387811692908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050565b600060208083528351808285015260005b818110156116485785810183015185820160400152820161162c565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561167e57600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610d4c57600080fd5b600080604083850312156116bd57600080fd5b82356116c881611695565b946020939093013593505050565b6000806000606084860312156116eb57600080fd5b83356116f681611695565b9250602084013561170681611695565b9150604084013561171681611695565b809150509250925092565b60008060006060848603121561173657600080fd5b833561174181611695565b9250602084013561175181611695565b929592945050506040919091013590565b60006020828403121561177457600080fd5b5035919050565b60006020828403121561178d57600080fd5b813561179881611695565b9392505050565b600080604083850312156117b257600080fd5b82356117bd81611695565b915060208301356117cd81611695565b809150509250929050565b600080604083850312156117eb57600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118805781600019048211156118665761186661182f565b8085161561187357918102915b93841c939080029061184a565b509250929050565b600082611897575060016106cf565b816118a4575060006106cf565b81600181146118ba57600281146118c4576118e0565b60019150506106cf565b60ff8411156118d5576118d561182f565b50506001821b6106cf565b5060208310610133831016604e8410600b8410161715611903575081810a6106cf565b61190d8383611845565b80600019048211156119215761192161182f565b029392505050565b600061179860ff841683611888565b80820281158282048414176106cf576106cf61182f565b60008261196c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561198357600080fd5b815161179881611695565b808201808211156106cf576106cf61182f565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a075784516001600160a01b0316835293830193918301916001016119e2565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156106cf576106cf61182f56fea264697066735822122077af14c35041f08daf7b59a1ab9c1997cc58ddcb2942c2ddc3af4bc72a52f9dc64736f6c63430008140033

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.