ETH Price: $2,444.24 (+1.78%)

Contract

0x6D84640bb6A89C8C193aA3BA065E4FC6D1BC542C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer207846652024-09-19 12:33:2322 days ago1726749203IN
0x6D84640b...6D1BC542C
0 ETH0.0009290716.07927382
Approve196560372024-04-14 20:03:59180 days ago1713125039IN
0x6D84640b...6D1BC542C
0 ETH0.0004716910.19541093
Approve195812352024-04-04 8:33:23191 days ago1712219603IN
0x6D84640b...6D1BC542C
0 ETH0.0007902916.98930701
Approve195018192024-03-24 3:43:47202 days ago1711251827IN
0x6D84640b...6D1BC542C
0 ETH0.0006691114.38422687
Approve195009212024-03-24 0:42:35202 days ago1711240955IN
0x6D84640b...6D1BC542C
0 ETH0.0007809916.78953756
Approve195006612024-03-23 23:49:59202 days ago1711237799IN
0x6D84640b...6D1BC542C
0 ETH0.0007440615.99564775
Approve194990942024-03-23 18:30:11202 days ago1711218611IN
0x6D84640b...6D1BC542C
0 ETH0.0010054421.6145605
Approve194988662024-03-23 17:44:23202 days ago1711215863IN
0x6D84640b...6D1BC542C
0 ETH0.0010449422.46366121
Approve194988532024-03-23 17:41:47202 days ago1711215707IN
0x6D84640b...6D1BC542C
0 ETH0.0009133319.60904312
Approve194986332024-03-23 16:57:11202 days ago1711213031IN
0x6D84640b...6D1BC542C
0 ETH0.0006086820.91339971
Approve194981012024-03-23 15:09:59202 days ago1711206599IN
0x6D84640b...6D1BC542C
0 ETH0.0012436726.73601519
Approve194980362024-03-23 14:56:59202 days ago1711205819IN
0x6D84640b...6D1BC542C
0 ETH0.001175925.24655004
Approve194979502024-03-23 14:39:35202 days ago1711204775IN
0x6D84640b...6D1BC542C
0 ETH0.0005885222.3732045
Approve194979422024-03-23 14:37:59202 days ago1711204679IN
0x6D84640b...6D1BC542C
0 ETH0.0010521122.77058782
Approve194975162024-03-23 13:12:23202 days ago1711199543IN
0x6D84640b...6D1BC542C
0 ETH0.0009845621.13837083
Approve194973062024-03-23 12:29:47202 days ago1711196987IN
0x6D84640b...6D1BC542C
0 ETH0.0009316720.02875089
Approve194966722024-03-23 10:21:47202 days ago1711189307IN
0x6D84640b...6D1BC542C
0 ETH0.0007730416.59720068
Approve194965612024-03-23 9:58:59202 days ago1711187939IN
0x6D84640b...6D1BC542C
0 ETH0.0007632516.40804086
Approve194963572024-03-23 9:17:47203 days ago1711185467IN
0x6D84640b...6D1BC542C
0 ETH0.000987121.22021782
Transfer194957462024-03-23 7:14:59203 days ago1711178099IN
0x6D84640b...6D1BC542C
0 ETH0.000693117.9185468
Approve194955802024-03-23 6:41:35203 days ago1711176095IN
0x6D84640b...6D1BC542C
0 ETH0.0011411124.62649585
Approve194955532024-03-23 6:36:11203 days ago1711175771IN
0x6D84640b...6D1BC542C
0 ETH0.0008012217.34057701
Approve194954362024-03-23 6:12:47203 days ago1711174367IN
0x6D84640b...6D1BC542C
0 ETH0.0009043919.41722192
Approve194952092024-03-23 5:27:23203 days ago1711171643IN
0x6D84640b...6D1BC542C
0 ETH0.0009056819.47008029
Approve194951522024-03-23 5:15:35203 days ago1711170935IN
0x6D84640b...6D1BC542C
0 ETH0.0008205717.64023812
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
195812362024-04-04 8:33:35191 days ago1712219615
0x6D84640b...6D1BC542C
0.00003318 ETH
195812362024-04-04 8:33:35191 days ago1712219615
0x6D84640b...6D1BC542C
0.00003318 ETH
195083702024-03-25 1:53:11201 days ago1711331591
0x6D84640b...6D1BC542C
0.00020327 ETH
195083702024-03-25 1:53:11201 days ago1711331591
0x6D84640b...6D1BC542C
0.00020327 ETH
195038612024-03-24 10:38:35201 days ago1711276715
0x6D84640b...6D1BC542C
0.00044383 ETH
195038612024-03-24 10:38:35201 days ago1711276715
0x6D84640b...6D1BC542C
0.00044383 ETH
195018242024-03-24 3:44:47202 days ago1711251887
0x6D84640b...6D1BC542C
0.00019791 ETH
195018242024-03-24 3:44:47202 days ago1711251887
0x6D84640b...6D1BC542C
0.00019791 ETH
195009242024-03-24 0:43:11202 days ago1711240991
0x6D84640b...6D1BC542C
0.0001694 ETH
195009242024-03-24 0:43:11202 days ago1711240991
0x6D84640b...6D1BC542C
0.0001694 ETH
195006632024-03-23 23:50:23202 days ago1711237823
0x6D84640b...6D1BC542C
0.0000903 ETH
195006632024-03-23 23:50:23202 days ago1711237823
0x6D84640b...6D1BC542C
0.0000903 ETH
194995732024-03-23 20:07:59202 days ago1711224479
0x6D84640b...6D1BC542C
0.00026088 ETH
194995732024-03-23 20:07:59202 days ago1711224479
0x6D84640b...6D1BC542C
0.00026088 ETH
194991552024-03-23 18:43:11202 days ago1711219391
0x6D84640b...6D1BC542C
0.00031674 ETH
194991552024-03-23 18:43:11202 days ago1711219391
0x6D84640b...6D1BC542C
0.00031674 ETH
194990962024-03-23 18:30:35202 days ago1711218635
0x6D84640b...6D1BC542C
0.00003142 ETH
194990962024-03-23 18:30:35202 days ago1711218635
0x6D84640b...6D1BC542C
0.00003142 ETH
194988632024-03-23 17:43:47202 days ago1711215827
0x6D84640b...6D1BC542C
0.00017029 ETH
194988632024-03-23 17:43:47202 days ago1711215827
0x6D84640b...6D1BC542C
0.00017029 ETH
194988532024-03-23 17:41:47202 days ago1711215707
0x6D84640b...6D1BC542C
0.00048284 ETH
194988532024-03-23 17:41:47202 days ago1711215707
0x6D84640b...6D1BC542C
0.00048284 ETH
194987372024-03-23 17:18:35202 days ago1711214315
0x6D84640b...6D1BC542C
0.00034801 ETH
194987372024-03-23 17:18:35202 days ago1711214315
0x6D84640b...6D1BC542C
0.00034801 ETH
194986822024-03-23 17:07:11202 days ago1711213631
0x6D84640b...6D1BC542C
0.00024084 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WTF

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv2.1 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-23
*/

