ETH Price: $3,253.43 (+4.44%)
Gas: 2 Gwei

Contract

0xd5A7Fc729FFBB0B2d06d7574f0Bf532f97e1B5a6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve190465952024-01-20 7:31:11188 days ago1705735871IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0003634915
Approve184541262023-10-29 6:42:35271 days ago1698561755IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.000458779.862433
Approve182164202023-09-26 0:36:35304 days ago1695688595IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.000341287.33680618
Approve181839142023-09-21 11:20:35309 days ago1695295235IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0006221713.37519177
Approve181697802023-09-19 11:52:47311 days ago1695124367IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005794312.44040156
Approve181692732023-09-19 10:10:11311 days ago1695118211IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.000581112.4762315
Approve181692712023-09-19 10:09:47311 days ago1695118187IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005331411.46136651
Approve181692412023-09-19 10:03:47311 days ago1695117827IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005219511.22079912
Approve181692382023-09-19 10:03:11311 days ago1695117791IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005712212.26409905
Approve181692362023-09-19 10:02:47311 days ago1695117767IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0004705310.10225747
Approve181692312023-09-19 10:01:47311 days ago1695117707IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.000443569.60243891
Approve181692202023-09-19 9:59:23311 days ago1695117563IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005946712.76752012
Approve181692182023-09-19 9:58:59311 days ago1695117539IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0006715114.42105481
Approve181692172023-09-19 9:58:47311 days ago1695117527IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005859412.5801856
Approve181692172023-09-19 9:58:47311 days ago1695117527IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0006789214.5801856
Approve181692102023-09-19 9:57:23311 days ago1695117443IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005861112.6
Approve181692062023-09-19 9:56:35311 days ago1695117395IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0006133813.16934013
Approve181692012023-09-19 9:55:35311 days ago1695117335IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.000674514.57912407
Approve181691982023-09-19 9:54:59311 days ago1695117299IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0007116915.27988491
Approve181691962023-09-19 9:54:35311 days ago1695117275IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0006096413.19441954
Approve181691922023-09-19 9:53:47311 days ago1695117227IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0008617218.50113778
Approve181691912023-09-19 9:53:35311 days ago1695117215IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005702112.34093448
Approve181691752023-09-19 9:50:23311 days ago1695117023IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005628612.08767083
Approve181691562023-09-19 9:46:35311 days ago1695116795IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0005306611.40798401
Approve181691492023-09-19 9:45:11311 days ago1695116711IN
0xd5A7Fc72...f97e1B5a6
0 ETH0.0006472913.9009521
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
184541282023-10-29 6:42:59271 days ago1698561779
0xd5A7Fc72...f97e1B5a6
0.00005899 ETH
184541282023-10-29 6:42:59271 days ago1698561779
0xd5A7Fc72...f97e1B5a6
0.00005899 ETH
183069742023-10-08 16:33:23292 days ago1696782803
0xd5A7Fc72...f97e1B5a6
0.00004124 ETH
183069742023-10-08 16:33:23292 days ago1696782803
0xd5A7Fc72...f97e1B5a6
0.00004124 ETH
183045792023-10-08 8:29:23292 days ago1696753763
0xd5A7Fc72...f97e1B5a6
0.00004263 ETH
183045792023-10-08 8:29:23292 days ago1696753763
0xd5A7Fc72...f97e1B5a6
0.00004263 ETH
183045792023-10-08 8:29:23292 days ago1696753763
0xd5A7Fc72...f97e1B5a6
0.00004729 ETH
183045792023-10-08 8:29:23292 days ago1696753763
0xd5A7Fc72...f97e1B5a6
0.00004729 ETH
183045792023-10-08 8:29:23292 days ago1696753763
0xd5A7Fc72...f97e1B5a6
0.00037446 ETH
183045792023-10-08 8:29:23292 days ago1696753763
0xd5A7Fc72...f97e1B5a6
0.00037446 ETH
182164222023-09-26 0:36:59304 days ago1695688619
0xd5A7Fc72...f97e1B5a6
0.00034773 ETH
182164222023-09-26 0:36:59304 days ago1695688619
0xd5A7Fc72...f97e1B5a6
0.00034773 ETH
181839152023-09-21 11:20:59309 days ago1695295259
0xd5A7Fc72...f97e1B5a6
0.00003854 ETH
181839152023-09-21 11:20:59309 days ago1695295259
0xd5A7Fc72...f97e1B5a6
0.00003854 ETH
181733782023-09-19 23:57:23310 days ago1695167843
0xd5A7Fc72...f97e1B5a6
0.00025421 ETH
181733782023-09-19 23:57:23310 days ago1695167843
0xd5A7Fc72...f97e1B5a6
0.00025421 ETH
181708852023-09-19 15:35:11311 days ago1695137711
0xd5A7Fc72...f97e1B5a6
0.00000002 ETH
181708852023-09-19 15:35:11311 days ago1695137711
0xd5A7Fc72...f97e1B5a6
0.00000002 ETH
181708322023-09-19 15:24:35311 days ago1695137075
0xd5A7Fc72...f97e1B5a6
0.00016203 ETH
181708322023-09-19 15:24:35311 days ago1695137075
0xd5A7Fc72...f97e1B5a6
0.00016203 ETH
181704912023-09-19 14:15:59311 days ago1695132959
0xd5A7Fc72...f97e1B5a6
0.00009734 ETH
181704912023-09-19 14:15:59311 days ago1695132959
0xd5A7Fc72...f97e1B5a6
0.00009734 ETH
181702202023-09-19 13:21:11311 days ago1695129671
0xd5A7Fc72...f97e1B5a6
0.00161215 ETH
181702202023-09-19 13:21:11311 days ago1695129671
0xd5A7Fc72...f97e1B5a6
0.00161215 ETH
181701402023-09-19 13:05:11311 days ago1695128711
0xd5A7Fc72...f97e1B5a6
0.00000002 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MPHIL

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 1 : main
// SPDX-License-Identifier: MIT
/**

TELEGRAM: https://t.me/MphilErc20
WEBSITE: https://mphil.live
TWITTER: https://twitter.com/MphilErc20


**/
pragma solidity 0.8.20;

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

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 MPHIL 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 => bool) private _buyerMap;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"M&M DR PHILL";
    string private constant _symbol = unicode"MPHIL";
    uint256 public _maxTxAmount =   1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=0 * 10**_decimals;
    uint256 public _maxTaxSwap=500000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

    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;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
                _buyerMap[to]=true;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
                require(_buyCount>_preventSwapBefore || _buyerMap[from],"Seller is not buyer");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), 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()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    
    
    
}

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

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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"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"}]

