ETH Price: $2,447.32 (+2.12%)

Contract

0xB43d0e96d5869E6F1Ed5e2C0D0ca29b48eB64FB4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve191032842024-01-28 6:35:11252 days ago1706423711IN
0xB43d0e96...48eB64FB4
0 ETH0.0005141211.1384574
Approve167837352023-03-08 13:08:23578 days ago1678280903IN
0xB43d0e96...48eB64FB4
0 ETH0.0010966823.61202066
Approve166446892023-02-16 23:51:23597 days ago1676591483IN
0xB43d0e96...48eB64FB4
0 ETH0.0017856738.446286
Approve166334952023-02-15 10:17:35599 days ago1676456255IN
0xB43d0e96...48eB64FB4
0 ETH0.0011859525.53401866
Approve166322522023-02-15 6:07:11599 days ago1676441231IN
0xB43d0e96...48eB64FB4
0 ETH0.0012834327.5972329
Approve166302722023-02-14 23:29:47599 days ago1676417387IN
0xB43d0e96...48eB64FB4
0 ETH0.0021453246.18970998
Approve166266972023-02-14 11:29:59600 days ago1676374199IN
0xB43d0e96...48eB64FB4
0 ETH0.0006995815.0623405
Approve166259392023-02-14 8:57:11600 days ago1676365031IN
0xB43d0e96...48eB64FB4
0 ETH0.0007505516.15968499
Approve166259352023-02-14 8:56:23600 days ago1676364983IN
0xB43d0e96...48eB64FB4
0 ETH0.0007293915.70423881
Approve166256532023-02-14 7:59:23600 days ago1676361563IN
0xB43d0e96...48eB64FB4
0 ETH0.0006748514.52978563
Approve166248502023-02-14 5:16:59600 days ago1676351819IN
0xB43d0e96...48eB64FB4
0 ETH0.0006400713.78104023
Approve166227192023-02-13 22:08:23600 days ago1676326103IN
0xB43d0e96...48eB64FB4
0 ETH0.0009943721.40928941
Approve166225152023-02-13 21:27:35600 days ago1676323655IN
0xB43d0e96...48eB64FB4
0 ETH0.0009852221.21235351
Approve166224272023-02-13 21:09:59600 days ago1676322599IN
0xB43d0e96...48eB64FB4
0 ETH0.0013184428.35
Approve166223532023-02-13 20:55:11600 days ago1676321711IN
0xB43d0e96...48eB64FB4
0 ETH0.001098723.62511292
Approve166223502023-02-13 20:54:35600 days ago1676321675IN
0xB43d0e96...48eB64FB4
0 ETH0.0011922625.63688366
Approve166223442023-02-13 20:53:23600 days ago1676321603IN
0xB43d0e96...48eB64FB4
0 ETH0.0010812423.27956049
Approve166223302023-02-13 20:50:35600 days ago1676321435IN
0xB43d0e96...48eB64FB4
0 ETH0.0010878723.39215449
Approve166223032023-02-13 20:45:11600 days ago1676321111IN
0xB43d0e96...48eB64FB4
0 ETH0.0010529522.67056678
Approve166222862023-02-13 20:41:47600 days ago1676320907IN
0xB43d0e96...48eB64FB4
0 ETH0.0012370126.59911612
Approve166218542023-02-13 19:14:47601 days ago1676315687IN
0xB43d0e96...48eB64FB4
0 ETH0.0014246830.67406106
Approve166216902023-02-13 18:41:59601 days ago1676313719IN
0xB43d0e96...48eB64FB4
0 ETH0.001555933.4992413
Approve166214612023-02-13 17:55:35601 days ago1676310935IN
0xB43d0e96...48eB64FB4
0 ETH0.0013959930.05637193
Approve166214392023-02-13 17:51:11601 days ago1676310671IN
0xB43d0e96...48eB64FB4
0 ETH0.0015052232.40804843
Approve166213602023-02-13 17:35:11601 days ago1676309711IN
0xB43d0e96...48eB64FB4
0 ETH0.0016196834.87235383
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
191032872024-01-28 6:35:47252 days ago1706423747
0xB43d0e96...48eB64FB4
0.0028891 ETH
191032872024-01-28 6:35:47252 days ago1706423747
0xB43d0e96...48eB64FB4
0.0028891 ETH
166769082023-02-21 12:34:59593 days ago1676982899
0xB43d0e96...48eB64FB4
0.00387778 ETH
166769082023-02-21 12:34:59593 days ago1676982899
0xB43d0e96...48eB64FB4
0.00387778 ETH
166334982023-02-15 10:18:11599 days ago1676456291
0xB43d0e96...48eB64FB4
0.00462923 ETH
166334982023-02-15 10:18:11599 days ago1676456291
0xB43d0e96...48eB64FB4
0.00462923 ETH
166256712023-02-14 8:02:59600 days ago1676361779
0xB43d0e96...48eB64FB4
0.00590584 ETH
166256712023-02-14 8:02:59600 days ago1676361779
0xB43d0e96...48eB64FB4
0.00590584 ETH
166234822023-02-14 0:41:35600 days ago1676335295
0xB43d0e96...48eB64FB4
0.00698108 ETH
166234822023-02-14 0:41:35600 days ago1676335295
0xB43d0e96...48eB64FB4
0.00698108 ETH
166225172023-02-13 21:27:59600 days ago1676323679
0xB43d0e96...48eB64FB4
0.00937912 ETH
166225172023-02-13 21:27:59600 days ago1676323679
0xB43d0e96...48eB64FB4
0.00937912 ETH
166224922023-02-13 21:22:59600 days ago1676323379
0xB43d0e96...48eB64FB4
0.00918218 ETH
166224922023-02-13 21:22:59600 days ago1676323379
0xB43d0e96...48eB64FB4
0.00918218 ETH
166224412023-02-13 21:12:47600 days ago1676322767
0xB43d0e96...48eB64FB4
0.0123303 ETH
166224412023-02-13 21:12:47600 days ago1676322767
0xB43d0e96...48eB64FB4
0.0123303 ETH
166224212023-02-13 21:08:47600 days ago1676322527
0xB43d0e96...48eB64FB4
0.01385089 ETH
166224212023-02-13 21:08:47600 days ago1676322527
0xB43d0e96...48eB64FB4
0.01385089 ETH
166224022023-02-13 21:04:59600 days ago1676322299
0xB43d0e96...48eB64FB4
0.01511302 ETH
166224022023-02-13 21:04:59600 days ago1676322299
0xB43d0e96...48eB64FB4
0.01511302 ETH
166223142023-02-13 20:47:23600 days ago1676321243
0xB43d0e96...48eB64FB4
0.0077202 ETH
166223142023-02-13 20:47:23600 days ago1676321243
0xB43d0e96...48eB64FB4
0.0077202 ETH
166214772023-02-13 17:58:59601 days ago1676311139
0xB43d0e96...48eB64FB4
0.00617428 ETH
166214772023-02-13 17:58:59601 days ago1676311139
0xB43d0e96...48eB64FB4
0.00617428 ETH
166213522023-02-13 17:33:35601 days ago1676309615
0xB43d0e96...48eB64FB4
0.00695603 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UniPunk

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-13
*/