// SPDX-License-Identifier: None
/**
WTF do we have launching here?
Tg: https://t.me/WTF_Wat_Teh_Fuk

Twitter: https://x.com/wattehfukwtf
**/
pragma solidity ^0.8.19;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint 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);
}
contract WTF is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint256) private _boughtAt;
    mapping (address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _devWallet;
    uint256 private _lastSwap=0;
    bool private _noSecondSwap=false;
    uint256 private _startBuyTax=30;
    uint256 private _startSellTax=30;
    uint256 private _finalBuyTax=10;
    uint256 private _finalSellTax=10;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _noSwapBefore=30;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 8;
    uint256 private constant _totalSupply = 10000000 * 10**_decimals;
    string private constant _name = unicode"Wat Teh Fuk";
    string private constant _symbol = unicode"WTF";
    uint256 public _maxTxAmount =   100000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000 * 10**_decimals;
    uint256 public _taxSwapThreshold=0 * 10**_decimals;
    uint256 public _maxTaxSwap=200000 * 10**_decimals;
    IUniswapV2Router02 private _router;
    address private _pair;
    bool private _tradingOpen;
    bool private _inSwap = false;
    bool private _swapEnabled = false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor () {
        _devWallet = payable(_msgSender());
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = true;
        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 _balances[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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        bool shouldSwap=true;
        if (from != owner() && to != owner()) {
            
            taxAmount=amount.mul((_tradingOpen)?0:_startBuyTax).div(100);
            if (transferDelayEnabled) {
              if (to != address(_router) && to != address(_pair)) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                _holderLastTransferTimestamp[tx.origin] = block.number;
              }
            }

            if (from == _pair && to != address(_router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_noSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
                _boughtAt[to]=block.timestamp;
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_startBuyTax).div(100);
            }
            if(to == _pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_startSellTax).div(100);
                if(_boughtAt[from]==block.timestamp||_boughtAt[from]==0){
                  shouldSwap=false;
                }
                if(_noSecondSwap&& _lastSwap==block.number){
                  shouldSwap=false;
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!_inSwap && to == _pair && _swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_noSwapBefore && shouldSwap) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                    _lastSwap=block.number;
                }
            }
        }
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!_tradingOpen){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();
        _approve(address(this), address(_router), tokenAmount);
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function removeLimits() external onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletSize=_totalSupply;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_totalSupply);
    }
    function sendETHToFee(uint256 amount) private {
        _devWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!_tradingOpen,"trading is already open");
        _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(_router), _totalSupply);
        IUniswapV2Factory factory=IUniswapV2Factory(_router.factory());
        _pair = factory.getPair(address(this),_router.WETH());
        if(_pair==address(0x0)){
          _pair = factory.createPair(address(this), _router.WETH());
        }
        _router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(_pair).approve(address(_router), type(uint).max);
        _swapEnabled = true;
        _tradingOpen = true;
    }
    receive() external payable {}
    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
    function manualSwap() external {
        require(_msgSender()==_devWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    
    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_devWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff199081166001179091555f6007819055600880549092168255601e6009819055600a818155600b819055600c819055600d829055600e829055600f919091556010919091556200005b919062000353565b6200006a90620186a06200036a565b6011556200007b6008600a62000353565b6200008a9062030d406200036a565b6012556200009b6008600a62000353565b620000a7905f6200036a565b601355620000b86008600a62000353565b620000c79062030d406200036a565b6014556016805461ffff60a81b19169055348015620000e4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191661010033021790556200014a6008600a62000353565b6200015990629896806200036a565b335f908152600160208190526040822092909255600390620001825f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001e53390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021e6008600a62000353565b6200022d90629896806200036a565b60405190815260200160405180910390a362000384565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029857815f19048211156200027c576200027c62000244565b808516156200028a57918102915b93841c93908002906200025d565b509250929050565b5f82620002b0575060016200034d565b81620002be57505f6200034d565b8160018114620002d75760028114620002e25762000302565b60019150506200034d565b60ff841115620002f657620002f662000244565b50506001821b6200034d565b5060208310610133831016604e8410600b841016171562000327575081810a6200034d565b62000333838362000258565b805f190482111562000349576200034962000244565b0290505b92915050565b5f6200036360ff841683620002a0565b9392505050565b80820281158282048414176200034d576200034d62000244565b611ab480620003925f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461031a578063c876d0b91461032f578063c9567bf914610348578063dd62ed3e1461035c578063ec1f3f63146103a0575f80fd5b80637d1db4a5146102805780638da5cb5b146102955780638f9a55c0146102bb57806395d89b41146102d0578063a9059cbb146102fb575f80fd5b8063313ce567116100e3578063313ce567146101f357806351bc3c851461020e57806370a0823114610224578063715018a614610258578063751039fc1461026c575f80fd5b806306fdde0314610129578063095ea7b31461016e5780630faee56f1461019d57806318160ddd146101c057806323b872dd146101d4575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600b81526a576174205465682046756b60a81b60208201525b604051610165919061168d565b60405180910390f35b348015610179575f80fd5b5061018d6101883660046116f0565b6103bf565b6040519015158152602001610165565b3480156101a8575f80fd5b506101b260145481565b604051908152602001610165565b3480156101cb575f80fd5b506101b26103d5565b3480156101df575f80fd5b5061018d6101ee36600461171a565b6103f4565b3480156101fe575f80fd5b5060405160088152602001610165565b348015610219575f80fd5b5061022261045b565b005b34801561022f575f80fd5b506101b261023e366004611758565b6001600160a01b03165f9081526001602052604090205490565b348015610263575f80fd5b506102226104b1565b348015610277575f80fd5b5061022261052b565b34801561028b575f80fd5b506101b260115481565b3480156102a0575f80fd5b505f546040516001600160a01b039091168152602001610165565b3480156102c6575f80fd5b506101b260125481565b3480156102db575f80fd5b506040805180820190915260038152622baa2360e91b6020820152610158565b348015610306575f80fd5b5061018d6103153660046116f0565b6105e3565b348015610325575f80fd5b506101b260135481565b34801561033a575f80fd5b5060065461018d9060ff1681565b348015610353575f80fd5b506102226105ef565b348015610367575f80fd5b506101b2610376366004611773565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ab575f80fd5b506102226103ba3660046117aa565b610ab1565b5f6103cb338484610afb565b5060015b92915050565b5f6103e26008600a6118b5565b6103ef90629896806118c3565b905090565b5f610400848484610c1e565b610451843361044c85604051806060016040528060288152602001611a57602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112ec565b610afb565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461047f575f80fd5b305f90815260016020526040902054801561049d5761049d81611324565b4780156104ad576104ad816114ad565b5050565b5f546001600160a01b031633146104e35760405162461bcd60e51b81526004016104da906118da565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105545760405162461bcd60e51b81526004016104da906118da565b6105606008600a6118b5565b61056d90629896806118c3565b60115561057c6008600a6118b5565b61058990629896806118c3565b6012556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c36008600a6118b5565b6105d090629896806118c3565b60405190815260200160405180910390a1565b5f6103cb338484610c1e565b5f546001600160a01b031633146106185760405162461bcd60e51b81526004016104da906118da565b601654600160a01b900460ff16156106725760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104da565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ba9030906106ad6008600a6118b5565b61044c90629896806118c3565b6015546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610701573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610725919061190f565b9050806001600160a01b031663e6a439053060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061190f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156107f4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610818919061190f565b601680546001600160a01b0319166001600160a01b0392909216918217905561094e57806001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf919061190f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610909573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092d919061190f565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d719473061097f816001600160a01b03165f9081526001602052604090205490565b5f806109925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109f8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a1d919061192a565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a969190611955565b50506016805462ff00ff60a01b19166201000160a01b179055565b60065461010090046001600160a01b0316336001600160a01b031614610ad5575f80fd5b600b548111158015610ae95750600c548111155b610af1575f80fd5b600b819055600c55565b6001600160a01b038316610b5d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104da565b6001600160a01b038216610bbe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104da565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c825760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104da565b6001600160a01b038216610ce45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104da565b5f8111610d455760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104da565b5f6001610d595f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610d8757505f546001600160a01b03858116911614155b156111ae57610dbf6064610db9601660149054906101000a900460ff16610db057600954610db2565b5f5b86906114e8565b9061156d565b60065490925060ff1615610e79576015546001600160a01b03858116911614801590610df957506016546001600160a01b03858116911614155b15610e7957325f908152600560205260409020544311610e675760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104da565b325f9081526005602052604090204390555b6016546001600160a01b038681169116148015610ea457506015546001600160a01b03858116911614155b8015610ec857506001600160a01b0384165f9081526003602052604090205460ff16155b1561100557601154831115610f1b5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b60125483610f3d866001600160a01b03165f9081526001602052604090205490565b610f479190611974565b1115610f955760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104da565b600f546010541015610fac57833b15610fac575f80fd5b60108054905f610fbb83611987565b90915550506001600160a01b0384165f908152600460205260409020429055600d5460105461100291606491610db99110610ff857600954610db2565b600b5486906114e8565b91505b6016546001600160a01b03858116911614801561102b57506001600160a01b0385163014155b156111035760115483111561107e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b6110a36064610db9600e546010541161109957600a54610db2565b600c5486906114e8565b6001600160a01b0386165f908152600460205260409020549092504214806110e057506001600160a01b0385165f90815260046020526040902054155b156110e857505f5b60085460ff1680156110fb575043600754145b1561110357505f5b305f90815260016020526040902054601654600160a81b900460ff1615801561113957506016546001600160a01b038681169116145b801561114e5750601654600160b01b900460ff165b801561115b575060135481115b801561116a5750600f54601054115b80156111735750815b156111ac576111956111908561118b846014546115ae565b6115ae565b611324565b4780156111aa576111a5476114ad565b436007555b505b505b811561122657305f908152600160205260409020546111cd90836115c2565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121d9086815260200190565b60405180910390a35b6001600160a01b0385165f908152600160205260409020546112489084611620565b6001600160a01b0386165f9081526001602052604090205561128b61126d8484611620565b6001600160a01b0386165f90815260016020526040902054906115c2565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112d48686611620565b60405190815260200160405180910390a35050505050565b5f818484111561130f5760405162461bcd60e51b81526004016104da919061168d565b505f61131b848661199f565b95945050505050565b6016805460ff60a81b1916600160a81b179055801561149d57601654600160a01b900460ff161561149d576040805160028082526060820183525f9260208301908036833701905050905030815f81518110611382576113826119b2565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fd919061190f565b81600181518110611410576114106119b2565b6001600160a01b0392831660209182029290920101526015546114369130911684610afb565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061146e9085905f908690309042906004016119c6565b5f604051808303815f87803b158015611485575f80fd5b505af1158015611497573d5f803e3d5ffd5b50505050505b506016805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104ad573d5f803e3d5ffd5b5f825f036114f757505f6103cf565b5f61150283856118c3565b90508261150f8583611a37565b146115665760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104da565b9392505050565b5f61156683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611661565b5f8183116115bc5782611566565b50919050565b5f806115ce8385611974565b9050838110156115665760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104da565b5f61156683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ec565b5f81836116815760405162461bcd60e51b81526004016104da919061168d565b505f61131b8486611a37565b5f602080835283518060208501525f5b818110156116b95785810183015185820160400152820161169d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116ed575f80fd5b50565b5f8060408385031215611701575f80fd5b823561170c816116d9565b946020939093013593505050565b5f805f6060848603121561172c575f80fd5b8335611737816116d9565b92506020840135611747816116d9565b929592945050506040919091013590565b5f60208284031215611768575f80fd5b8135611566816116d9565b5f8060408385031215611784575f80fd5b823561178f816116d9565b9150602083013561179f816116d9565b809150509250929050565b5f602082840312156117ba575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180f57815f19048211156117f5576117f56117c1565b8085161561180257918102915b93841c93908002906117da565b509250929050565b5f82611825575060016103cf565b8161183157505f6103cf565b816001811461184757600281146118515761186d565b60019150506103cf565b60ff841115611862576118626117c1565b50506001821b6103cf565b5060208310610133831016604e8410600b8410161715611890575081810a6103cf565b61189a83836117d5565b805f19048211156118ad576118ad6117c1565b029392505050565b5f61156660ff841683611817565b80820281158282048414176103cf576103cf6117c1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191f575f80fd5b8151611566816116d9565b5f805f6060848603121561193c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611965575f80fd5b81518015158114611566575f80fd5b808201808211156103cf576103cf6117c1565b5f60018201611998576119986117c1565b5060010190565b818103818111156103cf576103cf6117c1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a165784516001600160a01b0316835293830193918301916001016119f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a5157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206ed43cfac7940c9954d3bd77f261f291e6d9cc27e822657c27ceca5b9e75fe6764736f6c63430008170033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed1461031a578063c876d0b91461032f578063c9567bf914610348578063dd62ed3e1461035c578063ec1f3f63146103a0575f80fd5b80637d1db4a5146102805780638da5cb5b146102955780638f9a55c0146102bb57806395d89b41146102d0578063a9059cbb146102fb575f80fd5b8063313ce567116100e3578063313ce567146101f357806351bc3c851461020e57806370a0823114610224578063715018a614610258578063751039fc1461026c575f80fd5b806306fdde0314610129578063095ea7b31461016e5780630faee56f1461019d57806318160ddd146101c057806323b872dd146101d4575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600b81526a576174205465682046756b60a81b60208201525b604051610165919061168d565b60405180910390f35b348015610179575f80fd5b5061018d6101883660046116f0565b6103bf565b6040519015158152602001610165565b3480156101a8575f80fd5b506101b260145481565b604051908152602001610165565b3480156101cb575f80fd5b506101b26103d5565b3480156101df575f80fd5b5061018d6101ee36600461171a565b6103f4565b3480156101fe575f80fd5b5060405160088152602001610165565b348015610219575f80fd5b5061022261045b565b005b34801561022f575f80fd5b506101b261023e366004611758565b6001600160a01b03165f9081526001602052604090205490565b348015610263575f80fd5b506102226104b1565b348015610277575f80fd5b5061022261052b565b34801561028b575f80fd5b506101b260115481565b3480156102a0575f80fd5b505f546040516001600160a01b039091168152602001610165565b3480156102c6575f80fd5b506101b260125481565b3480156102db575f80fd5b506040805180820190915260038152622baa2360e91b6020820152610158565b348015610306575f80fd5b5061018d6103153660046116f0565b6105e3565b348015610325575f80fd5b506101b260135481565b34801561033a575f80fd5b5060065461018d9060ff1681565b348015610353575f80fd5b506102226105ef565b348015610367575f80fd5b506101b2610376366004611773565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ab575f80fd5b506102226103ba3660046117aa565b610ab1565b5f6103cb338484610afb565b5060015b92915050565b5f6103e26008600a6118b5565b6103ef90629896806118c3565b905090565b5f610400848484610c1e565b610451843361044c85604051806060016040528060288152602001611a57602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112ec565b610afb565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461047f575f80fd5b305f90815260016020526040902054801561049d5761049d81611324565b4780156104ad576104ad816114ad565b5050565b5f546001600160a01b031633146104e35760405162461bcd60e51b81526004016104da906118da565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105545760405162461bcd60e51b81526004016104da906118da565b6105606008600a6118b5565b61056d90629896806118c3565b60115561057c6008600a6118b5565b61058990629896806118c3565b6012556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c36008600a6118b5565b6105d090629896806118c3565b60405190815260200160405180910390a1565b5f6103cb338484610c1e565b5f546001600160a01b031633146106185760405162461bcd60e51b81526004016104da906118da565b601654600160a01b900460ff16156106725760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104da565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ba9030906106ad6008600a6118b5565b61044c90629896806118c3565b6015546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610701573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610725919061190f565b9050806001600160a01b031663e6a439053060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610787573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ab919061190f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156107f4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610818919061190f565b601680546001600160a01b0319166001600160a01b0392909216918217905561094e57806001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bf919061190f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610909573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092d919061190f565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d719473061097f816001600160a01b03165f9081526001602052604090205490565b5f806109925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109f8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a1d919061192a565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a969190611955565b50506016805462ff00ff60a01b19166201000160a01b179055565b60065461010090046001600160a01b0316336001600160a01b031614610ad5575f80fd5b600b548111158015610ae95750600c548111155b610af1575f80fd5b600b819055600c55565b6001600160a01b038316610b5d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104da565b6001600160a01b038216610bbe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104da565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c825760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104da565b6001600160a01b038216610ce45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104da565b5f8111610d455760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104da565b5f6001610d595f546001600160a01b031690565b6001600160a01b0316856001600160a01b031614158015610d8757505f546001600160a01b03858116911614155b156111ae57610dbf6064610db9601660149054906101000a900460ff16610db057600954610db2565b5f5b86906114e8565b9061156d565b60065490925060ff1615610e79576015546001600160a01b03858116911614801590610df957506016546001600160a01b03858116911614155b15610e7957325f908152600560205260409020544311610e675760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104da565b325f9081526005602052604090204390555b6016546001600160a01b038681169116148015610ea457506015546001600160a01b03858116911614155b8015610ec857506001600160a01b0384165f9081526003602052604090205460ff16155b1561100557601154831115610f1b5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b60125483610f3d866001600160a01b03165f9081526001602052604090205490565b610f479190611974565b1115610f955760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104da565b600f546010541015610fac57833b15610fac575f80fd5b60108054905f610fbb83611987565b90915550506001600160a01b0384165f908152600460205260409020429055600d5460105461100291606491610db99110610ff857600954610db2565b600b5486906114e8565b91505b6016546001600160a01b03858116911614801561102b57506001600160a01b0385163014155b156111035760115483111561107e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b6110a36064610db9600e546010541161109957600a54610db2565b600c5486906114e8565b6001600160a01b0386165f908152600460205260409020549092504214806110e057506001600160a01b0385165f90815260046020526040902054155b156110e857505f5b60085460ff1680156110fb575043600754145b1561110357505f5b305f90815260016020526040902054601654600160a81b900460ff1615801561113957506016546001600160a01b038681169116145b801561114e5750601654600160b01b900460ff165b801561115b575060135481115b801561116a5750600f54601054115b80156111735750815b156111ac576111956111908561118b846014546115ae565b6115ae565b611324565b4780156111aa576111a5476114ad565b436007555b505b505b811561122657305f908152600160205260409020546111cd90836115c2565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061121d9086815260200190565b60405180910390a35b6001600160a01b0385165f908152600160205260409020546112489084611620565b6001600160a01b0386165f9081526001602052604090205561128b61126d8484611620565b6001600160a01b0386165f90815260016020526040902054906115c2565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112d48686611620565b60405190815260200160405180910390a35050505050565b5f818484111561130f5760405162461bcd60e51b81526004016104da919061168d565b505f61131b848661199f565b95945050505050565b6016805460ff60a81b1916600160a81b179055801561149d57601654600160a01b900460ff161561149d576040805160028082526060820183525f9260208301908036833701905050905030815f81518110611382576113826119b2565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fd919061190f565b81600181518110611410576114106119b2565b6001600160a01b0392831660209182029290920101526015546114369130911684610afb565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061146e9085905f908690309042906004016119c6565b5f604051808303815f87803b158015611485575f80fd5b505af1158015611497573d5f803e3d5ffd5b50505050505b506016805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104ad573d5f803e3d5ffd5b5f825f036114f757505f6103cf565b5f61150283856118c3565b90508261150f8583611a37565b146115665760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104da565b9392505050565b5f61156683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611661565b5f8183116115bc5782611566565b50919050565b5f806115ce8385611974565b9050838110156115665760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104da565b5f61156683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ec565b5f81836116815760405162461bcd60e51b81526004016104da919061168d565b505f61131b8486611a37565b5f602080835283518060208501525f5b818110156116b95785810183015185820160400152820161169d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116ed575f80fd5b50565b5f8060408385031215611701575f80fd5b823561170c816116d9565b946020939093013593505050565b5f805f6060848603121561172c575f80fd5b8335611737816116d9565b92506020840135611747816116d9565b929592945050506040919091013590565b5f60208284031215611768575f80fd5b8135611566816116d9565b5f8060408385031215611784575f80fd5b823561178f816116d9565b9150602083013561179f816116d9565b809150509250929050565b5f602082840312156117ba575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180f57815f19048211156117f5576117f56117c1565b8085161561180257918102915b93841c93908002906117da565b509250929050565b5f82611825575060016103cf565b8161183157505f6103cf565b816001811461184757600281146118515761186d565b60019150506103cf565b60ff841115611862576118626117c1565b50506001821b6103cf565b5060208310610133831016604e8410600b8410161715611890575081810a6103cf565b61189a83836117d5565b805f19048211156118ad576118ad6117c1565b029392505050565b5f61156660ff841683611817565b80820281158282048414176103cf576103cf6117c1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191f575f80fd5b8151611566816116d9565b5f805f6060848603121561193c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611965575f80fd5b81518015158114611566575f80fd5b808201808211156103cf576103cf6117c1565b5f60018201611998576119986117c1565b5060010190565b818103818111156103cf576103cf6117c1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a165784516001600160a01b0316835293830193918301916001016119f1565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a5157634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206ed43cfac7940c9954d3bd77f261f291e6d9cc27e822657c27ceca5b9e75fe6764736f6c63430008170033

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.