ETH Price: $3,419.83 (-1.06%)
Gas: 7 Gwei

Contract

0x9D20731C8cb82cC6264711Cf5a5F83196B9B1CE4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Transfer202188792024-07-02 12:37:479 hrs ago1719923867IN
0x9D20731C...96B9B1CE4
0 ETH0.000520267.33961122
Transfer202188782024-07-02 12:37:359 hrs ago1719923855IN
0x9D20731C...96B9B1CE4
0 ETH0.000535147.55091458
Approve202151132024-07-02 0:00:1121 hrs ago1719878411IN
0x9D20731C...96B9B1CE4
0 ETH0.000089261.92865638
Approve202072042024-06-30 21:30:472 days ago1719783047IN
0x9D20731C...96B9B1CE4
0 ETH0.000149763.21930967
Approve202064512024-06-30 19:00:112 days ago1719774011IN
0x9D20731C...96B9B1CE4
0 ETH0.000191244.11085673
Approve201924642024-06-28 20:06:114 days ago1719605171IN
0x9D20731C...96B9B1CE4
0 ETH0.000131012.83461208
Transfer201905042024-06-28 13:32:234 days ago1719581543IN
0x9D20731C...96B9B1CE4
0 ETH0.000198064.04252619
Transfer201892222024-06-28 9:14:594 days ago1719566099IN
0x9D20731C...96B9B1CE4
0 ETH0.000198182.99838496
Approve201871012024-06-28 2:08:474 days ago1719540527IN
0x9D20731C...96B9B1CE4
0 ETH0.000328097.05272758
Approve201694482024-06-25 14:59:237 days ago1719327563IN
0x9D20731C...96B9B1CE4
0 ETH0.0004834710.39264091
Approve201693492024-06-25 14:39:237 days ago1719326363IN
0x9D20731C...96B9B1CE4
0 ETH0.0005988212.85546944
Approve201692782024-06-25 14:25:117 days ago1719325511IN
0x9D20731C...96B9B1CE4
0 ETH0.0004679910.04691636
Approve201669662024-06-25 6:39:597 days ago1719297599IN
0x9D20731C...96B9B1CE4
0 ETH0.000234995.05140361
Approve201664342024-06-25 4:52:477 days ago1719291167IN
0x9D20731C...96B9B1CE4
0 ETH0.000188854.05443651
Approve201663862024-06-25 4:43:117 days ago1719290591IN
0x9D20731C...96B9B1CE4
0 ETH0.000171213.67560327
Approve201621652024-06-24 14:33:358 days ago1719239615IN
0x9D20731C...96B9B1CE4
0 ETH0.0004628110
Approve201616632024-06-24 12:53:118 days ago1719233591IN
0x9D20731C...96B9B1CE4
0 ETH0.000380638.17140195
Approve201583972024-06-24 1:54:358 days ago1719194075IN
0x9D20731C...96B9B1CE4
0 ETH0.000223484.79775684
Approve201583842024-06-24 1:51:598 days ago1719193919IN
0x9D20731C...96B9B1CE4
0 ETH0.000148773.19383684
Approve201578412024-06-24 0:03:118 days ago1719187391IN
0x9D20731C...96B9B1CE4
0 ETH0.000175273.76281449
Approve201563632024-06-23 19:05:359 days ago1719169535IN
0x9D20731C...96B9B1CE4
0 ETH0.000220844.74720793
Approve201558182024-06-23 17:15:479 days ago1719162947IN
0x9D20731C...96B9B1CE4
0 ETH0.000213994.60003657
Approve201555152024-06-23 16:14:479 days ago1719159287IN
0x9D20731C...96B9B1CE4
0 ETH0.000368547.91185563
Approve201555102024-06-23 16:13:479 days ago1719159227IN
0x9D20731C...96B9B1CE4
0 ETH0.000269725.828008
Approve201553492024-06-23 15:41:239 days ago1719157283IN
0x9D20731C...96B9B1CE4
0 ETH0.000297526.38735576
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
201541812024-06-23 11:46:239 days ago1719143183
0x9D20731C...96B9B1CE4
0.02805471 ETH
201541812024-06-23 11:46:239 days ago1719143183
0x9D20731C...96B9B1CE4
0.02805471 ETH
201541812024-06-23 11:46:239 days ago1719143183
0x9D20731C...96B9B1CE4
0.00598488 ETH
201541812024-06-23 11:46:239 days ago1719143183
0x9D20731C...96B9B1CE4
0.00598488 ETH
201541802024-06-23 11:46:119 days ago1719143171
0x9D20731C...96B9B1CE4
0.04473973 ETH
201541802024-06-23 11:46:119 days ago1719143171
0x9D20731C...96B9B1CE4
0.04473973 ETH
201541792024-06-23 11:45:599 days ago1719143159
0x9D20731C...96B9B1CE4
0.08208199 ETH
201541792024-06-23 11:45:599 days ago1719143159
0x9D20731C...96B9B1CE4
0.08208199 ETH
201541772024-06-23 11:45:359 days ago1719143135
0x9D20731C...96B9B1CE4
0.02957157 ETH
201541772024-06-23 11:45:359 days ago1719143135
0x9D20731C...96B9B1CE4
0.02957157 ETH
201541762024-06-23 11:45:239 days ago1719143123
0x9D20731C...96B9B1CE4
0.06180083 ETH
201541762024-06-23 11:45:239 days ago1719143123
0x9D20731C...96B9B1CE4
0.06180083 ETH
201541752024-06-23 11:45:119 days ago1719143111
0x9D20731C...96B9B1CE4
0.06860464 ETH
201541752024-06-23 11:45:119 days ago1719143111
0x9D20731C...96B9B1CE4
0.06860464 ETH
201541732024-06-23 11:44:479 days ago1719143087
0x9D20731C...96B9B1CE4
0.11308808 ETH
201541732024-06-23 11:44:479 days ago1719143087
0x9D20731C...96B9B1CE4
0.11308808 ETH
201541732024-06-23 11:44:479 days ago1719143087
0x9D20731C...96B9B1CE4
0.02386309 ETH
201541732024-06-23 11:44:479 days ago1719143087
0x9D20731C...96B9B1CE4
0.02386309 ETH
201541722024-06-23 11:44:359 days ago1719143075
0x9D20731C...96B9B1CE4
0.06173903 ETH
201541722024-06-23 11:44:359 days ago1719143075
0x9D20731C...96B9B1CE4
0.06173903 ETH
201541722024-06-23 11:44:359 days ago1719143075
0x9D20731C...96B9B1CE4
0.10439442 ETH
201541722024-06-23 11:44:359 days ago1719143075
0x9D20731C...96B9B1CE4
0.10439442 ETH
201541722024-06-23 11:44:359 days ago1719143075
0x9D20731C...96B9B1CE4
0.07221746 ETH
201541722024-06-23 11:44:359 days ago1719143075
0x9D20731C...96B9B1CE4
0.07221746 ETH
201541692024-06-23 11:43:599 days ago1719143039
0x9D20731C...96B9B1CE4
0.12114116 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PUNGSAN

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : PUNGSAN.sol
// SPDX-License-Identifier: MIT

