ETH Price: $3,285.70 (-9.67%)

Contract

0xfa88000AbC07252f359815D1897B1383140c36d6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214073132024-12-15 10:26:355 days ago1734258395IN
0xfa88000A...3140c36d6
0 ETH0.000309366.68456041
Transfer214072752024-12-15 10:18:595 days ago1734257939IN
0xfa88000A...3140c36d6
0 ETH0.000416946.73013912
Approve213271782024-12-04 5:54:3516 days ago1733291675IN
0xfa88000A...3140c36d6
0 ETH0.0008446318.13267136
Approve213053112024-12-01 4:36:3519 days ago1733027795IN
0xfa88000A...3140c36d6
0 ETH0.000379448.14590934
Approve211490412024-11-09 8:56:2341 days ago1731142583IN
0xfa88000A...3140c36d6
0 ETH0.0006308113.54233598
Approve210998772024-11-02 12:12:2348 days ago1730549543IN
0xfa88000A...3140c36d6
0 ETH0.00022244.77463434
Approve210831582024-10-31 4:13:3550 days ago1730348015IN
0xfa88000A...3140c36d6
0 ETH0.0003438112.89183782
Approve210831582024-10-31 4:13:3550 days ago1730348015IN
0xfa88000A...3140c36d6
0 ETH0.0006003512.89183782
Approve210573332024-10-27 13:42:4754 days ago1730036567IN
0xfa88000A...3140c36d6
0 ETH0.000393448.49907564
Approve210569812024-10-27 12:31:3554 days ago1730032295IN
0xfa88000A...3140c36d6
0 ETH0.000317846.82340025
Approve210569532024-10-27 12:25:5954 days ago1730031959IN
0xfa88000A...3140c36d6
0 ETH0.000295846.35123475
Approve210458952024-10-25 23:23:4755 days ago1729898627IN
0xfa88000A...3140c36d6
0 ETH0.0011770525.26889608
Approve210383802024-10-24 22:14:4756 days ago1729808087IN
0xfa88000A...3140c36d6
0 ETH0.0004635710.02958505
Approve210378962024-10-24 20:37:3556 days ago1729802255IN
0xfa88000A...3140c36d6
0 ETH0.000560712.04030191
Approve210015792024-10-19 19:02:3561 days ago1729364555IN
0xfa88000A...3140c36d6
0 ETH0.000377218.10842068
Approve209977242024-10-19 6:08:1162 days ago1729318091IN
0xfa88000A...3140c36d6
0 ETH0.000369337.92881443
Approve209831392024-10-17 5:17:1164 days ago1729142231IN
0xfa88000A...3140c36d6
0 ETH0.000403958.67208693
Approve209809482024-10-16 21:56:4764 days ago1729115807IN
0xfa88000A...3140c36d6
0 ETH0.0005366611.53602634
Approve209737402024-10-15 21:47:1165 days ago1729028831IN
0xfa88000A...3140c36d6
0 ETH0.0006614814.20075829
Approve209699802024-10-15 9:10:1166 days ago1728983411IN
0xfa88000A...3140c36d6
0 ETH0.0008814819.06620062
Approve209698572024-10-15 8:45:1166 days ago1728981911IN
0xfa88000A...3140c36d6
0 ETH0.0006047212.99893719
Approve209696922024-10-15 8:11:4766 days ago1728979907IN
0xfa88000A...3140c36d6
0 ETH0.00058812.63956452
Approve209688092024-10-15 5:14:4766 days ago1728969287IN
0xfa88000A...3140c36d6
0 ETH0.0005874712.62806569
Approve209674882024-10-15 0:48:5966 days ago1728953339IN
0xfa88000A...3140c36d6
0 ETH0.000649413.95940466
Approve209670942024-10-14 23:29:5966 days ago1728948599IN
0xfa88000A...3140c36d6
0 ETH0.000661614.22171385
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
209589672024-10-13 20:13:4767 days ago1728850427
0xfa88000A...3140c36d6
0.18354974 ETH
209589672024-10-13 20:13:4767 days ago1728850427
0xfa88000A...3140c36d6
0.18354974 ETH
209589612024-10-13 20:12:3567 days ago1728850355
0xfa88000A...3140c36d6
0.05643687 ETH
209589612024-10-13 20:12:3567 days ago1728850355
0xfa88000A...3140c36d6
0.05643687 ETH
209589562024-10-13 20:11:3567 days ago1728850295
0xfa88000A...3140c36d6
0.01615704 ETH
209589562024-10-13 20:11:3567 days ago1728850295
0xfa88000A...3140c36d6
0.01615704 ETH
209589502024-10-13 20:10:2367 days ago1728850223
0xfa88000A...3140c36d6
0.02549795 ETH
209589502024-10-13 20:10:2367 days ago1728850223
0xfa88000A...3140c36d6
0.02549795 ETH
209589482024-10-13 20:09:5967 days ago1728850199
0xfa88000A...3140c36d6
0.02549313 ETH
209589482024-10-13 20:09:5967 days ago1728850199
0xfa88000A...3140c36d6
0.02549313 ETH
209589432024-10-13 20:08:5967 days ago1728850139
0xfa88000A...3140c36d6
0.04470571 ETH
209589432024-10-13 20:08:5967 days ago1728850139
0xfa88000A...3140c36d6
0.04470571 ETH
209589372024-10-13 20:07:4767 days ago1728850067
0xfa88000A...3140c36d6
0.02628334 ETH
209589372024-10-13 20:07:4767 days ago1728850067
0xfa88000A...3140c36d6
0.02628334 ETH
209589372024-10-13 20:07:4767 days ago1728850067
0xfa88000A...3140c36d6
0.05108672 ETH
209589372024-10-13 20:07:4767 days ago1728850067
0xfa88000A...3140c36d6
0.05108672 ETH
209589362024-10-13 20:07:3567 days ago1728850055
0xfa88000A...3140c36d6
0.06509109 ETH
209589362024-10-13 20:07:3567 days ago1728850055
0xfa88000A...3140c36d6
0.06509109 ETH
209589332024-10-13 20:06:5967 days ago1728850019
0xfa88000A...3140c36d6
0.04351928 ETH
209589332024-10-13 20:06:5967 days ago1728850019
0xfa88000A...3140c36d6
0.04351928 ETH
209589332024-10-13 20:06:5967 days ago1728850019
0xfa88000A...3140c36d6
0.04326563 ETH
209589332024-10-13 20:06:5967 days ago1728850019
0xfa88000A...3140c36d6
0.04326563 ETH
209589322024-10-13 20:06:4767 days ago1728850007
0xfa88000A...3140c36d6
0.04484948 ETH
209589322024-10-13 20:06:4767 days ago1728850007
0xfa88000A...3140c36d6
0.04484948 ETH
209589322024-10-13 20:06:4767 days ago1728850007
0xfa88000A...3140c36d6
0.04874091 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KEK

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : KEK.sol
/*

The cult of $KEK is calling you

WEB: https://thecultofkek.xyz
TG: https://t.me/thecultofkeketh
X: https://x.com/cultofkeketh

*/


// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.23;

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 KEK 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;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=27;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=35;
    uint256 private _preventSwapBefore=23;
    uint256 private _transferTax=70;
    uint256 private _buyCount=0;
    uint144 public smth1=123;
    uint152 public smth5=3;
    uint144 public smth9=23;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Cult of KEK";
    string private constant _symbol = unicode"KEK";
    uint256 public _maxTxAmount = 8400000000 * 10**_decimals;
    uint256 public _maxWalletSize = 8400000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4200000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 6300000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    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() && to != _taxWallet) {

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = 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 {
        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;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        if (IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this)) == address(0)) {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        }
        else {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this));
        }
        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;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0 && swapEnabled){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"smth1","outputs":[{"internalType":"uint144","name":"","type":"uint144"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"smth5","outputs":[{"internalType":"uint152","name":"","type":"uint152"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"smth9","outputs":[{"internalType":"uint144","name":"","type":"uint144"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526019600555601b600655600060078190556008819055600160099081556023600a9081556017600b8190556046600c55600d93909355600e80546001600160901b0319908116607b17909155600f80546001600160981b0319166003179055601080549091169093179092556200007b916200038d565b6200008c906401f4add400620003a5565b6011556200009d6009600a6200038d565b620000ae906401f4add400620003a5565b601255620000bf6009600a6200038d565b620000cf9063fa56ea00620003a5565b601355620000e06009600a6200038d565b620000f190640177825f00620003a5565b6014556016805461ffff60a81b19169055600060178190556018553480156200011957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556200017b6009600a6200038d565b6200018c906461f313f880620003a5565b336000908152600160208190526040822092909255600390620001b76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620002163390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002506009600a6200038d565b62000261906461f313f880620003a5565b60405190815260200160405180910390a3620003bf565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002cf578160001904821115620002b357620002b362000278565b80851615620002c157918102915b93841c939080029062000293565b509250929050565b600082620002e85750600162000387565b81620002f75750600062000387565b81600181146200031057600281146200031b576200033b565b600191505062000387565b60ff8411156200032f576200032f62000278565b50506001821b62000387565b5060208310610133831016604e8410600b841016171562000360575081810a62000387565b6200036c83836200028e565b806000190482111562000383576200038362000278565b0290505b92915050565b60006200039e60ff841683620002d7565b9392505050565b808202811582820484141762000387576200038762000278565b611e9580620003cf6000396000f3fe60806040526004361061014f5760003560e01c80638cd4426d116100b6578063c8e82d431161006f578063c8e82d43146103a8578063c9567bf9146103e0578063d611771b146103f5578063dcdde8c214610415578063dd62ed3e1461044d578063ec1f3f631461049357600080fd5b80638cd4426d146102e85780638da5cb5b146103085780638f9a55c01461033057806395d89b4114610346578063a9059cbb14610372578063bf474bed1461039257600080fd5b8063313ce56711610108578063313ce5671461024157806351bc3c851461025d57806370a0823114610272578063715018a6146102a8578063751039fc146102bd5780637d1db4a5146102d257600080fd5b806306fdde031461015b578063095ea7b3146101a15780630faee56f146101d1578063109daa99146101f557806318160ddd1461020c57806323b872dd1461022157600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600b81526a43756c74206f66204b454b60a81b60208201525b6040516101989190611a2f565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611a96565b6104b3565b6040519015158152602001610198565b3480156101dd57600080fd5b506101e760145481565b604051908152602001610198565b34801561020157600080fd5b5061020a6104ca565b005b34801561021857600080fd5b506101e761053a565b34801561022d57600080fd5b506101c161023c366004611ac2565b61055c565b34801561024d57600080fd5b5060405160098152602001610198565b34801561026957600080fd5b5061020a6105c5565b34801561027e57600080fd5b506101e761028d366004611b03565b6001600160a01b031660009081526001602052604090205490565b3480156102b457600080fd5b5061020a61062f565b3480156102c957600080fd5b5061020a6106a3565b3480156102de57600080fd5b506101e760115481565b3480156102f457600080fd5b5061020a610303366004611a96565b610753565b34801561031457600080fd5b506000546040516001600160a01b039091168152602001610198565b34801561033c57600080fd5b506101e760125481565b34801561035257600080fd5b506040805180820190915260038152624b454b60e81b602082015261018b565b34801561037e57600080fd5b506101c161038d366004611a96565b610884565b34801561039e57600080fd5b506101e760135481565b3480156103b457600080fd5b506010546103c8906001600160901b031681565b6040516001600160901b039091168152602001610198565b3480156103ec57600080fd5b5061020a610891565b34801561040157600080fd5b50600e546103c8906001600160901b031681565b34801561042157600080fd5b50600f54610435906001600160981b031681565b6040516001600160981b039091168152602001610198565b34801561045957600080fd5b506101e7610468366004611b20565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049f57600080fd5b5061020a6104ae366004611b59565b610f57565b60006104c0338484610f9e565b5060015b92915050565b6000546001600160a01b031633146104fd5760405162461bcd60e51b81526004016104f490611b72565b60405180910390fd5b6000600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b60006105486009600a611ca1565b610557906461f313f880611cb0565b905090565b60006105698484846110c2565b6105bb84336105b685604051806060016040528060288152602001611e38602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611692565b610f9e565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146105e557600080fd5b30600090815260016020526040902054801580159061060d5750601654600160b01b900460ff165b1561061b5761061b816116cc565b47801561062b5761062b81611846565b5050565b6000546001600160a01b031633146106595760405162461bcd60e51b81526004016104f490611b72565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106cd5760405162461bcd60e51b81526004016104f490611b72565b6106d96009600a611ca1565b6106e8906461f313f880611cb0565b6011556106f76009600a611ca1565b610706906461f313f880611cb0565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107366009600a611ca1565b610745906461f313f880611cb0565b604051908152602001610530565b6000546001600160a01b0316331461077d5760405162461bcd60e51b81526004016104f490611b72565b6040516370a0823160e01b8152306004820152600090610801906064906107fb9085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f59190611cc7565b90611880565b90611909565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303816000875af115801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e9190611ce0565b50505050565b60006104c03384846110c2565b6000546001600160a01b031633146108bb5760405162461bcd60e51b81526004016104f490611b72565b601654600160a01b900460ff16156109155760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f4565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561095f9030906109506009600a611ca1565b6105b6906461f313f880611cb0565b6015546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa1580156109a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cd9190611d02565b6001600160a01b031663e6a43905601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190611d02565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611d02565b6001600160a01b031603610c6157601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611d02565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb9190611d02565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190611d02565b601680546001600160a01b0319166001600160a01b0392909216919091179055610dec565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd89190611d02565b6001600160a01b031663e6a43905601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190611d02565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcb9190611d02565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d7194730610e1e816001600160a01b031660009081526001602052604090205490565b600080610e336000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e9b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ec09190611d1f565b505060165460155460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190611ce0565b506016805462ff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610f7757600080fd5b6007548111158015610f8b57506008548111155b610f9457600080fd5b6007819055600855565b6001600160a01b0383166110005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166110615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b0382166111885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b600081116111ea5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f4565b600080546001600160a01b0385811691161480159061121757506000546001600160a01b03848116911614155b801561123157506004546001600160a01b03848116911614155b1561154f57600d546000036112695761126660646107fb600954600d541161125b5760055461125f565b6007545b8590611880565b90505b600d541561128e5761128b60646107fb600c548561188090919063ffffffff16565b90505b6016546001600160a01b0385811691161480156112b957506015546001600160a01b03848116911614155b80156112de57506001600160a01b03831660009081526003602052604090205460ff16155b156113e3576011548211156113355760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f4565b60125482611358856001600160a01b031660009081526001602052604090205490565b6113629190611d4d565b11156113b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f4565b6113cb60646107fb600954600d541161125b5760055461125f565b600d805491925060006113dd83611d60565b91905055505b6016546001600160a01b03848116911614801561140957506001600160a01b0384163014155b156114365761143360646107fb600a54600d54116114295760065461125f565b6008548590611880565b90505b30600090815260016020526040902054601654600160a81b900460ff1615801561146d57506016546001600160a01b038581169116145b80156114825750601654600160b01b900460ff165b801561148f575060135481115b801561149e5750600b54600d54115b1561154d576018544311156114b35760006017555b6003601754106115055760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104f4565b61152261151d846115188460145461194b565b61194b565b6116cc565b4780156115325761153247611846565b6017805490600061154283611d60565b909155505043601855505b505b80156115c9573060009081526001602052604090205461156f9082611960565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115c09085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546115ec90836119bf565b6001600160a01b03851660009081526001602052604090205561163161161283836119bf565b6001600160a01b03851660009081526001602052604090205490611960565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61167b85856119bf565b60405190815260200160405180910390a350505050565b600081848411156116b65760405162461bcd60e51b81526004016104f49190611a2f565b5060006116c38486611d79565b95945050505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061171457611714611d8c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190611d02565b816001815181106117a4576117a4611d8c565b6001600160a01b0392831660209182029290920101526015546117ca9130911684610f9e565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611803908590600090869030904290600401611da2565b600060405180830381600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561062b573d6000803e3d6000fd5b600082600003611892575060006104c4565b600061189e8385611cb0565b9050826118ab8583611e15565b146119025760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f4565b9392505050565b600061190283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a01565b600081831161195a5782611902565b50919050565b60008061196d8385611d4d565b9050838110156119025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f4565b600061190283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611692565b60008183611a225760405162461bcd60e51b81526004016104f49190611a2f565b5060006116c38486611e15565b60006020808352835180602085015260005b81811015611a5d57858101830151858201604001528201611a41565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a9357600080fd5b50565b60008060408385031215611aa957600080fd5b8235611ab481611a7e565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b8335611ae281611a7e565b92506020840135611af281611a7e565b929592945050506040919091013590565b600060208284031215611b1557600080fd5b813561190281611a7e565b60008060408385031215611b3357600080fd5b8235611b3e81611a7e565b91506020830135611b4e81611a7e565b809150509250929050565b600060208284031215611b6b57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bf8578160001904821115611bde57611bde611ba7565b80851615611beb57918102915b93841c9390800290611bc2565b509250929050565b600082611c0f575060016104c4565b81611c1c575060006104c4565b8160018114611c325760028114611c3c57611c58565b60019150506104c4565b60ff841115611c4d57611c4d611ba7565b50506001821b6104c4565b5060208310610133831016604e8410600b8410161715611c7b575081810a6104c4565b611c858383611bbd565b8060001904821115611c9957611c99611ba7565b029392505050565b600061190260ff841683611c00565b80820281158282048414176104c4576104c4611ba7565b600060208284031215611cd957600080fd5b5051919050565b600060208284031215611cf257600080fd5b8151801515811461190257600080fd5b600060208284031215611d1457600080fd5b815161190281611a7e565b600080600060608486031215611d3457600080fd5b8351925060208401519150604084015190509250925092565b808201808211156104c4576104c4611ba7565b600060018201611d7257611d72611ba7565b5060010190565b818103818111156104c4576104c4611ba7565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b81811015611df45784516001600160a01b031683529383019391830191600101611dcf565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611e3257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1fffa872baa355fd61c1f03b4ae2a9c5e8667eda9e05f68c2e44ce46497c8fd64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638cd4426d116100b6578063c8e82d431161006f578063c8e82d43146103a8578063c9567bf9146103e0578063d611771b146103f5578063dcdde8c214610415578063dd62ed3e1461044d578063ec1f3f631461049357600080fd5b80638cd4426d146102e85780638da5cb5b146103085780638f9a55c01461033057806395d89b4114610346578063a9059cbb14610372578063bf474bed1461039257600080fd5b8063313ce56711610108578063313ce5671461024157806351bc3c851461025d57806370a0823114610272578063715018a6146102a8578063751039fc146102bd5780637d1db4a5146102d257600080fd5b806306fdde031461015b578063095ea7b3146101a15780630faee56f146101d1578063109daa99146101f557806318160ddd1461020c57806323b872dd1461022157600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600b81526a43756c74206f66204b454b60a81b60208201525b6040516101989190611a2f565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611a96565b6104b3565b6040519015158152602001610198565b3480156101dd57600080fd5b506101e760145481565b604051908152602001610198565b34801561020157600080fd5b5061020a6104ca565b005b34801561021857600080fd5b506101e761053a565b34801561022d57600080fd5b506101c161023c366004611ac2565b61055c565b34801561024d57600080fd5b5060405160098152602001610198565b34801561026957600080fd5b5061020a6105c5565b34801561027e57600080fd5b506101e761028d366004611b03565b6001600160a01b031660009081526001602052604090205490565b3480156102b457600080fd5b5061020a61062f565b3480156102c957600080fd5b5061020a6106a3565b3480156102de57600080fd5b506101e760115481565b3480156102f457600080fd5b5061020a610303366004611a96565b610753565b34801561031457600080fd5b506000546040516001600160a01b039091168152602001610198565b34801561033c57600080fd5b506101e760125481565b34801561035257600080fd5b506040805180820190915260038152624b454b60e81b602082015261018b565b34801561037e57600080fd5b506101c161038d366004611a96565b610884565b34801561039e57600080fd5b506101e760135481565b3480156103b457600080fd5b506010546103c8906001600160901b031681565b6040516001600160901b039091168152602001610198565b3480156103ec57600080fd5b5061020a610891565b34801561040157600080fd5b50600e546103c8906001600160901b031681565b34801561042157600080fd5b50600f54610435906001600160981b031681565b6040516001600160981b039091168152602001610198565b34801561045957600080fd5b506101e7610468366004611b20565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049f57600080fd5b5061020a6104ae366004611b59565b610f57565b60006104c0338484610f9e565b5060015b92915050565b6000546001600160a01b031633146104fd5760405162461bcd60e51b81526004016104f490611b72565b60405180910390fd5b6000600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b60006105486009600a611ca1565b610557906461f313f880611cb0565b905090565b60006105698484846110c2565b6105bb84336105b685604051806060016040528060288152602001611e38602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611692565b610f9e565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146105e557600080fd5b30600090815260016020526040902054801580159061060d5750601654600160b01b900460ff165b1561061b5761061b816116cc565b47801561062b5761062b81611846565b5050565b6000546001600160a01b031633146106595760405162461bcd60e51b81526004016104f490611b72565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106cd5760405162461bcd60e51b81526004016104f490611b72565b6106d96009600a611ca1565b6106e8906461f313f880611cb0565b6011556106f76009600a611ca1565b610706906461f313f880611cb0565b6012557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107366009600a611ca1565b610745906461f313f880611cb0565b604051908152602001610530565b6000546001600160a01b0316331461077d5760405162461bcd60e51b81526004016104f490611b72565b6040516370a0823160e01b8152306004820152600090610801906064906107fb9085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156107d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f59190611cc7565b90611880565b90611909565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303816000875af115801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e9190611ce0565b50505050565b60006104c03384846110c2565b6000546001600160a01b031633146108bb5760405162461bcd60e51b81526004016104f490611b72565b601654600160a01b900460ff16156109155760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f4565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561095f9030906109506009600a611ca1565b6105b6906461f313f880611cb0565b6015546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa1580156109a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cd9190611d02565b6001600160a01b031663e6a43905601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190611d02565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611d02565b6001600160a01b031603610c6157601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611d02565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb9190611d02565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190611d02565b601680546001600160a01b0319166001600160a01b0392909216919091179055610dec565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd89190611d02565b6001600160a01b031663e6a43905601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190611d02565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcb9190611d02565b601680546001600160a01b0319166001600160a01b03929092169190911790555b6015546001600160a01b031663f305d7194730610e1e816001600160a01b031660009081526001602052604090205490565b600080610e336000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e9b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ec09190611d1f565b505060165460155460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190611ce0565b506016805462ff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610f7757600080fd5b6007548111158015610f8b57506008548111155b610f9457600080fd5b6007819055600855565b6001600160a01b0383166110005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166110615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b0382166111885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b600081116111ea5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f4565b600080546001600160a01b0385811691161480159061121757506000546001600160a01b03848116911614155b801561123157506004546001600160a01b03848116911614155b1561154f57600d546000036112695761126660646107fb600954600d541161125b5760055461125f565b6007545b8590611880565b90505b600d541561128e5761128b60646107fb600c548561188090919063ffffffff16565b90505b6016546001600160a01b0385811691161480156112b957506015546001600160a01b03848116911614155b80156112de57506001600160a01b03831660009081526003602052604090205460ff16155b156113e3576011548211156113355760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f4565b60125482611358856001600160a01b031660009081526001602052604090205490565b6113629190611d4d565b11156113b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f4565b6113cb60646107fb600954600d541161125b5760055461125f565b600d805491925060006113dd83611d60565b91905055505b6016546001600160a01b03848116911614801561140957506001600160a01b0384163014155b156114365761143360646107fb600a54600d54116114295760065461125f565b6008548590611880565b90505b30600090815260016020526040902054601654600160a81b900460ff1615801561146d57506016546001600160a01b038581169116145b80156114825750601654600160b01b900460ff165b801561148f575060135481115b801561149e5750600b54600d54115b1561154d576018544311156114b35760006017555b6003601754106115055760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104f4565b61152261151d846115188460145461194b565b61194b565b6116cc565b4780156115325761153247611846565b6017805490600061154283611d60565b909155505043601855505b505b80156115c9573060009081526001602052604090205461156f9082611960565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115c09085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546115ec90836119bf565b6001600160a01b03851660009081526001602052604090205561163161161283836119bf565b6001600160a01b03851660009081526001602052604090205490611960565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61167b85856119bf565b60405190815260200160405180910390a350505050565b600081848411156116b65760405162461bcd60e51b81526004016104f49190611a2f565b5060006116c38486611d79565b95945050505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061171457611714611d8c565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561176d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117919190611d02565b816001815181106117a4576117a4611d8c565b6001600160a01b0392831660209182029290920101526015546117ca9130911684610f9e565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611803908590600090869030904290600401611da2565b600060405180830381600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561062b573d6000803e3d6000fd5b600082600003611892575060006104c4565b600061189e8385611cb0565b9050826118ab8583611e15565b146119025760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f4565b9392505050565b600061190283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a01565b600081831161195a5782611902565b50919050565b60008061196d8385611d4d565b9050838110156119025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f4565b600061190283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611692565b60008183611a225760405162461bcd60e51b81526004016104f49190611a2f565b5060006116c38486611e15565b60006020808352835180602085015260005b81811015611a5d57858101830151858201604001528201611a41565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a9357600080fd5b50565b60008060408385031215611aa957600080fd5b8235611ab481611a7e565b946020939093013593505050565b600080600060608486031215611ad757600080fd5b8335611ae281611a7e565b92506020840135611af281611a7e565b929592945050506040919091013590565b600060208284031215611b1557600080fd5b813561190281611a7e565b60008060408385031215611b3357600080fd5b8235611b3e81611a7e565b91506020830135611b4e81611a7e565b809150509250929050565b600060208284031215611b6b57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bf8578160001904821115611bde57611bde611ba7565b80851615611beb57918102915b93841c9390800290611bc2565b509250929050565b600082611c0f575060016104c4565b81611c1c575060006104c4565b8160018114611c325760028114611c3c57611c58565b60019150506104c4565b60ff841115611c4d57611c4d611ba7565b50506001821b6104c4565b5060208310610133831016604e8410600b8410161715611c7b575081810a6104c4565b611c858383611bbd565b8060001904821115611c9957611c99611ba7565b029392505050565b600061190260ff841683611c00565b80820281158282048414176104c4576104c4611ba7565b600060208284031215611cd957600080fd5b5051919050565b600060208284031215611cf257600080fd5b8151801515811461190257600080fd5b600060208284031215611d1457600080fd5b815161190281611a7e565b600080600060608486031215611d3457600080fd5b8351925060208401519150604084015190509250925092565b808201808211156104c4576104c4611ba7565b600060018201611d7257611d72611ba7565b5060010190565b818103818111156104c4576104c4611ba7565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b81811015611df45784516001600160a01b031683529383019391830191600101611dcf565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611e3257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1fffa872baa355fd61c1f03b4ae2a9c5e8667eda9e05f68c2e44ce46497c8fd64736f6c63430008170033

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.