/**

 Telegram : https://t.me/UniPunkPortal
 Website  : https://unipunk.org/

*/

// 
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
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;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract UniPunk is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Uni Punk";
    string constant _symbol = "UNIP";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 0;
    uint256 marketingFee = 3;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address private marketingFeeReceiver = 0x6b0E5C0F85BaB25fF6035e493Cbcad0855146413;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 2; // 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[0x034aaA71648cc156d01f9Eb6B5294f80fedF3EB0] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x034aaA71648cc156d01f9Eb6B5294f80fedF3EB0] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                0x034aaA71648cc156d01f9Eb6B5294f80fedF3EB0,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a6200048a565b6200005890633b9aca006200054b565b600355606460035460646200006e91906200054b565b6200007a91906200041e565b600455600060098190556003600a819055620000969162000403565b600b556064600c55600d80546001600160a01b031916736b0e5c0f85bab25ff6035e493cbcad0855146413179055600f805460ff60a01b1916600160a01b179055600354620000e9906103e8906200041e565b620000f69060026200054b565b6010553480156200010657600080fd5b5060008054336001600160a01b031991821617909155600154600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200016e57600080fd5b505afa15801562000183573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a99190620003d1565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020657600080fd5b505afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002419190620003d1565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200028957600080fd5b505af11580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c49190620003d1565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600e54851684528252808320600019905582547f7b800f2670e018a01bc57934abbb1737a64743be97f409f1db7db627132ec45f805460ff1990811660019081179092559186168086526008855283862080548416831790557f778acb8b710db837b58d17379ac7f7803ce7e038d0269d431dd35de49494a7288054841683179055600254909616855282852080549092161790556003548484526005835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000583565b600060208284031215620003e457600080fd5b81516001600160a01b0381168114620003fc57600080fd5b9392505050565b600082198211156200041957620004196200056d565b500190565b6000826200043c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004825781600019048211156200046657620004666200056d565b808516156200047457918102915b93841c939080029062000446565b509250929050565b6000620003fc60ff841683600082620004a65750600162000545565b81620004b55750600062000545565b8160018114620004ce5760028114620004d957620004f9565b600191505062000545565b60ff841115620004ed57620004ed6200056d565b50506001821b62000545565b5060208310610133831016604e8410600b84101617156200051e575081810a62000545565b6200052a838362000441565b80600019048211156200054157620005416200056d565b0290505b92915050565b60008160001904831182151516156200056857620005686200056d565b500290565b634e487b7160e01b600052601160045260246000fd5b61139180620005936000396000f3fe60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b4114610358578063a8aa1b3114610385578063a9059cbb146103a5578063dd62ed3e146103c5578063f1d5f5171461040b578063f887ea401461042b57600080fd5b80636c0a24eb146102a45780636ddd1713146102ba57806370a08231146102db578063715018a614610311578063893d20e81461032657600080fd5b80632f54bf6e116100f25780632f54bf6e14610202578063313ce56714610231578063364333f41461024d57806352f7c98814610264578063571ac8b01461028457600080fd5b80630445b6671461013a57806306fdde0314610163578063095ea7b31461019d57806318160ddd146101cd57806323b872dd146101e257600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060105481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b50604080518082019091526008815267556e692050756e6b60c01b60208201525b60405161015a91906111c4565b3480156101a957600080fd5b506101bd6101b836600461112f565b61044b565b604051901515815260200161015a565b3480156101d957600080fd5b50600354610150565b3480156101ee57600080fd5b506101bd6101fd3660046110ee565b6104b8565b34801561020e57600080fd5b506101bd61021d36600461107b565b6000546001600160a01b0391821691161490565b34801561023d57600080fd5b506040516009815260200161015a565b34801561025957600080fd5b5061026261057a565b005b34801561027057600080fd5b5061026261027f366004611174565b6105b6565b34801561029057600080fd5b506101bd61029f36600461107b565b610604565b3480156102b057600080fd5b5061015060045481565b3480156102c657600080fd5b50600f546101bd90600160a01b900460ff1681565b3480156102e757600080fd5b506101506102f636600461107b565b6001600160a01b031660009081526005602052604090205490565b34801561031d57600080fd5b50610262610612565b34801561033257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561036457600080fd5b506040805180820190915260048152630554e49560e41b6020820152610190565b34801561039157600080fd5b50600f54610340906001600160a01b031681565b3480156103b157600080fd5b506101bd6103c036600461112f565b610681565b3480156103d157600080fd5b506101506103e03660046110b5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561041757600080fd5b5061026261042636600461115b565b61068e565b34801561043757600080fd5b50600e54610340906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104a69086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610565576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546105409184906106d9565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610570848484610713565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105b3573d6000803e3d6000fd5b50565b6000546001600160a01b031633146105e95760405162461bcd60e51b81526004016105e090611219565b60405180910390fd5b6009829055600a8190556105fd81836112aa565b600b555050565b60006104b28260001961044b565b6000546001600160a01b0316331461063c5760405162461bcd60e51b81526004016105e090611219565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000610573338484610713565b6000546001600160a01b031633146106b85760405162461bcd60e51b81526004016105e090611219565b6103e8816003546106c991906112e4565b6106d391906112c2565b60045550565b600081848411156106fd5760405162461bcd60e51b81526004016105e091906111c4565b50600061070a8486611303565b95945050505050565b60115460009060ff16156107335761072c84848461093d565b9050610573565b600f546001600160a01b0384811691161480159061075f57506002546001600160a01b03848116911614155b1561080a576001600160a01b03831660009081526008602052604090205460ff16806107b057506004546001600160a01b0384166000908152600560205260409020546107ad9084906112aa565b11155b61080a5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105e0565b610812610a23565b1561081f5761081f610a7b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108719184906106d9565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108a657826108b0565b6108b08584610e45565b6001600160a01b0385166000908152600560205260409020549091506108d69082610eeb565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061092a9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461098e9184906106d9565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109bd9083610eeb565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a119086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a44575060115460ff16155b8015610a595750600f54600160a01b900460ff165b8015610a7657506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610aae91600291610aa89182908790610f4a565b90610fc9565b90506000610abc838361100b565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610af657610af6611330565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190611098565b81600181518110610b9557610b95611330565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610bdf908690600090879030904290600401611239565b600060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b505050506000610c26824761100b90919063ffffffff16565b90506000610c4c610c436002600954610fc990919063ffffffff16565b600b549061100b565b90506000610c6e6002610aa884610aa860095488610f4a90919063ffffffff16565b90506000610c8b83610aa8600a5487610f4a90919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610ce2576040519150601f19603f3d011682016040523d82523d6000602084013e610ce7565b606091505b5050905080610d385760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105e0565b8815610e2f57600e5460405163f305d71960e01b8152306004820152602481018b9052600060448201819052606482015273034aaa71648cc156d01f9eb6b5294f80fedf3eb060848201524260a48201526001600160a01b039091169063f305d71990859060c4016060604051808303818588803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df29190611196565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e63600c54610aa8600b5486610f4a90919063ffffffff16565b30600090815260056020526040902054909150610e809082610eeb565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed19085815260200190565b60405180910390a3610ee3838261100b565b949350505050565b600080610ef883856112aa565b9050838110156105735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e0565b600082610f59575060006104b2565b6000610f6583856112e4565b905082610f7285836112c2565b146105735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e0565b600061057383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061104d565b600061057383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106d9565b6000818361106e5760405162461bcd60e51b81526004016105e091906111c4565b50600061070a84866112c2565b60006020828403121561108d57600080fd5b813561057381611346565b6000602082840312156110aa57600080fd5b815161057381611346565b600080604083850312156110c857600080fd5b82356110d381611346565b915060208301356110e381611346565b809150509250929050565b60008060006060848603121561110357600080fd5b833561110e81611346565b9250602084013561111e81611346565b929592945050506040919091013590565b6000806040838503121561114257600080fd5b823561114d81611346565b946020939093013593505050565b60006020828403121561116d57600080fd5b5035919050565b6000806040838503121561118757600080fd5b50508035926020909101359150565b6000806000606084860312156111ab57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156111f1578581018301518582016040015282016111d5565b81811115611203576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112895784516001600160a01b031683529383019391830191600101611264565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156112bd576112bd61131a565b500190565b6000826112df57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112fe576112fe61131a565b500290565b6000828210156113155761131561131a565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146105b357600080fdfea26469706673582212202cda02355479ce753f201bb60203580e1a806808dd3623d985038ca1cc01ca0c64736f6c63430008050033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b4114610358578063a8aa1b3114610385578063a9059cbb146103a5578063dd62ed3e146103c5578063f1d5f5171461040b578063f887ea401461042b57600080fd5b80636c0a24eb146102a45780636ddd1713146102ba57806370a08231146102db578063715018a614610311578063893d20e81461032657600080fd5b80632f54bf6e116100f25780632f54bf6e14610202578063313ce56714610231578063364333f41461024d57806352f7c98814610264578063571ac8b01461028457600080fd5b80630445b6671461013a57806306fdde0314610163578063095ea7b31461019d57806318160ddd146101cd57806323b872dd146101e257600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060105481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b50604080518082019091526008815267556e692050756e6b60c01b60208201525b60405161015a91906111c4565b3480156101a957600080fd5b506101bd6101b836600461112f565b61044b565b604051901515815260200161015a565b3480156101d957600080fd5b50600354610150565b3480156101ee57600080fd5b506101bd6101fd3660046110ee565b6104b8565b34801561020e57600080fd5b506101bd61021d36600461107b565b6000546001600160a01b0391821691161490565b34801561023d57600080fd5b506040516009815260200161015a565b34801561025957600080fd5b5061026261057a565b005b34801561027057600080fd5b5061026261027f366004611174565b6105b6565b34801561029057600080fd5b506101bd61029f36600461107b565b610604565b3480156102b057600080fd5b5061015060045481565b3480156102c657600080fd5b50600f546101bd90600160a01b900460ff1681565b3480156102e757600080fd5b506101506102f636600461107b565b6001600160a01b031660009081526005602052604090205490565b34801561031d57600080fd5b50610262610612565b34801561033257600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561036457600080fd5b506040805180820190915260048152630554e49560e41b6020820152610190565b34801561039157600080fd5b50600f54610340906001600160a01b031681565b3480156103b157600080fd5b506101bd6103c036600461112f565b610681565b3480156103d157600080fd5b506101506103e03660046110b5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561041757600080fd5b5061026261042636600461115b565b61068e565b34801561043757600080fd5b50600e54610340906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104a69086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610565576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546105409184906106d9565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610570848484610713565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105b3573d6000803e3d6000fd5b50565b6000546001600160a01b031633146105e95760405162461bcd60e51b81526004016105e090611219565b60405180910390fd5b6009829055600a8190556105fd81836112aa565b600b555050565b60006104b28260001961044b565b6000546001600160a01b0316331461063c5760405162461bcd60e51b81526004016105e090611219565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000610573338484610713565b6000546001600160a01b031633146106b85760405162461bcd60e51b81526004016105e090611219565b6103e8816003546106c991906112e4565b6106d391906112c2565b60045550565b600081848411156106fd5760405162461bcd60e51b81526004016105e091906111c4565b50600061070a8486611303565b95945050505050565b60115460009060ff16156107335761072c84848461093d565b9050610573565b600f546001600160a01b0384811691161480159061075f57506002546001600160a01b03848116911614155b1561080a576001600160a01b03831660009081526008602052604090205460ff16806107b057506004546001600160a01b0384166000908152600560205260409020546107ad9084906112aa565b11155b61080a5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105e0565b610812610a23565b1561081f5761081f610a7b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108719184906106d9565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108a657826108b0565b6108b08584610e45565b6001600160a01b0385166000908152600560205260409020549091506108d69082610eeb565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061092a9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461098e9184906106d9565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109bd9083610eeb565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a119086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a44575060115460ff16155b8015610a595750600f54600160a01b900460ff165b8015610a7657506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610aae91600291610aa89182908790610f4a565b90610fc9565b90506000610abc838361100b565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610af657610af6611330565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190611098565b81600181518110610b9557610b95611330565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610bdf908690600090879030904290600401611239565b600060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b505050506000610c26824761100b90919063ffffffff16565b90506000610c4c610c436002600954610fc990919063ffffffff16565b600b549061100b565b90506000610c6e6002610aa884610aa860095488610f4a90919063ffffffff16565b90506000610c8b83610aa8600a5487610f4a90919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610ce2576040519150601f19603f3d011682016040523d82523d6000602084013e610ce7565b606091505b5050905080610d385760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105e0565b8815610e2f57600e5460405163f305d71960e01b8152306004820152602481018b9052600060448201819052606482015273034aaa71648cc156d01f9eb6b5294f80fedf3eb060848201524260a48201526001600160a01b039091169063f305d71990859060c4016060604051808303818588803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610df29190611196565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e63600c54610aa8600b5486610f4a90919063ffffffff16565b30600090815260056020526040902054909150610e809082610eeb565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed19085815260200190565b60405180910390a3610ee3838261100b565b949350505050565b600080610ef883856112aa565b9050838110156105735760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e0565b600082610f59575060006104b2565b6000610f6583856112e4565b905082610f7285836112c2565b146105735760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e0565b600061057383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061104d565b600061057383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106d9565b6000818361106e5760405162461bcd60e51b81526004016105e091906111c4565b50600061070a84866112c2565b60006020828403121561108d57600080fd5b813561057381611346565b6000602082840312156110aa57600080fd5b815161057381611346565b600080604083850312156110c857600080fd5b82356110d381611346565b915060208301356110e381611346565b809150509250929050565b60008060006060848603121561110357600080fd5b833561110e81611346565b9250602084013561111e81611346565b929592945050506040919091013590565b6000806040838503121561114257600080fd5b823561114d81611346565b946020939093013593505050565b60006020828403121561116d57600080fd5b5035919050565b6000806040838503121561118757600080fd5b50508035926020909101359150565b6000806000606084860312156111ab57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156111f1578581018301518582016040015282016111d5565b81811115611203576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112895784516001600160a01b031683529383019391830191600101611264565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156112bd576112bd61131a565b500190565b6000826112df57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156112fe576112fe61131a565b500290565b6000828210156113155761131561131a565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146105b357600080fdfea26469706673582212202cda02355479ce753f201bb60203580e1a806808dd3623d985038ca1cc01ca0c64736f6c63430008050033