/*
North Korean leader Kim Jong Un gave Russian President Vladimir Putin a pair of Pungsan dogs, a local breed.

WEB : https://pungsaneth.xyz
TG : https://t.me/pungsanoneth
X : https://x.com/pungsan_eth

*/

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

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Pungsan 풍산개";
    string private constant _symbol = unicode"PUNGSAN";
    uint256 public _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2_000_000 * 10**_decimals;
    uint256 public _maxTaxSwap= 20_000_000 * 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);
    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]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _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 sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function withdrawETH(address payable to, uint256 amount) external onlyOwner {
        require(address(this).balance >= amount, "Insufficient ETH balance");
        to.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;
    }
 
    receive() external payable {}

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

    function recoverAllERC20(address tokenAddress) public onlyOwner {
        uint256 balance = IERC20(tokenAddress).balanceOf(address(this));
        IERC20(tokenAddress).transfer(owner(), balance);
    }

}

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"},{"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":"address","name":"tokenAddress","type":"address"}],"name":"recoverAllERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260176006556019600755600060085560006009556014600a556019600b556014600c556000600d556009600a6200003c919062000348565b6200004c906301312d0062000360565b600e556200005d6009600a62000348565b6200006d906301312d0062000360565b600f556200007e6009600a62000348565b6200008d90621e848062000360565b6010556200009e6009600a62000348565b620000ae906301312d0062000360565b6011556013805461ffff60a81b1916905560006014819055601555348015620000d657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620001386009600a62000348565b6200014890633b9aca0062000360565b336000908152600160208190526040822092909255600390620001736000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001d23390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020c6009600a62000348565b6200021c90633b9aca0062000360565b60405190815260200160405180910390a36200037a565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200028a5781600019048211156200026e576200026e62000233565b808516156200027c57918102915b93841c93908002906200024e565b509250929050565b600082620002a35750600162000342565b81620002b25750600062000342565b8160018114620002cb5760028114620002d657620002f6565b600191505062000342565b60ff841115620002ea57620002ea62000233565b50506001821b62000342565b5060208310610133831016604e8410600b84101617156200031b575081810a62000342565b62000327838362000249565b80600019048211156200033e576200033e62000233565b0290505b92915050565b60006200035960ff84168362000292565b9392505050565b808202811582820484141762000342576200034262000233565b611db2806200038a6000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461033b578063b054b5361461035b578063bf474bed1461037b578063c9567bf914610391578063dd62ed3e146103a657600080fd5b8063751039fc146102a25780637d1db4a5146102b75780638da5cb5b146102cd5780638f9a55c0146102f557806395d89b411461030b57600080fd5b8063313ce567116100e7578063313ce567146102045780634782f7791461022057806351bc3c851461024257806370a0823114610257578063715018a61461028d57600080fd5b806306fdde031461012f578063095ea7b31461017b5780630faee56f146101ab57806318160ddd146101cf57806323b872dd146101e457600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526011815270141d5b99dcd85b883b64a37b20ac3aac27607a1b60208201525b6040516101729190611965565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046119cc565b6103ec565b6040519015158152602001610172565b3480156101b757600080fd5b506101c160115481565b604051908152602001610172565b3480156101db57600080fd5b506101c1610403565b3480156101f057600080fd5b5061019b6101ff3660046119f8565b610424565b34801561021057600080fd5b5060405160098152602001610172565b34801561022c57600080fd5b5061024061023b3660046119cc565b61048d565b005b34801561024e57600080fd5b5061024061054b565b34801561026357600080fd5b506101c1610272366004611a39565b6001600160a01b031660009081526001602052604090205490565b34801561029957600080fd5b506102406105c8565b3480156102ae57600080fd5b5061024061063c565b3480156102c357600080fd5b506101c1600e5481565b3480156102d957600080fd5b506000546040516001600160a01b039091168152602001610172565b34801561030157600080fd5b506101c1600f5481565b34801561031757600080fd5b50604080518082019091526007815266282aa723a9a0a760c91b6020820152610165565b34801561034757600080fd5b5061019b6103563660046119cc565b6106ee565b34801561036757600080fd5b50610240610376366004611a39565b6106fb565b34801561038757600080fd5b506101c160105481565b34801561039d57600080fd5b50610240610824565b3480156103b257600080fd5b506101c16103c1366004611a56565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103f9338484610ee9565b5060015b92915050565b60006104116009600a611b89565b61041f90633b9aca00611b98565b905090565b600061043184848461100d565b610483843361047e85604051806060016040528060288152602001611d55602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906115c8565b610ee9565b5060019392505050565b6000546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b790611baf565b60405180910390fd5b804710156105105760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016104b7565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610546573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146105755760405162461bcd60e51b81526004016104b790611baf565b6005546001600160a01b0316336001600160a01b03161461059557600080fd5b3060009081526001602052604090205480156105b4576105b481611602565b4780156105c4576105c48161177c565b5050565b6000546001600160a01b031633146105f25760405162461bcd60e51b81526004016104b790611baf565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106665760405162461bcd60e51b81526004016104b790611baf565b6106726009600a611b89565b61068090633b9aca00611b98565b600e5561068f6009600a611b89565b61069d90633b9aca00611b98565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106cd6009600a611b89565b6106db90633b9aca00611b98565b60405190815260200160405180910390a1565b60006103f933848461100d565b6000546001600160a01b031633146107255760405162461bcd60e51b81526004016104b790611baf565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561076c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107909190611be4565b9050816001600160a01b031663a9059cbb6107b36000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610800573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611bfd565b6000546001600160a01b0316331461084e5760405162461bcd60e51b81526004016104b790611baf565b601354600160a01b900460ff16156108a85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b7565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108f19030906108e36009600a611b89565b61047e90633b9aca00611b98565b6012546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa15801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190611c1f565b6001600160a01b031663e6a43905601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e49190611c1f565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190611c1f565b6001600160a01b031603610bf357601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad79190611c1f565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d9190611c1f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190611c1f565b601380546001600160a01b0319166001600160a01b0392909216919091179055610d7e565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190611c1f565b6001600160a01b031663e6a43905601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cef9190611c1f565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190611c1f565b601380546001600160a01b0319166001600160a01b03929092169190911790555b6012546001600160a01b031663f305d7194730610db0816001600160a01b031660009081526001602052604090205490565b600080610dc56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e2d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e529190611c3c565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf9190611bfd565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610f4b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b7565b6001600160a01b038216610fac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b7565b6001600160a01b0382166110d35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b7565b600081116111355760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b7565b600080546001600160a01b0385811691161480159061116257506000546001600160a01b03848116911614155b15611485576001600160a01b03841660009081526004602052604090205460ff161580156111a957506001600160a01b03831660009081526004602052604090205460ff16155b6111b257600080fd5b6111de60646111d8600a54600d54116111cd576006546111d1565b6008545b85906117b6565b9061183f565b6013549091506001600160a01b03858116911614801561120c57506012546001600160a01b03848116911614155b801561123157506001600160a01b03831660009081526003602052604090205460ff16155b1561131957600e548211156112885760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b7565b600f54826112ab856001600160a01b031660009081526001602052604090205490565b6112b59190611c6a565b11156113035760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b7565b600d805490600061131383611c7d565b91905055505b6013546001600160a01b03848116911614801561133f57506001600160a01b0384163014155b1561136c5761136960646111d8600b54600d541161135f576007546111d1565b60095485906117b6565b90505b30600090815260016020526040902054601354600160a81b900460ff161580156113a357506013546001600160a01b038581169116145b80156113b85750601354600160b01b900460ff165b80156113c5575060105481115b80156113d45750600c54600d54115b15611483576015544311156113e95760006014555b60036014541061143b5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104b7565b6114586114538461144e84601154611881565b611881565b611602565b478015611468576114684761177c565b6014805490600061147883611c7d565b909155505043601555505b505b80156114ff57306000908152600160205260409020546114a59082611896565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f69085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461152290836118f5565b6001600160a01b03851660009081526001602052604090205561156761154883836118f5565b6001600160a01b03851660009081526001602052604090205490611896565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115b185856118f5565b60405190815260200160405180910390a350505050565b600081848411156115ec5760405162461bcd60e51b81526004016104b79190611965565b5060006115f98486611c96565b95945050505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061164a5761164a611ca9565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c79190611c1f565b816001815181106116da576116da611ca9565b6001600160a01b0392831660209182029290920101526012546117009130911684610ee9565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611739908590600090869030904290600401611cbf565b600060405180830381600087803b15801561175357600080fd5b505af1158015611767573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156105c4573d6000803e3d6000fd5b6000826000036117c8575060006103fd565b60006117d48385611b98565b9050826117e18583611d32565b146118385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b7565b9392505050565b600061183883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611937565b60008183116118905782611838565b50919050565b6000806118a38385611c6a565b9050838110156118385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b7565b600061183883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c8565b600081836119585760405162461bcd60e51b81526004016104b79190611965565b5060006115f98486611d32565b60006020808352835180602085015260005b8181101561199357858101830151858201604001528201611977565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119c957600080fd5b50565b600080604083850312156119df57600080fd5b82356119ea816119b4565b946020939093013593505050565b600080600060608486031215611a0d57600080fd5b8335611a18816119b4565b92506020840135611a28816119b4565b929592945050506040919091013590565b600060208284031215611a4b57600080fd5b8135611838816119b4565b60008060408385031215611a6957600080fd5b8235611a74816119b4565b91506020830135611a84816119b4565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ae0578160001904821115611ac657611ac6611a8f565b80851615611ad357918102915b93841c9390800290611aaa565b509250929050565b600082611af7575060016103fd565b81611b04575060006103fd565b8160018114611b1a5760028114611b2457611b40565b60019150506103fd565b60ff841115611b3557611b35611a8f565b50506001821b6103fd565b5060208310610133831016604e8410600b8410161715611b63575081810a6103fd565b611b6d8383611aa5565b8060001904821115611b8157611b81611a8f565b029392505050565b600061183860ff841683611ae8565b80820281158282048414176103fd576103fd611a8f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611bf657600080fd5b5051919050565b600060208284031215611c0f57600080fd5b8151801515811461183857600080fd5b600060208284031215611c3157600080fd5b8151611838816119b4565b600080600060608486031215611c5157600080fd5b8351925060208401519150604084015190509250925092565b808201808211156103fd576103fd611a8f565b600060018201611c8f57611c8f611a8f565b5060010190565b818103818111156103fd576103fd611a8f565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b81811015611d115784516001600160a01b031683529383019391830191600101611cec565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d4f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205aea000504cb821b7ef6381617ddb7bd771160f244a7b4a3bb8ec41016118b0464736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461033b578063b054b5361461035b578063bf474bed1461037b578063c9567bf914610391578063dd62ed3e146103a657600080fd5b8063751039fc146102a25780637d1db4a5146102b75780638da5cb5b146102cd5780638f9a55c0146102f557806395d89b411461030b57600080fd5b8063313ce567116100e7578063313ce567146102045780634782f7791461022057806351bc3c851461024257806370a0823114610257578063715018a61461028d57600080fd5b806306fdde031461012f578063095ea7b31461017b5780630faee56f146101ab57806318160ddd146101cf57806323b872dd146101e457600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526011815270141d5b99dcd85b883b64a37b20ac3aac27607a1b60208201525b6040516101729190611965565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046119cc565b6103ec565b6040519015158152602001610172565b3480156101b757600080fd5b506101c160115481565b604051908152602001610172565b3480156101db57600080fd5b506101c1610403565b3480156101f057600080fd5b5061019b6101ff3660046119f8565b610424565b34801561021057600080fd5b5060405160098152602001610172565b34801561022c57600080fd5b5061024061023b3660046119cc565b61048d565b005b34801561024e57600080fd5b5061024061054b565b34801561026357600080fd5b506101c1610272366004611a39565b6001600160a01b031660009081526001602052604090205490565b34801561029957600080fd5b506102406105c8565b3480156102ae57600080fd5b5061024061063c565b3480156102c357600080fd5b506101c1600e5481565b3480156102d957600080fd5b506000546040516001600160a01b039091168152602001610172565b34801561030157600080fd5b506101c1600f5481565b34801561031757600080fd5b50604080518082019091526007815266282aa723a9a0a760c91b6020820152610165565b34801561034757600080fd5b5061019b6103563660046119cc565b6106ee565b34801561036757600080fd5b50610240610376366004611a39565b6106fb565b34801561038757600080fd5b506101c160105481565b34801561039d57600080fd5b50610240610824565b3480156103b257600080fd5b506101c16103c1366004611a56565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103f9338484610ee9565b5060015b92915050565b60006104116009600a611b89565b61041f90633b9aca00611b98565b905090565b600061043184848461100d565b610483843361047e85604051806060016040528060288152602001611d55602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906115c8565b610ee9565b5060019392505050565b6000546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b790611baf565b60405180910390fd5b804710156105105760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e6365000000000000000060448201526064016104b7565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610546573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146105755760405162461bcd60e51b81526004016104b790611baf565b6005546001600160a01b0316336001600160a01b03161461059557600080fd5b3060009081526001602052604090205480156105b4576105b481611602565b4780156105c4576105c48161177c565b5050565b6000546001600160a01b031633146105f25760405162461bcd60e51b81526004016104b790611baf565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106665760405162461bcd60e51b81526004016104b790611baf565b6106726009600a611b89565b61068090633b9aca00611b98565b600e5561068f6009600a611b89565b61069d90633b9aca00611b98565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106cd6009600a611b89565b6106db90633b9aca00611b98565b60405190815260200160405180910390a1565b60006103f933848461100d565b6000546001600160a01b031633146107255760405162461bcd60e51b81526004016104b790611baf565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561076c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107909190611be4565b9050816001600160a01b031663a9059cbb6107b36000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610800573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611bfd565b6000546001600160a01b0316331461084e5760405162461bcd60e51b81526004016104b790611baf565b601354600160a01b900460ff16156108a85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b7565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108f19030906108e36009600a611b89565b61047e90633b9aca00611b98565b6012546040805163c45a015560e01b815290516000926001600160a01b03169163c45a01559160048083019260209291908290030181865afa15801561093b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190611c1f565b6001600160a01b031663e6a43905601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e49190611c1f565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190611c1f565b6001600160a01b031603610bf357601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ab3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad79190611c1f565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d9190611c1f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190611c1f565b601380546001600160a01b0319166001600160a01b0392909216919091179055610d7e565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190611c1f565b6001600160a01b031663e6a43905601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cef9190611c1f565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190611c1f565b601380546001600160a01b0319166001600160a01b03929092169190911790555b6012546001600160a01b031663f305d7194730610db0816001600160a01b031660009081526001602052604090205490565b600080610dc56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e2d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e529190611c3c565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf9190611bfd565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610f4b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b7565b6001600160a01b038216610fac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b7565b6001600160a01b0382166110d35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b7565b600081116111355760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b7565b600080546001600160a01b0385811691161480159061116257506000546001600160a01b03848116911614155b15611485576001600160a01b03841660009081526004602052604090205460ff161580156111a957506001600160a01b03831660009081526004602052604090205460ff16155b6111b257600080fd5b6111de60646111d8600a54600d54116111cd576006546111d1565b6008545b85906117b6565b9061183f565b6013549091506001600160a01b03858116911614801561120c57506012546001600160a01b03848116911614155b801561123157506001600160a01b03831660009081526003602052604090205460ff16155b1561131957600e548211156112885760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104b7565b600f54826112ab856001600160a01b031660009081526001602052604090205490565b6112b59190611c6a565b11156113035760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b7565b600d805490600061131383611c7d565b91905055505b6013546001600160a01b03848116911614801561133f57506001600160a01b0384163014155b1561136c5761136960646111d8600b54600d541161135f576007546111d1565b60095485906117b6565b90505b30600090815260016020526040902054601354600160a81b900460ff161580156113a357506013546001600160a01b038581169116145b80156113b85750601354600160b01b900460ff165b80156113c5575060105481115b80156113d45750600c54600d54115b15611483576015544311156113e95760006014555b60036014541061143b5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104b7565b6114586114538461144e84601154611881565b611881565b611602565b478015611468576114684761177c565b6014805490600061147883611c7d565b909155505043601555505b505b80156114ff57306000908152600160205260409020546114a59082611896565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114f69085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461152290836118f5565b6001600160a01b03851660009081526001602052604090205561156761154883836118f5565b6001600160a01b03851660009081526001602052604090205490611896565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115b185856118f5565b60405190815260200160405180910390a350505050565b600081848411156115ec5760405162461bcd60e51b81526004016104b79190611965565b5060006115f98486611c96565b95945050505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061164a5761164a611ca9565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c79190611c1f565b816001815181106116da576116da611ca9565b6001600160a01b0392831660209182029290920101526012546117009130911684610ee9565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611739908590600090869030904290600401611cbf565b600060405180830381600087803b15801561175357600080fd5b505af1158015611767573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156105c4573d6000803e3d6000fd5b6000826000036117c8575060006103fd565b60006117d48385611b98565b9050826117e18583611d32565b146118385760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104b7565b9392505050565b600061183883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611937565b60008183116118905782611838565b50919050565b6000806118a38385611c6a565b9050838110156118385760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104b7565b600061183883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c8565b600081836119585760405162461bcd60e51b81526004016104b79190611965565b5060006115f98486611d32565b60006020808352835180602085015260005b8181101561199357858101830151858201604001528201611977565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119c957600080fd5b50565b600080604083850312156119df57600080fd5b82356119ea816119b4565b946020939093013593505050565b600080600060608486031215611a0d57600080fd5b8335611a18816119b4565b92506020840135611a28816119b4565b929592945050506040919091013590565b600060208284031215611a4b57600080fd5b8135611838816119b4565b60008060408385031215611a6957600080fd5b8235611a74816119b4565b91506020830135611a84816119b4565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ae0578160001904821115611ac657611ac6611a8f565b80851615611ad357918102915b93841c9390800290611aaa565b509250929050565b600082611af7575060016103fd565b81611b04575060006103fd565b8160018114611b1a5760028114611b2457611b40565b60019150506103fd565b60ff841115611b3557611b35611a8f565b50506001821b6103fd565b5060208310610133831016604e8410600b8410161715611b63575081810a6103fd565b611b6d8383611aa5565b8060001904821115611b8157611b81611a8f565b029392505050565b600061183860ff841683611ae8565b80820281158282048414176103fd576103fd611a8f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611bf657600080fd5b5051919050565b600060208284031215611c0f57600080fd5b8151801515811461183857600080fd5b600060208284031215611c3157600080fd5b8151611838816119b4565b600080600060608486031215611c5157600080fd5b8351925060208401519150604084015190509250925092565b808201808211156103fd576103fd611a8f565b600060018201611c8f57611c8f611a8f565b5060010190565b818103818111156103fd576103fd611a8f565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b81811015611d115784516001600160a01b031683529383019391830191600101611cec565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d4f57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205aea000504cb821b7ef6381617ddb7bd771160f244a7b4a3bb8ec41016118b0464736f6c63430008170033

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.