60806040526007805460ff1916905560196008908155601e6009556001600a818155600b829055600c919091556028600d819055600e555f600f5562000046919062000340565b6200005590620f424062000357565b601055620000666008600a62000340565b6200007590621e848062000357565b601155620000866008600a62000340565b62000092905f62000357565b601255620000a36008600a62000340565b620000b2906207a12062000357565b6013556015805461ffff60a81b19169055348015620000cf575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060078054610100600160a81b0319166101003302179055620001356008600a62000340565b62000145906305f5e10062000357565b335f9081526001602081905260408220929092556003906200016e5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556007546101009004909116835291208054909216179055620001d13390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020a6008600a62000340565b6200021a906305f5e10062000357565b60405190815260200160405180910390a362000371565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028557815f190482111562000269576200026962000231565b808516156200027757918102915b93841c93908002906200024a565b509250929050565b5f826200029d575060016200033a565b81620002ab57505f6200033a565b8160018114620002c45760028114620002cf57620002ef565b60019150506200033a565b60ff841115620002e357620002e362000231565b50506001821b6200033a565b5060208310610133831016604e8410600b841016171562000314575081810a6200033a565b62000320838362000245565b805f190482111562000336576200033662000231565b0290505b92915050565b5f6200035060ff8416836200028d565b9392505050565b80820281158282048414176200033a576200033a62000231565b61195c806200037f5f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610335578063bf474bed14610354578063c876d0b914610369578063c9567bf914610382578063dd62ed3e14610396575f80fd5b8063751039fc146102a45780637d1db4a5146102b85780638da5cb5b146102cd5780638f9a55c0146102f357806395d89b4114610308575f80fd5b8063313ce567116100e3578063313ce567146101f45780633bbac5791461020f57806351bc3c851461024657806370a082311461025c578063715018a614610290575f80fd5b806306fdde0314610129578063095ea7b31461016f5780630faee56f1461019e57806318160ddd146101c157806323b872dd146101d5575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600c81526b13499348111488141212531360a21b60208201525b604051610166919061154f565b60405180910390f35b34801561017a575f80fd5b5061018e6101893660046115b1565b6103da565b6040519015158152602001610166565b3480156101a9575f80fd5b506101b360135481565b604051908152602001610166565b3480156101cc575f80fd5b506101b36103f0565b3480156101e0575f80fd5b5061018e6101ef3660046115db565b610410565b3480156101ff575f80fd5b5060405160088152602001610166565b34801561021a575f80fd5b5061018e610229366004611619565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610251575f80fd5b5061025a610477565b005b348015610267575f80fd5b506101b3610276366004611619565b6001600160a01b03165f9081526001602052604090205490565b34801561029b575f80fd5b5061025a6104cd565b3480156102af575f80fd5b5061025a610547565b3480156102c3575f80fd5b506101b360105481565b3480156102d8575f80fd5b505f546040516001600160a01b039091168152602001610166565b3480156102fe575f80fd5b506101b360115481565b348015610313575f80fd5b50604080518082019091526005815264135412125360da1b6020820152610159565b348015610340575f80fd5b5061018e61034f3660046115b1565b610602565b34801561035f575f80fd5b506101b360125481565b348015610374575f80fd5b5060075461018e9060ff1681565b34801561038d575f80fd5b5061025a61060e565b3480156103a1575f80fd5b506101b36103b0366004611634565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103e63384846109b7565b5060015b92915050565b5f6103fd6008600a61175f565b61040b906305f5e10061176d565b905090565b5f61041c848484610ada565b61046d8433610468856040518060600160405280602881526020016118ff602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111ae565b6109b7565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b03161461049b575f80fd5b305f9081526001602052604090205480156104b9576104b9816111e6565b4780156104c9576104c98161136f565b5050565b5f546001600160a01b031633146104ff5760405162461bcd60e51b81526004016104f690611784565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105705760405162461bcd60e51b81526004016104f690611784565b61057c6008600a61175f565b61058a906305f5e10061176d565b6010556105996008600a61175f565b6105a7906305f5e10061176d565b6011556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105e16008600a61175f565b6105ef906305f5e10061176d565b60405190815260200160405180910390a1565b5f6103e6338484610ada565b5f546001600160a01b031633146106375760405162461bcd60e51b81526004016104f690611784565b601554600160a01b900460ff16156106915760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f6565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106da9030906106cc6008600a61175f565b610468906305f5e10061176d565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074e91906117b9565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d191906117b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561081b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083f91906117b9565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610886816001600160a01b03165f9081526001602052604090205490565b5f806108995f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ff573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061092491906117d4565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610979573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099d91906117ff565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a195760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f6565b6001600160a01b038216610a7a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f6565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b3e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f6565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f6565b5f8111610c015760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f6565b5f80546001600160a01b03858116911614801590610c2c57505f546001600160a01b03848116911614155b15611071576001600160a01b0384165f9081526005602052604090205460ff16158015610c7157506001600160a01b0383165f9081526005602052604090205460ff16155b610c79575f80fd5b60075460ff1615610d30576014546001600160a01b03848116911614801590610cb057506015546001600160a01b03848116911614155b15610d3057325f908152600660205260409020544311610d1e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104f6565b325f9081526006602052604090204390555b6015546001600160a01b038581169116148015610d5b57506014546001600160a01b03848116911614155b8015610d7f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e9a57601054821115610dd25760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104f6565b60115482610df4856001600160a01b03165f9081526001602052604090205490565b610dfe919061181e565b1115610e4c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f6565b600e54600f541015610e6357823b15610e63575f80fd5b600f8054905f610e7283611831565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b610ec66064610ec0600c54600f5411610eb557600854610eb9565b600a545b85906113aa565b9061142f565b6015549091506001600160a01b038481169116148015610eef57506001600160a01b0384163014155b15610fd457601054821115610f425760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104f6565b610f676064610ec0600d54600f5411610f5d57600954610eb9565b600b5485906113aa565b9050600e54600f541180610f9257506001600160a01b0384165f9081526004602052604090205460ff165b610fd45760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b60448201526064016104f6565b305f90815260016020526040902054601554600160a81b900460ff1615801561100a57506015546001600160a01b038581169116145b801561101f5750601554600160b01b900460ff165b801561102c575060125481115b801561103b5750600e54600f54115b1561106f5761105d6110588461105384601354611470565b611470565b6111e6565b47801561106d5761106d4761136f565b505b505b80156110e957305f908152600160205260409020546110909082611484565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e09085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461110b90836114e2565b6001600160a01b0385165f9081526001602052604090205561114e61113083836114e2565b6001600160a01b0385165f9081526001602052604090205490611484565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61119785856114e2565b60405190815260200160405180910390a350505050565b5f81848411156111d15760405162461bcd60e51b81526004016104f6919061154f565b505f6111dd8486611849565b95945050505050565b6015805460ff60a81b1916600160a81b179055801561135f57601554600160a01b900460ff161561135f576040805160028082526060820183525f9260208301908036833701905050905030815f815181106112445761124461185c565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf91906117b9565b816001815181106112d2576112d261185c565b6001600160a01b0392831660209182029290920101526014546112f891309116846109b7565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113309085905f90869030904290600401611870565b5f604051808303815f87803b158015611347575f80fd5b505af1158015611359573d5f803e3d5ffd5b50505050505b506015805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104c9573d5f803e3d5ffd5b5f825f036113b957505f6103ea565b5f6113c4838561176d565b9050826113d185836118df565b146114285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f6565b9392505050565b5f61142883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611523565b5f81831161147e5782611428565b50919050565b5f80611490838561181e565b9050838110156114285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f6565b5f61142883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ae565b5f81836115435760405162461bcd60e51b81526004016104f6919061154f565b505f6111dd84866118df565b5f6020808352835180828501525f5b8181101561157a5785810183015185820160400152820161155e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115ae575f80fd5b50565b5f80604083850312156115c2575f80fd5b82356115cd8161159a565b946020939093013593505050565b5f805f606084860312156115ed575f80fd5b83356115f88161159a565b925060208401356116088161159a565b929592945050506040919091013590565b5f60208284031215611629575f80fd5b81356114288161159a565b5f8060408385031215611645575f80fd5b82356116508161159a565b915060208301356116608161159a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116b957815f190482111561169f5761169f61166b565b808516156116ac57918102915b93841c9390800290611684565b509250929050565b5f826116cf575060016103ea565b816116db57505f6103ea565b81600181146116f157600281146116fb57611717565b60019150506103ea565b60ff84111561170c5761170c61166b565b50506001821b6103ea565b5060208310610133831016604e8410600b841016171561173a575081810a6103ea565b611744838361167f565b805f19048211156117575761175761166b565b029392505050565b5f61142860ff8416836116c1565b80820281158282048414176103ea576103ea61166b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156117c9575f80fd5b81516114288161159a565b5f805f606084860312156117e6575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561180f575f80fd5b81518015158114611428575f80fd5b808201808211156103ea576103ea61166b565b5f600182016118425761184261166b565b5060010190565b818103818111156103ea576103ea61166b565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118be5784516001600160a01b031683529383019391830191600101611899565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118f957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122056fcf0a2e8303b337979f8a0d096ee121fe14bbd76612f130ce41bc0bcbd7a6d64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610335578063bf474bed14610354578063c876d0b914610369578063c9567bf914610382578063dd62ed3e14610396575f80fd5b8063751039fc146102a45780637d1db4a5146102b85780638da5cb5b146102cd5780638f9a55c0146102f357806395d89b4114610308575f80fd5b8063313ce567116100e3578063313ce567146101f45780633bbac5791461020f57806351bc3c851461024657806370a082311461025c578063715018a614610290575f80fd5b806306fdde0314610129578063095ea7b31461016f5780630faee56f1461019e57806318160ddd146101c157806323b872dd146101d5575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600c81526b13499348111488141212531360a21b60208201525b604051610166919061154f565b60405180910390f35b34801561017a575f80fd5b5061018e6101893660046115b1565b6103da565b6040519015158152602001610166565b3480156101a9575f80fd5b506101b360135481565b604051908152602001610166565b3480156101cc575f80fd5b506101b36103f0565b3480156101e0575f80fd5b5061018e6101ef3660046115db565b610410565b3480156101ff575f80fd5b5060405160088152602001610166565b34801561021a575f80fd5b5061018e610229366004611619565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610251575f80fd5b5061025a610477565b005b348015610267575f80fd5b506101b3610276366004611619565b6001600160a01b03165f9081526001602052604090205490565b34801561029b575f80fd5b5061025a6104cd565b3480156102af575f80fd5b5061025a610547565b3480156102c3575f80fd5b506101b360105481565b3480156102d8575f80fd5b505f546040516001600160a01b039091168152602001610166565b3480156102fe575f80fd5b506101b360115481565b348015610313575f80fd5b50604080518082019091526005815264135412125360da1b6020820152610159565b348015610340575f80fd5b5061018e61034f3660046115b1565b610602565b34801561035f575f80fd5b506101b360125481565b348015610374575f80fd5b5060075461018e9060ff1681565b34801561038d575f80fd5b5061025a61060e565b3480156103a1575f80fd5b506101b36103b0366004611634565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103e63384846109b7565b5060015b92915050565b5f6103fd6008600a61175f565b61040b906305f5e10061176d565b905090565b5f61041c848484610ada565b61046d8433610468856040518060600160405280602881526020016118ff602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111ae565b6109b7565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b03161461049b575f80fd5b305f9081526001602052604090205480156104b9576104b9816111e6565b4780156104c9576104c98161136f565b5050565b5f546001600160a01b031633146104ff5760405162461bcd60e51b81526004016104f690611784565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105705760405162461bcd60e51b81526004016104f690611784565b61057c6008600a61175f565b61058a906305f5e10061176d565b6010556105996008600a61175f565b6105a7906305f5e10061176d565b6011556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105e16008600a61175f565b6105ef906305f5e10061176d565b60405190815260200160405180910390a1565b5f6103e6338484610ada565b5f546001600160a01b031633146106375760405162461bcd60e51b81526004016104f690611784565b601554600160a01b900460ff16156106915760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f6565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106da9030906106cc6008600a61175f565b610468906305f5e10061176d565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074e91906117b9565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d191906117b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561081b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083f91906117b9565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610886816001600160a01b03165f9081526001602052604090205490565b5f806108995f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108ff573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061092491906117d4565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610979573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099d91906117ff565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a195760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f6565b6001600160a01b038216610a7a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f6565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b3e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f6565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f6565b5f8111610c015760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f6565b5f80546001600160a01b03858116911614801590610c2c57505f546001600160a01b03848116911614155b15611071576001600160a01b0384165f9081526005602052604090205460ff16158015610c7157506001600160a01b0383165f9081526005602052604090205460ff16155b610c79575f80fd5b60075460ff1615610d30576014546001600160a01b03848116911614801590610cb057506015546001600160a01b03848116911614155b15610d3057325f908152600660205260409020544311610d1e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104f6565b325f9081526006602052604090204390555b6015546001600160a01b038581169116148015610d5b57506014546001600160a01b03848116911614155b8015610d7f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e9a57601054821115610dd25760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104f6565b60115482610df4856001600160a01b03165f9081526001602052604090205490565b610dfe919061181e565b1115610e4c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f6565b600e54600f541015610e6357823b15610e63575f80fd5b600f8054905f610e7283611831565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b610ec66064610ec0600c54600f5411610eb557600854610eb9565b600a545b85906113aa565b9061142f565b6015549091506001600160a01b038481169116148015610eef57506001600160a01b0384163014155b15610fd457601054821115610f425760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104f6565b610f676064610ec0600d54600f5411610f5d57600954610eb9565b600b5485906113aa565b9050600e54600f541180610f9257506001600160a01b0384165f9081526004602052604090205460ff165b610fd45760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b60448201526064016104f6565b305f90815260016020526040902054601554600160a81b900460ff1615801561100a57506015546001600160a01b038581169116145b801561101f5750601554600160b01b900460ff165b801561102c575060125481115b801561103b5750600e54600f54115b1561106f5761105d6110588461105384601354611470565b611470565b6111e6565b47801561106d5761106d4761136f565b505b505b80156110e957305f908152600160205260409020546110909082611484565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e09085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461110b90836114e2565b6001600160a01b0385165f9081526001602052604090205561114e61113083836114e2565b6001600160a01b0385165f9081526001602052604090205490611484565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61119785856114e2565b60405190815260200160405180910390a350505050565b5f81848411156111d15760405162461bcd60e51b81526004016104f6919061154f565b505f6111dd8486611849565b95945050505050565b6015805460ff60a81b1916600160a81b179055801561135f57601554600160a01b900460ff161561135f576040805160028082526060820183525f9260208301908036833701905050905030815f815181106112445761124461185c565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf91906117b9565b816001815181106112d2576112d261185c565b6001600160a01b0392831660209182029290920101526014546112f891309116846109b7565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113309085905f90869030904290600401611870565b5f604051808303815f87803b158015611347575f80fd5b505af1158015611359573d5f803e3d5ffd5b50505050505b506015805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104c9573d5f803e3d5ffd5b5f825f036113b957505f6103ea565b5f6113c4838561176d565b9050826113d185836118df565b146114285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f6565b9392505050565b5f61142883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611523565b5f81831161147e5782611428565b50919050565b5f80611490838561181e565b9050838110156114285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f6565b5f61142883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111ae565b5f81836115435760405162461bcd60e51b81526004016104f6919061154f565b505f6111dd84866118df565b5f6020808352835180828501525f5b8181101561157a5785810183015185820160400152820161155e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115ae575f80fd5b50565b5f80604083850312156115c2575f80fd5b82356115cd8161159a565b946020939093013593505050565b5f805f606084860312156115ed575f80fd5b83356115f88161159a565b925060208401356116088161159a565b929592945050506040919091013590565b5f60208284031215611629575f80fd5b81356114288161159a565b5f8060408385031215611645575f80fd5b82356116508161159a565b915060208301356116608161159a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116b957815f190482111561169f5761169f61166b565b808516156116ac57918102915b93841c9390800290611684565b509250929050565b5f826116cf575060016103ea565b816116db57505f6103ea565b81600181146116f157600281146116fb57611717565b60019150506103ea565b60ff84111561170c5761170c61166b565b50506001821b6103ea565b5060208310610133831016604e8410600b841016171561173a575081810a6103ea565b611744838361167f565b805f19048211156117575761175761166b565b029392505050565b5f61142860ff8416836116c1565b80820281158282048414176103ea576103ea61166b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156117c9575f80fd5b81516114288161159a565b5f805f606084860312156117e6575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561180f575f80fd5b81518015158114611428575f80fd5b808201808211156103ea576103ea61166b565b5f600182016118425761184261166b565b5060010190565b818103818111156103ea576103ea61166b565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118be5784516001600160a01b031683529383019391830191600101611899565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118f957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122056fcf0a2e8303b337979f8a0d096ee121fe14bbd76612f130ce41bc0bcbd7a6d64736f6c63430008140033

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.