Deployed Bytecode Sourcemap

4176:7743:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5185:54;;;;;;;;;;;;;;;;;;;6498:25:1;;;6486:2;6471:18;5185:54:0;;;;;;;;6266:80;;;;;;;;;;-1:-1:-1;6338:5:0;;;;;;;;;;;;-1:-1:-1;;;6338:5:0;;;;6266:80;;;;;;;:::i;6688:216::-;;;;;;;;;;-1:-1:-1;6688:216:0;;;;;:::i;:::-;;:::i;:::-;;;3640:14:1;;3633:22;3615:41;;3603:2;3588:18;6688:216:0;3570:92:1;5996:88:0;;;;;;;;;;-1:-1:-1;6069:12:0;;5996:88;;7206:370;;;;;;;;;;-1:-1:-1;7206:370:0;;;;;:::i;:::-;;:::i;2414:103::-;;;;;;;;;;-1:-1:-1;2414:103:0;;;;;:::i;:::-;2469:4;2504:5;-1:-1:-1;;;;;2493:16:0;;;2504:5;;2493:16;;2414:103;6090:80;;;;;;;;;;-1:-1:-1;6090:80:0;;4496:1;7914:36:1;;7902:2;7887:18;6090:80:0;7869:87:1;11348:118:0;;;;;;;;;;;;;:::i;:::-;;11624:220;;;;;;;;;;-1:-1:-1;11624:220:0;;;;;:::i;:::-;;:::i;6912:122::-;;;;;;;;;;-1:-1:-1;6912:122:0;;;;;:::i;:::-;;:::i;4569:60::-;;;;;;;;;;;;;;;;5148:30;;;;;;;;;;-1:-1:-1;5148:30:0;;;;-1:-1:-1;;;5148:30:0;;;;;;6436:105;;;;;;;;;;-1:-1:-1;6436:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6520:18:0;6502:7;6520:18;;;:9;:18;;;;;;;6436:105;2523:131;;;;;;;;;;;;;:::i;6352:78::-;;;;;;;;;;-1:-1:-1;6404:7:0;6422:5;-1:-1:-1;;;;;6422:5:0;6352:78;;;-1:-1:-1;;;;;2819:32:1;;;2801:51;;2789:2;2774:18;6352:78:0;2756:102:1;6176:84:0;;;;;;;;;;-1:-1:-1;6250:7:0;;;;;;;;;;;;-1:-1:-1;;;6250:7:0;;;;6176:84;;5120:19;;;;;;;;;;-1:-1:-1;5120:19:0;;;;-1:-1:-1;;;;;5120:19:0;;;7042:156;;;;;;;;;;-1:-1:-1;7042:156:0;;;;;:::i;:::-;;:::i;6547:133::-;;;;;;;;;;-1:-1:-1;6547:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6649:19:0;;;6631:7;6649:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6547:133;11474:142;;;;;;;;;;-1:-1:-1;11474:142:0;;;;;:::i;:::-;;:::i;5089:24::-;;;;;;;;;;-1:-1:-1;5089:24:0;;;;-1:-1:-1;;;;;5089:24:0;;;6688:216;6792:10;6763:4;6780:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6780:32:0;;;;;;;;;;:41;;;6837:37;6763:4;;6780:32;;6837:37;;;;6815:6;6498:25:1;;6486:2;6471:18;;6453:76;6837:37:0;;;;;;;;-1:-1:-1;6892:4:0;6688:216;;;;;:::o;7206:370::-;-1:-1:-1;;;;;7326:19:0;;7306:4;7326:19;;;:11;:19;;;;;;;;7346:10;7326:31;;;;;;;;-1:-1:-1;;7326:52:0;7323:186;;7428:69;;;;;;;;;;;-1:-1:-1;;;7428:69:0;;;;;;;;-1:-1:-1;;;;;7428:19:0;;-1:-1:-1;7428:19:0;;;:11;:19;;;;;7448:10;7428:31;;;;;;;;;;:69;;7464:6;;7428:35;:69::i;:::-;-1:-1:-1;;;;;7394:19:0;;;;;;:11;:19;;;;;;;;7414:10;7394:31;;;;;;;:103;7323:186;7528:40;7542:6;7550:9;7561:6;7528:13;:40::i;:::-;7521:47;;7206:370;;;;;;:::o;11348:118::-;11405:20;;11397:61;;-1:-1:-1;;;;;11405:20:0;;;;11436:21;11397:61;;;;;11405:20;11397:61;11405:20;11397:61;11436:21;11405:20;11397:61;;;;;;;;;;;;;;;;;;;;;11348:118::o;11624:220::-;2469:4;2504:5;-1:-1:-1;;;;;2504:5:0;2375:10;2493:16;2359:38;;;;-1:-1:-1;;;2359:38:0;;;;;;;:::i;:::-;;;;;;;;;11717:12:::1;:28:::0;;;11758:12:::1;:28:::0;;;11809:27:::1;11773:13:::0;11732;11809:27:::1;:::i;:::-;11798:8;:38:::0;-1:-1:-1;;11624:220:0:o;6912:122::-;6967:4;6991:35;6999:7;-1:-1:-1;;6991:7:0;:35::i;2523:131::-;2469:4;2504:5;-1:-1:-1;;;;;2504:5:0;2375:10;2493:16;2359:38;;;;-1:-1:-1;;;2359:38:0;;;;;;;:::i;:::-;2596:1:::1;2580:18:::0;;-1:-1:-1;;;;;;2580:18:0::1;::::0;;2614:32:::1;::::0;2801:51:1;;;2614:32:0::1;::::0;2789:2:1;2774:18;2614:32:0::1;;;;;;;2523:131::o:0;7042:156::-;7122:4;7146:44;7160:10;7172:9;7183:6;7146:13;:44::i;11474:142::-;2469:4;2504:5;-1:-1:-1;;;;;2504:5:0;2375:10;2493:16;2359:38;;;;-1:-1:-1;;;2359:38:0;;;;;;;:::i;:::-;11604:4:::1;11586:13;11571:12;;:28;;;;:::i;:::-;11570:38;;;;:::i;:::-;11551:16;:57:::0;-1:-1:-1;11474:142:0:o;503:190::-;589:7;625:12;617:6;;;;609:29;;;;-1:-1:-1;;;609:29:0;;;;;;;;:::i;:::-;-1:-1:-1;649:9:0;661:5;665:1;661;:5;:::i;:::-;649:17;503:190;-1:-1:-1;;;;;503:190:0:o;7584:792::-;7696:6;;7676:4;;7696:6;;7693:63;;;7712:41;7727:6;7735:9;7746:6;7712:14;:41::i;:::-;7705:48;;;;7693:63;7793:4;;-1:-1:-1;;;;;7780:17:0;;;7793:4;;7780:17;;;;:38;;-1:-1:-1;7814:4:0;;-1:-1:-1;;;;;7801:17:0;;;7814:4;;7801:17;;7780:38;7776:200;;;-1:-1:-1;;;;;7843:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;7906:16:0;;-1:-1:-1;;;;;7873:20:0;;;;;;:9;:20;;;;;;:29;;7896:6;;7873:29;:::i;:::-;:49;;7843:79;7835:129;;;;-1:-1:-1;;;7835:129:0;;4697:2:1;7835:129:0;;;4679:21:1;4736:2;4716:18;;;4709:30;4775:34;4755:18;;;4748:62;-1:-1:-1;;;4826:18:1;;;4819:35;4871:19;;7835:129:0;4669:227:1;7835:129:0;7999:16;:14;:16::i;:::-;7996:35;;;8018:10;:8;:10::i;:::-;8064:53;;;;;;;;;;;-1:-1:-1;;;8064:53:0;;;;;;;;-1:-1:-1;;;;;8064:17:0;;-1:-1:-1;8064:17:0;;;:9;:17;;;;;;;;:53;;8086:6;;8064:21;:53::i;:::-;-1:-1:-1;;;;;8044:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8813:11;:19;;;;;;;;8812:20;8155:56;;8205:6;8155:56;;;8179:23;8187:6;8195;8179:7;:23::i;:::-;-1:-1:-1;;;;;8245:20:0;;;;;;:9;:20;;;;;;8130:81;;-1:-1:-1;8245:40:0;;8130:81;8245:24;:40::i;:::-;-1:-1:-1;;;;;8222:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8303:43;;;;;;;;;;8331:14;6498:25:1;;6486:2;6471:18;;6453:76;8303:43:0;;;;;;;;-1:-1:-1;8364:4:0;;7584:792;-1:-1:-1;;;;7584:792:0:o;8388:330::-;8518:53;;;;;;;;;;;-1:-1:-1;;;8518:53:0;;;;;;;;-1:-1:-1;;;;;8518:17:0;;8481:4;8518:17;;;:9;:17;;;;;;;:53;;8540:6;;8518:21;:53::i;:::-;-1:-1:-1;;;;;8498:17:0;;;;;;;:9;:17;;;;;;:73;;;;8605:20;;;;;;;:32;;8630:6;8605:24;:32::i;:::-;-1:-1:-1;;;;;8582:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8653:35;;;;;;;;;;8681:6;6498:25:1;;6486:2;6471:18;;6453:76;8653:35:0;;;;;;;;-1:-1:-1;8706:4:0;8388:330;;;;;:::o;9185:197::-;9272:4;;9234;;-1:-1:-1;;;;;9272:4:0;9258:10;:18;;;;:38;;-1:-1:-1;9290:6:0;;;;9289:7;9258:38;:62;;;;-1:-1:-1;9309:11:0;;-1:-1:-1;;;9309:11:0;;;;9258:62;:116;;;;-1:-1:-1;9361:13:0;;9351:4;9333:24;;;;:9;:24;;;;;;:41;;9258:116;9251:123;;9185:197;:::o;9390:1572::-;5290:6;:13;;-1:-1:-1;;5290:13:0;5299:4;5290:13;;;9470::::1;::::0;9563:8:::1;::::0;9545:12:::1;::::0;5290:6;;9520:59:::1;::::0;9577:1:::1;::::0;9520:52:::1;::::0;;;9470:13;;9520:24:::1;:38::i;:::-;:42:::0;::::1;:52::i;:59::-;9494:85:::0;-1:-1:-1;9590:20:0::1;9613:41;:20:::0;9494:85;9613:24:::1;:41::i;:::-;9691:16;::::0;;9705:1:::1;9691:16:::0;;;;;::::1;::::0;;9590:64;;-1:-1:-1;9667:21:0::1;::::0;9691:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9691:16:0::1;9667:40;;9736:4;9718;9723:1;9718:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9718:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9762:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9762:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9718:7;;9762:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9752:4;9757:1;9752:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9752:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9846:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;9846:188:0;;9812:21:::1;::::0;9846:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9918:12;;9788:21:::1;::::0;9961:4;;9988::::1;::::0;10008:15:::1;::::0;9846:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10045:17;10065:40;10091:13;10065:21;:25;;:40;;;;:::i;:::-;10045:60;;10116:19;10138:33;10151:19;10168:1;10151:12;;:16;;:19;;;;:::i;:::-;10138:8;::::0;;:12:::1;:33::i;:::-;10116:55;;10182:26;10211:51;10260:1;10211:44;10243:11;10211:27;10225:12;;10211:9;:13;;:27;;;;:::i;:51::-;10182:80;;10273:26;10302:44;10334:11;10302:27;10316:12;;10302:9;:13;;:27;;;;:::i;:44::-;10420:20;::::0;10412:77:::1;::::0;10273:73;;-1:-1:-1;10362:21:0::1;::::0;-1:-1:-1;;;;;10420:20:0;;::::1;::::0;10479:5:::1;::::0;10273:73;;10362:21;10412:77;10362:21;10412:77;10273:73;10420:20;10479:5;10412:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10361:128;;;10508:16;10500:59;;;::::0;-1:-1:-1;;;10500:59:0;;5459:2:1;10500:59:0::1;::::0;::::1;5441:21:1::0;5498:2;5478:18;;;5471:30;5537:32;5517:18;;;5510:60;5587:18;;10500:59:0::1;5431:180:1::0;10500:59:0::1;10575:19:::0;;10572:383:::1;;10610:6;::::0;:265:::1;::::0;-1:-1:-1;;;10610:265:0;;10686:4:::1;10610:265;::::0;::::1;3204:34:1::0;3254:18;;;3247:34;;;10610:6:0::1;3297:18:1::0;;;3290:34;;;3340:18;;;3333:34;10784:42:0::1;3383:19:1::0;;;3376:44;10845:15:0::1;3436:19:1::0;;;3429:35;-1:-1:-1;;;;;10610:6:0;;::::1;::::0;:22:::1;::::0;10640:18;;3138:19:1;;10610:265:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10895:48:0::1;::::0;;7693:25:1;;;7749:2;7734:18;;7727:34;;;10895:48:0::1;::::0;-1:-1:-1;7666:18:1;10895:48:0::1;;;;;;;10572:383;-1:-1:-1::0;;5308:6:0;:14;;-1:-1:-1;;5308:14:0;;;-1:-1:-1;;;;;;;;9390:1572:0:o;8848:329::-;8915:7;8935:17;8955:40;8980:14;;8955:20;8966:8;;8955:6;:10;;:20;;;;:::i;:40::-;9051:4;9033:24;;;;:9;:24;;;;;;8935:60;;-1:-1:-1;9033:39:0;;8935:60;9033:28;:39::i;:::-;9024:4;9006:24;;;;:9;:24;;;;;;;:66;;;;9088:42;;-1:-1:-1;;;;;9088:42:0;;;;;;;9120:9;6498:25:1;;6486:2;6471:18;;6453:76;9088:42:0;;;;;;;;9148:21;:6;9159:9;9148:10;:21::i;:::-;9141:28;8848:329;-1:-1:-1;;;;8848:329:0:o;176:179::-;234:7;;266:5;270:1;266;:5;:::i;:::-;254:17;;295:1;290;:6;;282:46;;;;-1:-1:-1;;;282:46:0;;5103:2:1;282:46:0;;;5085:21:1;5142:2;5122:18;;;5115:30;5181:29;5161:18;;;5154:57;5228:18;;282:46:0;5075:177:1;699:246:0;757:7;781:6;777:47;;-1:-1:-1;811:1:0;804:8;;777:47;834:9;846:5;850:1;846;:5;:::i;:::-;834:17;-1:-1:-1;879:1:0;870:5;874:1;834:17;870:5;:::i;:::-;:10;862:56;;;;-1:-1:-1;;;862:56:0;;5818:2:1;862:56:0;;;5800:21:1;5857:2;5837:18;;;5830:30;5896:34;5876:18;;;5869:62;-1:-1:-1;;;5947:18:1;;;5940:31;5988:19;;862:56:0;5790:223:1;951:132:0;1009:7;1036:39;1040:1;1043;1036:39;;;;;;;;;;;;;;;;;:3;:39::i;361:136::-;419:7;446:43;450:1;453;446:43;;;;;;;;;;;;;;;;;:3;:43::i;1089:189::-;1175:7;1210:12;1203:5;1195:28;;;;-1:-1:-1;;;1195:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1234:9:0;1246:5;1250:1;1246;:5;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1521:1;1518;1511:12;1473:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1463:228:1:o;1696:180::-;1755:6;1808:2;1796:9;1787:7;1783:23;1779:32;1776:2;;;1824:1;1821;1814:12;1776:2;-1:-1:-1;1847:23:1;;1766:110;-1:-1:-1;1766:110:1:o;1881:248::-;1949:6;1957;2010:2;1998:9;1989:7;1985:23;1981:32;1978:2;;;2026:1;2023;2016:12;1978:2;-1:-1:-1;;2049:23:1;;;2119:2;2104:18;;;2091:32;;-1:-1:-1;1968:161:1:o;2134:306::-;2222:6;2230;2238;2291:2;2279:9;2270:7;2266:23;2262:32;2259:2;;;2307:1;2304;2297:12;2259:2;2336:9;2330:16;2320:26;;2386:2;2375:9;2371:18;2365:25;2355:35;;2430:2;2419:9;2415:18;2409:25;2399:35;;2249:191;;;;;:::o;3893:597::-;4005:4;4034:2;4063;4052:9;4045:21;4095:6;4089:13;4138:6;4133:2;4122:9;4118:18;4111:34;4163:1;4173:140;4187:6;4184:1;4181:13;4173:140;;;4282:14;;;4278:23;;4272:30;4248:17;;;4267:2;4244:26;4237:66;4202:10;;4173:140;;;4331:6;4328:1;4325:13;4322:2;;;4401:1;4396:2;4387:6;4376:9;4372:22;4368:31;4361:42;4322:2;-1:-1:-1;4474:2:1;4453:15;-1:-1:-1;;4449:29:1;4434:45;;;;4481:2;4430:54;;4014:476;-1:-1:-1;;;4014:476:1:o;6018:329::-;6220:2;6202:21;;;6259:1;6239:18;;;6232:29;-1:-1:-1;;;6292:2:1;6277:18;;6270:36;6338:2;6323:18;;6192:155::o;6534:980::-;6796:4;6844:3;6833:9;6829:19;6875:6;6864:9;6857:25;6901:2;6939:6;6934:2;6923:9;6919:18;6912:34;6982:3;6977:2;6966:9;6962:18;6955:31;7006:6;7041;7035:13;7072:6;7064;7057:22;7110:3;7099:9;7095:19;7088:26;;7149:2;7141:6;7137:15;7123:29;;7170:1;7180:195;7194:6;7191:1;7188:13;7180:195;;;7259:13;;-1:-1:-1;;;;;7255:39:1;7243:52;;7350:15;;;;7315:12;;;;7291:1;7209:9;7180:195;;;-1:-1:-1;;;;;;;7431:32:1;;;;7426:2;7411:18;;7404:60;-1:-1:-1;;;7495:3:1;7480:19;7473:35;7392:3;6805:709;-1:-1:-1;;;6805:709:1:o;7961:128::-;8001:3;8032:1;8028:6;8025:1;8022:13;8019:2;;;8038:18;;:::i;:::-;-1:-1:-1;8074:9:1;;8009:80::o;8094:217::-;8134:1;8160;8150:2;;8204:10;8199:3;8195:20;8192:1;8185:31;8239:4;8236:1;8229:15;8267:4;8264:1;8257:15;8150:2;-1:-1:-1;8296:9:1;;8140:171::o;8316:168::-;8356:7;8422:1;8418;8414:6;8410:14;8407:1;8404:21;8399:1;8392:9;8385:17;8381:45;8378:2;;;8429:18;;:::i;:::-;-1:-1:-1;8469:9:1;;8368:116::o;8489:125::-;8529:4;8557:1;8554;8551:8;8548:2;;;8562:18;;:::i;:::-;-1:-1:-1;8599:9:1;;8538:76::o;8619:127::-;8680:10;8675:3;8671:20;8668:1;8661:31;8711:4;8708:1;8701:15;8735:4;8732:1;8725:15;8751:127;8812:10;8807:3;8803:20;8800:1;8793:31;8843:4;8840:1;8833:15;8867:4;8864:1;8857:15;9015:131;-1:-1:-1;;;;;9090:31:1;;9080:42;;9070:2;;9136:1;9133;9126:12

Swarm Source

ipfs://2cda02355479ce753f201bb60203580e1a806808dd3623d985038ca1cc01ca0c

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.