ETH Price: $3,262.68 (-2.16%)

Contract

0x24A1DDE6B4F0C144Dbe3420f50ec1F5Cc56E2D58
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exit182825482023-10-05 6:33:23444 days ago1696487603IN
0x24A1DDE6...Cc56E2D58
0 ETH0.000522367.55441851
Withdraw181399532023-09-15 6:50:59464 days ago1694760659IN
0x24A1DDE6...Cc56E2D58
0 ETH0.000533019.8406995
Transfer170718672023-04-18 6:42:23614 days ago1681800143IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0054816842.92492601
Exit137449672021-12-05 8:14:591113 days ago1638692099IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0083848597.21910153
Withdraw125108812021-05-26 16:00:311306 days ago1622044831IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0032417159.85
Exit122243722021-04-12 9:10:251350 days ago1618218625IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0047199467.00000145
Withdraw113682662020-12-01 18:32:001482 days ago1606847520IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0005482421.9
Exit113682402020-12-01 18:26:591482 days ago1606847219IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0015498322
Transfer113564882020-11-29 23:15:301484 days ago1606691730IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0019157617
Approve113233532020-11-24 20:57:501489 days ago1606251470IN
0x24A1DDE6...Cc56E2D58
0 ETH0.001131350
Approve113233492020-11-24 20:57:291489 days ago1606251449IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0008597838
Withdraw112410762020-11-12 6:01:231501 days ago1605160883IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0007255213.2
Sell112410552020-11-12 5:56:231501 days ago1605160583IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0005316613.2
Approve112286882020-11-10 8:14:071503 days ago1604996047IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0009050440
Reinvest112066032020-11-06 22:54:291507 days ago1604703269IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0026176530
Withdraw112063962020-11-06 22:03:091507 days ago1604700189IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0009893518.00000145
Transfer111992982020-11-05 20:10:431508 days ago1604607043IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0029955221
Buy111992592020-11-05 19:58:531508 days ago1604606333IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0026156921
Buy111941042020-11-05 0:59:061509 days ago1604537946IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0020863624.1
Approve111746762020-11-02 1:25:101512 days ago1604280310IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0008371637
Approve111726492020-11-01 17:51:161512 days ago1604253076IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0003393915
Approve111715352020-11-01 13:45:261512 days ago1604238326IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0005430224
Approve111715232020-11-01 13:41:561512 days ago1604238116IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0005430224
Approve111715152020-11-01 13:39:381512 days ago1604237978IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0005430224
Approve111715082020-11-01 13:38:381512 days ago1604237918IN
0x24A1DDE6...Cc56E2D58
0 ETH0.0005430224
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BlockStake

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-07-22
*/

// BLOCKCLOUT is a social DeFi network for cryptocurrency enthusiasts 
// https://blockclout.com
// https://blockclout.com/staking
// https://discord.gg/HDc2U5M
// https://t.me/blockcloutENG
// https://reddit.com/r/blockcloutENG
// https://medium.com/@blockclout
pragma solidity ^ 0.4.26;

library SafeMath {

    function mul(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256 c) 
    {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }
    
    function div(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256) 
    {
        return a / b;
    }
    
    function sub(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256) 
    {
        assert(b <= a);
        return a - b;
    }
    
    function add(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256 c) 
    {
        c = a + b;
        assert(c >= a);
        return c;
    }

}


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

}


contract BlockStake {

    mapping(address => bool) internal ambassadors_;

    uint256 constant internal ambassadorMaxPurchase_ = 1000000e18;

    mapping(address => uint256) internal ambassadorAccumulatedQuota_;

    bool public onlyAmbassadors = true;

    uint256 ACTIVATION_TIME = now;

    modifier antiEarlyWhale(
        uint256 _amountOfERC20, 
        address _customerAddress
    )
    {
        if (now >= ACTIVATION_TIME) {
            onlyAmbassadors = false;
        }
        
        if (onlyAmbassadors) {
            
            require((ambassadors_[_customerAddress] == true && 
            
            (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfERC20) <= 
                ambassadorMaxPurchase_));
                
            ambassadorAccumulatedQuota_[_customerAddress] = 
                SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfERC20);
    
            _;
        
        } else {
            onlyAmbassadors = false;
            _;
        }
    }

    modifier onlyTokenHolders {
        require(myTokens() > 0);
        _;
    }

    modifier onlyDivis {
        require(myDividends(true) > 0);
        _;
    }

    event onDistribute(
        address indexed customerAddress,
        uint256 price
    );

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingERC20,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ERC20Earned,
        uint timestamp
    );

    event onReinvestment(
        address indexed customerAddress,
        uint256 ERC20Reinvested,
        uint256 tokensMinted
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 ERC20Withdrawn
    );

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );

    string public name = "BlockStake";
    
    string public symbol = "BLOCK";
    
    uint8 constant public decimals = 18;
    
    uint256 internal entryFee_ = 5;
    
    uint256 internal exitFee_ = 15;
    
    uint256 internal referralFee_ = 10;
    
    uint256 internal maintenanceFee_ = 5;
    
    address internal maintenanceAddress;
    
    uint256 constant internal magnitude = 2 ** 64;
    
    mapping(address => uint256) public tokenBalanceLedger_;
    
    mapping(address => uint256) public referralBalance_;
    
    mapping(address => uint256) public totalReferralEarnings_;
    
    mapping(address => int256) public payoutsTo_;
    
    mapping(address => uint256) public invested_;
    
    uint256 internal tokenSupply_;
    
    uint256 internal profitPerShare_;
    
    IERC20 erc20;

    constructor() public {
        maintenanceAddress = address(0x03298351da3fceED5Ad95Bd3e32829b4740EA277);
        erc20 = IERC20(address(0xa10ae543db5d967a73e9abcc69c81a18a7fc0a78));
    }
    
    function checkAndTransfer(
        uint256 _amount
    ) 
        private 
    {
        require(
            erc20.transferFrom(
                msg.sender, 
                address(this), 
                _amount
            ) == true, "transfer must succeed"
        );
    }

    function buy(
        uint256 _amount, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        
        return purchaseTokens(
            _referredBy, 
            msg.sender, 
            _amount
        );
    }
    
    function buyFor(
        uint256 _amount, 
        address _customerAddress, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        return purchaseTokens(
            _referredBy, 
            _customerAddress,
            _amount
        );
    }
    
    function() payable public {
        revert();
    }
    
    function reinvest() 
        onlyDivis 
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        uint256 _tokens = purchaseTokens(0x0, _customerAddress, _dividends);
        
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    function exit() external {
        
        address _customerAddress = msg.sender;
        
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        
        if (_tokens > 0) sell(_tokens);
        
        withdraw();
    }
    
    function withdraw() 
        onlyDivis
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        erc20.transfer(_customerAddress, _dividends);
        
        emit onWithdraw(_customerAddress, _dividends);
    }
    
    function sell(
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        public 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
        
        uint256 _dividends = SafeMath.div(SafeMath.mul(_amountOfERC20s, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_amountOfERC20s, _dividends);
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
        
        int256 _updatedPayouts = 
            (int256)(profitPerShare_ * _amountOfERC20s + (_taxedERC20 * magnitude));
            
        payoutsTo_[_customerAddress] -= _updatedPayouts;
        
        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(
                profitPerShare_, (_dividends * magnitude) / tokenSupply_
            );
        }
        
        emit Transfer(_customerAddress, address(0), _amountOfERC20s);
        emit onTokenSell(_customerAddress, _amountOfERC20s, _taxedERC20, now);
    }
    
    function transfer(
        address _toAddress, 
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        external 
        returns(bool) 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
    
        if (myDividends(true) > 0) {
            withdraw();
        }
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
            
        tokenBalanceLedger_[_toAddress] = 
            SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfERC20s);
        
        payoutsTo_[_customerAddress] -= (int256)(profitPerShare_ * _amountOfERC20s);
        payoutsTo_[_toAddress] += (int256)(profitPerShare_ * _amountOfERC20s);
        
        profitPerShare_ = SafeMath.add(profitPerShare_, (_amountOfERC20s * magnitude) / tokenSupply_);
        
        emit Transfer(_customerAddress, _toAddress, _amountOfERC20s);
        
        return true;
    }
    
    function totalERC20Balance() 
        public 
        view 
        returns(uint256) 
    {
        return erc20.balanceOf(address(this));
    }

    function totalSupply() 
        public 
        view 
        returns(uint256) 
    {
        return tokenSupply_;
    }

    function myTokens() 
        public 
        view 
        returns(uint256) 
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
    
    function myDividends(
        bool _includeReferralBonus
    ) 
        public 
        view 
        returns(uint256) 
    {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + 
            referralBalance_[_customerAddress] : dividendsOf(_customerAddress);
    }
    
    function balanceOf(
        address _customerAddress
    ) 
        public 
        view 
        returns(uint256) 
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    function dividendsOf(
        address _customerAddress
    ) 
        public 
        view 
        returns(uint256) 
    {
        return (uint256)((int256)(
            profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - 
            payoutsTo_[_customerAddress]) / magnitude;
    }
    
    function sellPrice() 
        public 
        view 
        returns(uint256) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function buyPrice() 
        public 
        view 
        returns(uint256) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, entryFee_), 100);
        uint256 _taxedERC20 = SafeMath.add(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function getInvested() 
        public 
        view 
        returns(uint256) 
    {
        return invested_[msg.sender];
    }
    
    function totalReferralEarnings(
        address _client
    )
        public 
        view 
        returns(uint256)
    {
        return totalReferralEarnings_[_client];
    }
    
    function referralBalance(
        address _client 
    )
        public 
        view 
        returns(uint256)
    {
        return referralBalance_[_client];
    }
    
    function purchaseTokens(
        address _referredBy, 
        address _customerAddress, 
        uint256 _incomingERC20
    ) 
        internal 
        antiEarlyWhale(_incomingERC20, _customerAddress) 
        returns(uint256) 
    {
    invested_[msg.sender] += _incomingERC20;
    
    uint256 _undividedDividends = 
        SafeMath.div(
            SafeMath.mul(
                _incomingERC20, entryFee_
            ), 
        100);
    
    uint256 _maintenance = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, maintenanceFee_
            ), 
        100);
        
        
    uint256 _referralBonus = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, referralFee_
            ), 
        100);
    
    uint256 _dividends = 
        SafeMath.sub(
            _undividedDividends, SafeMath.add(
                _referralBonus, _maintenance
            )
        );
        
    uint256 _amountOfERC20s = 
        SafeMath.sub(_incomingERC20, _undividedDividends);
        
    uint256 _fee = _dividends * magnitude;
    
    require(
        _amountOfERC20s > 0 && 
        SafeMath.add(_amountOfERC20s, tokenSupply_) > tokenSupply_
    );
    
    referralBalance_[maintenanceAddress] = 
        SafeMath.add(referralBalance_[maintenanceAddress], _maintenance);
    
    if (_referredBy != address(0) && 
        _referredBy != _customerAddress)
    {
        referralBalance_[_referredBy] = 
            SafeMath.add(referralBalance_[_referredBy], _referralBonus);
            
        totalReferralEarnings_[_referredBy] = 
            SafeMath.add(totalReferralEarnings_[_referredBy], _referralBonus);
    } else {
        _dividends = SafeMath.add(_dividends, _referralBonus);
        _fee = _dividends * magnitude;
    }
    
    if (tokenSupply_ > 0) 
    {
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfERC20s);
        
        profitPerShare_ += ((_dividends * magnitude) / (tokenSupply_));
        _fee = _fee - (_fee - (_amountOfERC20s * ((_dividends * magnitude) / (tokenSupply_))));
        
    } else {
        tokenSupply_ = _amountOfERC20s;
    }

    tokenBalanceLedger_[_customerAddress] = 
        SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
    
    int256 _updatedPayouts = (int256)((profitPerShare_ * _amountOfERC20s) - _fee);
        
    payoutsTo_[_customerAddress] += _updatedPayouts;
    
    emit Transfer(
        address(0), 
        msg.sender, 
        _amountOfERC20s
    );
    
    emit onTokenPurchase(
        _customerAddress, 
        _incomingERC20, 
        _amountOfERC20s, 
        _referredBy, 
        now
    );
    
    return _amountOfERC20s;
    }

    function multiData()
    public
    view
    returns(
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256,
        uint256,
        uint256
    )
    {
        return (
        
        // [0] Total ERC20 in contract 
        totalERC20Balance(),
        
        // [1] Total STAKE TOKEN supply
        totalSupply(),
        
        // [2] User STAKE TOKEN balance 
        balanceOf(msg.sender),
        
        // [3] User ERC20 balance
        erc20.balanceOf(msg.sender),
        
        // [4] User divs 
        dividendsOf(msg.sender),
        
        // [5] Buy price 
        buyPrice(),
        
        // [6] Sell price 
        sellPrice(),
        
        // [7] Total referral earnings  
        totalReferralEarnings(msg.sender),
        
        // [8] Current referral earnings 
        referralBalance(msg.sender)
        );
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"},{"name":"_referredBy","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_client","type":"address"}],"name":"totalReferralEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_client","type":"address"}],"name":"referralBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenBalanceLedger_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"invested_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"totalReferralEarnings_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfERC20s","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralBalance_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfERC20s","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalERC20Balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingERC20","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ERC20Earned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Reinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Withdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

6002805460ff191660011790554260035560c0604052600a60808190527f426c6f636b5374616b650000000000000000000000000000000000000000000060a090815262000051916004919062000107565b506040805180820190915260058082527f424c4f434b000000000000000000000000000000000000000000000000000000602090920191825262000096918162000107565b506005600655600f600755600a6008556005600955348015620000b857600080fd5b50600a8054600160a060020a03199081167303298351da3fceed5ad95bd3e32829b4740ea277179091556012805490911673a10ae543db5d967a73e9abcc69c81a18a7fc0a78179055620001ac565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014a57805160ff19168380011785556200017a565b828001600101855582156200017a579182015b828111156200017a5782518255916020019190600101906200015d565b50620001889291506200018c565b5090565b620001a991905b8082111562000188576000815560010162000193565b90565b61172580620001bc6000396000f3006080604052600436106101685763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461016d57806306fdde03146101a057806318160ddd1461022a57806327defa1f1461023f578063313ce5671461026857806332b74ec7146102935780633ccfd60b146102bd57806346b6ef41146102d45780634b750334146102f5578063563bfecc1461030a5780635c5a0a9d1461032b578063688abbf71461034c57806370a082311461036657806379fbd22c146103875780637deb6025146103a85780638620410b146103cc578063949e8acd146103e157806395d89b41146103f6578063989a9d171461040b578063a9059cbb1461042c578063befc3e2b14610450578063c664f7f114610465578063e1456cb414610486578063e4849b32146104a7578063e9fad8ee146104bf578063eabd1ddb146104d4578063f2b79df9146104e9578063fdb5a03e14610545575b600080fd5b34801561017957600080fd5b5061018e600160a060020a036004351661055a565b60408051918252519081900360200190f35b3480156101ac57600080fd5b506101b5610595565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ef5781810151838201526020016101d7565b50505050905090810190601f16801561021c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023657600080fd5b5061018e610623565b34801561024b57600080fd5b50610254610629565b604080519115158252519081900360200190f35b34801561027457600080fd5b5061027d610632565b6040805160ff9092168252519081900360200190f35b34801561029f57600080fd5b5061018e600435600160a060020a0360243581169060443516610637565b3480156102c957600080fd5b506102d2610655565b005b3480156102e057600080fd5b5061018e600160a060020a036004351661078c565b34801561030157600080fd5b5061018e6107a7565b34801561031657600080fd5b5061018e600160a060020a03600435166107da565b34801561033757600080fd5b5061018e600160a060020a03600435166107f5565b34801561035857600080fd5b5061018e6004351515610807565b34801561037257600080fd5b5061018e600160a060020a0360043516610848565b34801561039357600080fd5b5061018e600160a060020a0360043516610863565b3480156103b457600080fd5b5061018e600435600160a060020a0360243516610875565b3480156103d857600080fd5b5061018e610894565b3480156103ed57600080fd5b5061018e6108c0565b34801561040257600080fd5b506101b56108d2565b34801561041757600080fd5b5061018e600160a060020a036004351661092d565b34801561043857600080fd5b50610254600160a060020a036004351660243561093f565b34801561045c57600080fd5b5061018e610aa0565b34801561047157600080fd5b5061018e600160a060020a0360043516610ab3565b34801561049257600080fd5b5061018e600160a060020a0360043516610ac5565b3480156104b357600080fd5b506102d2600435610ad7565b3480156104cb57600080fd5b506102d2610c50565b3480156104e057600080fd5b5061018e610c7d565b3480156104f557600080fd5b506104fe610d13565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b34801561055157600080fd5b506102d2610e14565b600160a060020a03166000908152600e6020908152604080832054600b90925290912054601154680100000000000000009102919091030490565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b60105490565b60025460ff1681565b601281565b600061064284610ed4565b61064d828486610fe6565b949350505050565b60008060006106646001610807565b1161066e57600080fd5b33915061067b6000610807565b600160a060020a038084166000818152600e602090815260408083208054680100000000000000008802019055600c825280832080549084905560125482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096529601602485018190529051909650949093169363a9059cbb936044808501949193918390030190829087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050506040513d602081101561074757600080fd5b5050604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b600160a060020a03166000908152600d602052604090205490565b600080600080670de0b6b3a764000092506107ce6107c78460075461167c565b60646116a5565b915061064d83836116ba565b600160a060020a03166000908152600c602052604090205490565b600b6020526000908152604090205481565b6000338261081d576108188161055a565b610841565b600160a060020a0381166000908152600c602052604090205461083f8261055a565b015b9392505050565b600160a060020a03166000908152600b602052604090205490565b600f6020526000908152604090205481565b600061088083610ed4565b61088b823385610fe6565b90505b92915050565b600080600080670de0b6b3a764000092506108b46107c78460065461167c565b915061064d83836116cc565b6000336108cc81610848565b91505090565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b600d6020526000908152604090205481565b600080600061094c6108c0565b1161095657600080fd5b50336000818152600b602052604090205483111561097357600080fd5b600061097f6001610807565b111561098d5761098d610655565b610999601054846116ba565b601055600160a060020a0381166000908152600b60205260409020546109bf90846116ba565b600160a060020a038083166000908152600b602052604080822093909355908616815220546109ee90846116cc565b600160a060020a038581166000818152600b6020908152604080832095909555601180549487168352600e9091528482208054948902909403909355825491815292909220805492860290920190915554601054610a629190680100000000000000008602811515610a5c57fe5b046116cc565b601155604080518481529051600160a060020a0380871692908416916000805160206116da8339815191529181900360200190a35060019392505050565b336000908152600f602052604090205490565b600c6020526000908152604090205481565b600e6020526000908152604090205481565b6000806000806000610ae76108c0565b11610af157600080fd5b336000818152600b6020526040902054909450851115610b1057600080fd5b610b1f6107c78660075461167c565b9250610b2b85846116ba565b9150610b39601054866116ba565b601055600160a060020a0384166000908152600b6020526040902054610b5f90866116ba565b600160a060020a0385166000908152600b6020908152604080832093909355601154600e9091529181208054928802680100000000000000008602019283900390556010549192501015610bcf57610bcb601154601054680100000000000000008602811515610a5c57fe5b6011555b604080518681529051600091600160a060020a038716916000805160206116da8339815191529181900360200190a3604080518681526020810184905242818301529051600160a060020a038616917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a25050505050565b336000818152600b602052604081205490811115610c7157610c7181610ad7565b610c79610655565b5050565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610ce257600080fd5b505af1158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b5051905090565b6000806000806000806000806000610d29610c7d565b610d31610623565b610d3a33610848565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b5051610dd53361055a565b610ddd610894565b610de56107a7565b610dee3361078c565b610df7336107da565b985098509850985098509850985098509850909192939495969798565b600080600080610e246001610807565b11610e2e57600080fd5b339250610e3b6000610807565b600160a060020a0384166000908152600e602090815260408083208054680100000000000000008602019055600c90915281208054908290559091019250610e84908484610fe6565b905082600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b601254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610f4757600080fd5b505af1158015610f5b573d6000803e3d6000fd5b505050506040513d6020811015610f7157600080fd5b50511515600114610fe357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b600080600080600080600080888a6003544210151561100a576002805460ff191690555b60025460ff161561138c57600160a060020a03811660009081526020819052604090205460ff16151560011480156110675750600160a060020a03811660009081526001602052604090205469d3c21bcecceda100000090830111155b151561107257600080fd5b600160a060020a03811660009081526001602052604090205461109590836116cc565b600160a060020a038216600090815260016020908152604080832093909355338252600f90522080548c0190556006546110d4906107c7908d9061167c565b98506110e56107c78a60095461167c565b97506110f66107c78a60085461167c565b965061110b89611106898b6116cc565b6116ba565b95506111178b8a6116ba565b94506801000000000000000086029350600085118015611141575060105461113f86826116cc565b115b151561114c57600080fd5b600a54600160a060020a03166000908152600c602052604090205461117190896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d16158015906111b357508b600160a060020a03168d600160a060020a031614155b1561122857600160a060020a038d166000908152600c60205260409020546111db90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d9052205461120a90886116cc565b600160a060020a038e166000908152600d6020526040902055611243565b61123286886116cc565b955068010000000000000000860293505b600060105411156112a75761125a601054866116cc565b601081905568010000000000000000870281151561127457fe5b6011805492909104909101905560105468010000000000000000870281151561129957fe5b0485028403840393506112ad565b60108590555b600160a060020a038c166000908152600b60205260409020546112d090866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a384995061166c565b6002805460ff19169055336000908152600f6020526040902080548c0190556006546113bd906107c7908d9061167c565b98506113ce6107c78a60095461167c565b97506113df6107c78a60085461167c565b96506113ef89611106898b6116cc565b95506113fb8b8a6116ba565b94506801000000000000000086029350600085118015611425575060105461142386826116cc565b115b151561143057600080fd5b600a54600160a060020a03166000908152600c602052604090205461145590896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d161580159061149757508b600160a060020a03168d600160a060020a031614155b1561150c57600160a060020a038d166000908152600c60205260409020546114bf90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d905220546114ee90886116cc565b600160a060020a038e166000908152600d6020526040902055611527565b61151686886116cc565b955068010000000000000000860293505b6000601054111561158b5761153e601054866116cc565b601081905568010000000000000000870281151561155857fe5b6011805492909104909101905560105468010000000000000000870281151561157d57fe5b048502840384039350611591565b60108590555b600160a060020a038c166000908152600b60205260409020546115b490866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b600082151561168d5750600061088e565b5081810281838281151561169d57fe5b041461088e57fe5b600081838115156116b257fe5b049392505050565b6000828211156116c657fe5b50900390565b8181018281101561088e57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582025bdbc6d092025c93165d5399ef4cf166651ba07160cf44faac94a2a73f30c5d0029

Deployed Bytecode

0x6080604052600436106101685763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461016d57806306fdde03146101a057806318160ddd1461022a57806327defa1f1461023f578063313ce5671461026857806332b74ec7146102935780633ccfd60b146102bd57806346b6ef41146102d45780634b750334146102f5578063563bfecc1461030a5780635c5a0a9d1461032b578063688abbf71461034c57806370a082311461036657806379fbd22c146103875780637deb6025146103a85780638620410b146103cc578063949e8acd146103e157806395d89b41146103f6578063989a9d171461040b578063a9059cbb1461042c578063befc3e2b14610450578063c664f7f114610465578063e1456cb414610486578063e4849b32146104a7578063e9fad8ee146104bf578063eabd1ddb146104d4578063f2b79df9146104e9578063fdb5a03e14610545575b600080fd5b34801561017957600080fd5b5061018e600160a060020a036004351661055a565b60408051918252519081900360200190f35b3480156101ac57600080fd5b506101b5610595565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ef5781810151838201526020016101d7565b50505050905090810190601f16801561021c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023657600080fd5b5061018e610623565b34801561024b57600080fd5b50610254610629565b604080519115158252519081900360200190f35b34801561027457600080fd5b5061027d610632565b6040805160ff9092168252519081900360200190f35b34801561029f57600080fd5b5061018e600435600160a060020a0360243581169060443516610637565b3480156102c957600080fd5b506102d2610655565b005b3480156102e057600080fd5b5061018e600160a060020a036004351661078c565b34801561030157600080fd5b5061018e6107a7565b34801561031657600080fd5b5061018e600160a060020a03600435166107da565b34801561033757600080fd5b5061018e600160a060020a03600435166107f5565b34801561035857600080fd5b5061018e6004351515610807565b34801561037257600080fd5b5061018e600160a060020a0360043516610848565b34801561039357600080fd5b5061018e600160a060020a0360043516610863565b3480156103b457600080fd5b5061018e600435600160a060020a0360243516610875565b3480156103d857600080fd5b5061018e610894565b3480156103ed57600080fd5b5061018e6108c0565b34801561040257600080fd5b506101b56108d2565b34801561041757600080fd5b5061018e600160a060020a036004351661092d565b34801561043857600080fd5b50610254600160a060020a036004351660243561093f565b34801561045c57600080fd5b5061018e610aa0565b34801561047157600080fd5b5061018e600160a060020a0360043516610ab3565b34801561049257600080fd5b5061018e600160a060020a0360043516610ac5565b3480156104b357600080fd5b506102d2600435610ad7565b3480156104cb57600080fd5b506102d2610c50565b3480156104e057600080fd5b5061018e610c7d565b3480156104f557600080fd5b506104fe610d13565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b34801561055157600080fd5b506102d2610e14565b600160a060020a03166000908152600e6020908152604080832054600b90925290912054601154680100000000000000009102919091030490565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b820191906000526020600020905b8154815290600101906020018083116105fe57829003601f168201915b505050505081565b60105490565b60025460ff1681565b601281565b600061064284610ed4565b61064d828486610fe6565b949350505050565b60008060006106646001610807565b1161066e57600080fd5b33915061067b6000610807565b600160a060020a038084166000818152600e602090815260408083208054680100000000000000008802019055600c825280832080549084905560125482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096529601602485018190529051909650949093169363a9059cbb936044808501949193918390030190829087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050506040513d602081101561074757600080fd5b5050604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b600160a060020a03166000908152600d602052604090205490565b600080600080670de0b6b3a764000092506107ce6107c78460075461167c565b60646116a5565b915061064d83836116ba565b600160a060020a03166000908152600c602052604090205490565b600b6020526000908152604090205481565b6000338261081d576108188161055a565b610841565b600160a060020a0381166000908152600c602052604090205461083f8261055a565b015b9392505050565b600160a060020a03166000908152600b602052604090205490565b600f6020526000908152604090205481565b600061088083610ed4565b61088b823385610fe6565b90505b92915050565b600080600080670de0b6b3a764000092506108b46107c78460065461167c565b915061064d83836116cc565b6000336108cc81610848565b91505090565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561061b5780601f106105f05761010080835404028352916020019161061b565b600d6020526000908152604090205481565b600080600061094c6108c0565b1161095657600080fd5b50336000818152600b602052604090205483111561097357600080fd5b600061097f6001610807565b111561098d5761098d610655565b610999601054846116ba565b601055600160a060020a0381166000908152600b60205260409020546109bf90846116ba565b600160a060020a038083166000908152600b602052604080822093909355908616815220546109ee90846116cc565b600160a060020a038581166000818152600b6020908152604080832095909555601180549487168352600e9091528482208054948902909403909355825491815292909220805492860290920190915554601054610a629190680100000000000000008602811515610a5c57fe5b046116cc565b601155604080518481529051600160a060020a0380871692908416916000805160206116da8339815191529181900360200190a35060019392505050565b336000908152600f602052604090205490565b600c6020526000908152604090205481565b600e6020526000908152604090205481565b6000806000806000610ae76108c0565b11610af157600080fd5b336000818152600b6020526040902054909450851115610b1057600080fd5b610b1f6107c78660075461167c565b9250610b2b85846116ba565b9150610b39601054866116ba565b601055600160a060020a0384166000908152600b6020526040902054610b5f90866116ba565b600160a060020a0385166000908152600b6020908152604080832093909355601154600e9091529181208054928802680100000000000000008602019283900390556010549192501015610bcf57610bcb601154601054680100000000000000008602811515610a5c57fe5b6011555b604080518681529051600091600160a060020a038716916000805160206116da8339815191529181900360200190a3604080518681526020810184905242818301529051600160a060020a038616917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a25050505050565b336000818152600b602052604081205490811115610c7157610c7181610ad7565b610c79610655565b5050565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610ce257600080fd5b505af1158015610cf6573d6000803e3d6000fd5b505050506040513d6020811015610d0c57600080fd5b5051905090565b6000806000806000806000806000610d29610c7d565b610d31610623565b610d3a33610848565b601254604080517f70a082310000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b5051610dd53361055a565b610ddd610894565b610de56107a7565b610dee3361078c565b610df7336107da565b985098509850985098509850985098509850909192939495969798565b600080600080610e246001610807565b11610e2e57600080fd5b339250610e3b6000610807565b600160a060020a0384166000908152600e602090815260408083208054680100000000000000008602019055600c90915281208054908290559091019250610e84908484610fe6565b905082600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b601254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015610f4757600080fd5b505af1158015610f5b573d6000803e3d6000fd5b505050506040513d6020811015610f7157600080fd5b50511515600114610fe357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b600080600080600080600080888a6003544210151561100a576002805460ff191690555b60025460ff161561138c57600160a060020a03811660009081526020819052604090205460ff16151560011480156110675750600160a060020a03811660009081526001602052604090205469d3c21bcecceda100000090830111155b151561107257600080fd5b600160a060020a03811660009081526001602052604090205461109590836116cc565b600160a060020a038216600090815260016020908152604080832093909355338252600f90522080548c0190556006546110d4906107c7908d9061167c565b98506110e56107c78a60095461167c565b97506110f66107c78a60085461167c565b965061110b89611106898b6116cc565b6116ba565b95506111178b8a6116ba565b94506801000000000000000086029350600085118015611141575060105461113f86826116cc565b115b151561114c57600080fd5b600a54600160a060020a03166000908152600c602052604090205461117190896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d16158015906111b357508b600160a060020a03168d600160a060020a031614155b1561122857600160a060020a038d166000908152600c60205260409020546111db90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d9052205461120a90886116cc565b600160a060020a038e166000908152600d6020526040902055611243565b61123286886116cc565b955068010000000000000000860293505b600060105411156112a75761125a601054866116cc565b601081905568010000000000000000870281151561127457fe5b6011805492909104909101905560105468010000000000000000870281151561129957fe5b0485028403840393506112ad565b60108590555b600160a060020a038c166000908152600b60205260409020546112d090866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a384995061166c565b6002805460ff19169055336000908152600f6020526040902080548c0190556006546113bd906107c7908d9061167c565b98506113ce6107c78a60095461167c565b97506113df6107c78a60085461167c565b96506113ef89611106898b6116cc565b95506113fb8b8a6116ba565b94506801000000000000000086029350600085118015611425575060105461142386826116cc565b115b151561143057600080fd5b600a54600160a060020a03166000908152600c602052604090205461145590896116cc565b600a54600160a060020a039081166000908152600c60205260409020919091558d161580159061149757508b600160a060020a03168d600160a060020a031614155b1561150c57600160a060020a038d166000908152600c60205260409020546114bf90886116cc565b600160a060020a038e166000908152600c6020908152604080832093909355600d905220546114ee90886116cc565b600160a060020a038e166000908152600d6020526040902055611527565b61151686886116cc565b955068010000000000000000860293505b6000601054111561158b5761153e601054866116cc565b601081905568010000000000000000870281151561155857fe5b6011805492909104909101905560105468010000000000000000870281151561157d57fe5b048502840384039350611591565b60108590555b600160a060020a038c166000908152600b60205260409020546115b490866116cc565b600160a060020a038d166000908152600b6020908152604080832093909355601154600e82528383208054918a0289900391820190558351898152935190965033936000805160206116da83398151915292908290030190a38c600160a060020a03168c600160a060020a03167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b600082151561168d5750600061088e565b5081810281838281151561169d57fe5b041461088e57fe5b600081838115156116b257fe5b049392505050565b6000828211156116c657fe5b50900390565b8181018281101561088e57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582025bdbc6d092025c93165d5399ef4cf166651ba07160cf44faac94a2a73f30c5d0029

Deployed Bytecode Sourcemap

1984:14189:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6097:8;;;10881:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10881:301:0;-1:-1:-1;;;;;10881:301:0;;;;;;;;;;;;;;;;;;;;;4056:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4056:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4056:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9996:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9996:126:0;;;;2211:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2211:34:0;;;;;;;;;;;;;;;;;;;;;;4145:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4145:35:0;;;;;;;;;;;;;;;;;;;;;;;5715:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5715:333:0;;;-1:-1:-1;;;;;5715:333:0;;;;;;;;;;6957:522;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6957:522:0;;;;;;11987:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11987:184:0;-1:-1:-1;;;;;11987:184:0;;;;;11194:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11194:311:0;;;;12183:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12183:173:0;-1:-1:-1;;;;;12183:173:0;;;;;4481:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4481:54:0;-1:-1:-1;;;;;4481:54:0;;;;;10328:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10328:340:0;;;;;;;10680:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10680:189:0;-1:-1:-1;;;;;10680:189:0;;;;;4739:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4739:44:0;-1:-1:-1;;;;;4739:44:0;;;;;5404:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5404:299:0;;;-1:-1:-1;;;;;5404:299:0;;;;;11517:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11517:311:0;;;;10130:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10130:186:0;;;;4102:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4102:30:0;;;;4612:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4612:57:0;-1:-1:-1;;;;;4612:57:0;;;;;8689:1137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8689:1137:0;-1:-1:-1;;;;;8689:1137:0;;;;;;;11840:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11840:135:0;;;;4548:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4548:51:0;-1:-1:-1;;;;;4548:51:0;;;;;4682:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4682:44:0;-1:-1:-1;;;;;4682:44:0;;;;;7491:1186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7491:1186:0;;;;;6696:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6696:249:0;;;;9838:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9838:150:0;;;;15198:972;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15198:972:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6125:559;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6125:559:0;;;;10881:301;-1:-1:-1;;;;;11133:28:0;10994:7;11133:28;;;:10;:28;;;;;;;;;11078:19;:37;;;;;;;11060:15;;4461:7;11060:55;;11037:124;;;;11027:147;;10881:301::o;4056:33::-;;;;;;;;;;;;;;;-1:-1:-1;;4056:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9996:126::-;10102:12;;9996:126;:::o;2211:34::-;;;;;;:::o;4145:35::-;4178:2;4145:35;:::o;5715:333::-;5866:7;5892:25;5909:7;5892:16;:25::i;:::-;5935:105;5964:11;5991:16;6022:7;5935:14;:105::i;:::-;5928:112;5715:333;-1:-1:-1;;;;5715:333:0:o;6957:522::-;7030:24;7088:18;3196:1;3176:17;3188:4;3176:11;:17::i;:::-;:21;3168:30;;;;;;7057:10;7030:37;;7109:18;7121:5;7109:11;:18::i;:::-;-1:-1:-1;;;;;7148:28:0;;;;;;;:10;:28;;;;;;;;:64;;4461:7;7189:22;;7148:64;;;7247:16;:34;;;;;;;7302:38;;;;7361:5;;:44;;;;;;;;;;;;7233:48;;7361:44;;;;;;;;7233:48;;-1:-1:-1;7361:5:0;;;;;:14;;:44;;;;;7148:28;;7361:44;;;;;;;;:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;7361:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7361:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7431:40:0;;;;;;;;-1:-1:-1;;;;;7431:40:0;;;;;;;;;7361:44;7431:40;;;6957:522;;:::o;11987:184::-;-1:-1:-1;;;;;12132:31:0;12100:7;12132:31;;;:22;:31;;;;;;;11987:184::o;11194:311::-;11265:7;11291:14;11323:18;11404:19;11308:4;11291:21;;11344:49;11357:30;11370:6;11378:8;;11357:12;:30::i;:::-;11389:3;11344:12;:49::i;:::-;11323:70;;11426:32;11439:6;11447:10;11426:12;:32::i;12183:173::-;-1:-1:-1;;;;;12323:25:0;12291:7;12323:25;;;:16;:25;;;;;;;12183:173::o;4481:54::-;;;;;;;;;;;;;:::o;10328:340::-;10443:7;10496:10;10524:21;:136;;10631:29;10643:16;10631:11;:29::i;:::-;10524:136;;;-1:-1:-1;;;;;10594:34:0;;;;;;:16;:34;;;;;;10548:29;10611:16;10548:11;:29::i;:::-;:80;10524:136;10517:143;10328:340;-1:-1:-1;;;10328:340:0:o;10680:189::-;-1:-1:-1;;;;;10824:37:0;10791:7;10824:37;;;:19;:37;;;;;;;10680:189::o;4739:44::-;;;;;;;;;;;;;:::o;5404:299::-;5516:7;5542:25;5559:7;5542:16;:25::i;:::-;5595:100;5624:11;5651:10;5677:7;5595:14;:100::i;:::-;5588:107;;5404:299;;;;;:::o;11517:311::-;11587:7;11613:14;11645:18;11727:19;11630:4;11613:21;;11666:50;11679:31;11692:6;11700:9;;11679:12;:31::i;11666:50::-;11645:71;;11749:32;11762:6;11770:10;11749:12;:32::i;10130:186::-;10200:7;10253:10;10281:27;10253:10;10281:9;:27::i;:::-;10274:34;;10130:186;;:::o;4102:30::-;;;;;;;;;;;;;;;-1:-1:-1;;4102:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4612:57;;;;;;;;;;;;;:::o;8689:1137::-;8842:4;8865:24;3108:1;3095:10;:8;:10::i;:::-;:14;3087:23;;;;;;-1:-1:-1;8892:10:0;8940:37;;;;:19;:37;;;;;;8921:56;;;8913:65;;;;;;9019:1;8999:17;9011:4;8999:11;:17::i;:::-;:21;8995:64;;;9037:10;:8;:10::i;:::-;9094:43;9107:12;;9121:15;9094:12;:43::i;:::-;9079:12;:58;-1:-1:-1;;;;;9225:37:0;;;;;;:19;:37;;;;;;9212:68;;9264:15;9212:12;:68::i;:::-;-1:-1:-1;;;;;9158:37:0;;;;;;;:19;:37;;;;;;:122;;;;9366:31;;;;;;;9353:62;;9399:15;9353:12;:62::i;:::-;-1:-1:-1;;;;;9305:31:0;;;;;;;:19;:31;;;;;;;;:110;;;;9477:15;;;9436:28;;;;;:10;:28;;;;;;:75;;9477:33;;;9436:75;;;;;;9557:15;;9522:22;;;;;;;:69;;9557:33;;;9522:69;;;;;;9643:15;9692:12;;9630:75;;9643:15;4461:7;9661:27;;9660:44;;;;;;;;9630:12;:75::i;:::-;9612:15;:93;9731:55;;;;;;;;-1:-1:-1;;;;;9731:55:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9731:55:0;;;;;;;;-1:-1:-1;9814:4:0;;8689:1137;-1:-1:-1;;;8689:1137:0:o;11840:135::-;11956:10;11913:7;11946:21;;;:9;:21;;;;;;11840:135;:::o;4548:51::-;;;;;;;;;;;;;:::o;4682:44::-;;;;;;;;;;;;;:::o;7491:1186::-;7607:24;7741:18;7831:19;8137:22;3108:1;3095:10;:8;:10::i;:::-;:14;3087:23;;;;;;7634:10;7682:37;;;;:19;:37;;;;;;7634:10;;-1:-1:-1;7663:56:0;;;7655:65;;;;;;7762:58;7775:39;7788:15;7805:8;;7775:12;:39::i;7762:58::-;7741:79;;7853:41;7866:15;7883:10;7853:12;:41::i;:::-;7831:63;;7930:43;7943:12;;7957:15;7930:12;:43::i;:::-;7915:12;:58;-1:-1:-1;;;;;8061:37:0;;;;;;:19;:37;;;;;;8048:68;;8100:15;8048:12;:68::i;:::-;-1:-1:-1;;;;;7994:37:0;;;;;;:19;:37;;;;;;;;:122;;;;8185:15;;8272:10;:28;;;;;;:47;;8185:33;;;4461:7;8222:23;;8185:61;8272:47;;;;;;8344:12;;8185:61;;-1:-1:-1;;8340:169:0;;;8395:102;8426:15;;8470:12;;4461:7;8444:10;:22;8443:39;;;;;;8395:102;8377:15;:120;8340:169;8534:55;;;;;;;;8569:1;;-1:-1:-1;;;;;8534:55:0;;;-1:-1:-1;;;;;;;;;;;8534:55:0;;;;;;;;8605:64;;;;;;;;;;;;8665:3;8605:64;;;;;;-1:-1:-1;;;;;8605:64:0;;;;;;;;;;;;;7491:1186;;;;;:::o;6696:249::-;6769:10;6742:24;6818:37;;;:19;:37;;;;;;;6880:11;;6876:30;;;6893:13;6898:7;6893:4;:13::i;:::-;6927:10;:8;:10::i;:::-;6696:249;;:::o;9838:150::-;9950:5;;:30;;;;;;9974:4;9950:30;;;;;;9917:7;;-1:-1:-1;;;;;9950:5:0;;:15;;:30;;;;;;;;;;;;;;9917:7;9950:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;9950:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9950:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9950:30:0;;-1:-1:-1;9838:150:0;:::o;15198:972::-;15264:7;15283;15302;15321;15340;15359;15378;15396;15414;15514:19;:17;:19::i;:::-;15595:13;:11;:13::i;:::-;15671:21;15681:10;15671:9;:21::i;:::-;15748:5;;:27;;;;;;15764:10;15748:27;;;;;;-1:-1:-1;;;;;15748:5:0;;;;:15;;:27;;;;;;;;;;;;;;;:5;;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;15748:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15748:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15748:27:0;15823:23;15835:10;15823:11;:23::i;:::-;15894:10;:8;:10::i;:::-;15953:11;:9;:11::i;:::-;16027:33;16049:10;16027:21;:33::i;:::-;16124:27;16140:10;16124:15;:27::i;:::-;15445:717;;;;;;;;;;;;;;;;;;15198:972;;;;;;;;;:::o;6125:559::-;6199:24;6257:18;6530:15;3196:1;3176:17;3188:4;3176:11;:17::i;:::-;:21;3168:30;;;;;;6226:10;6199:37;;6278:18;6290:5;6278:11;:18::i;:::-;-1:-1:-1;;;;;6317:28:0;;;;;;:10;:28;;;;;;;;:64;;4461:7;6358:22;;6317:64;;;6416:16;:34;;;;;;;6471:38;;;;6402:48;;;;-1:-1:-1;6548:49:0;;6328:16;6402:48;6548:14;:49::i;:::-;6530:67;;6638:16;-1:-1:-1;;;;;6623:53:0;;6656:10;6668:7;6623:53;;;;;;;;;;;;;;;;;;;;;;;;6125:559;;;:::o;5106:290::-;5222:5;;:122;;;;;;5259:10;5222:122;;;;5297:4;5222:122;;;;;;;;;;;;-1:-1:-1;;;;;5222:5:0;;;;:18;;:122;;;;;;;;;;;;;;;:5;;:122;;;5:2:-1;;;;30:1;27;20:12;5:2;5222:122:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5222:122:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5222:122:0;:130;;5348:4;5222:130;5200:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5106:290;:::o;12368:2822::-;12595:7;12669:27;12836:20;13021:22;13191:18;13372:23;13474:12;14745:22;12543:14;12559:16;2419:15;;2412:3;:22;;2408:78;;;2451:15;:23;;-1:-1:-1;;2451:23:0;;;2408:78;2510:15;;;;2506:529;;;-1:-1:-1;;;;;2565:30:0;;:12;:30;;;;;;;;;;;;;:38;;:30;:38;:178;;;;-1:-1:-1;;;;;;2636:45:0;;;;;;:27;:45;;;;;;2119:10;2636:62;;;2635:108;;2565:178;2556:189;;;;;;;;-1:-1:-1;;;;;2857:45:0;;;;;;:27;:45;;;;;;2844:75;;2904:14;2844:12;:75::i;:::-;-1:-1:-1;;;;;2778:45:0;;;;;;:27;:45;;;;;;;;:141;;;;12627:10;12617:21;;:9;:21;;;:39;;;;;;12783:9;;12709:114;;12736:71;;12642:14;;12736:12;:71::i;12709:114::-;12669:154;;12869:125;12896:82;12927:19;12948:15;;12896:12;:82::i;12869:125::-;12836:158;;13056:122;13083:79;13114:19;13135:12;;13083;:79::i;13056:122::-;13021:157;;13222:133;13249:19;13270:74;13301:14;13317:12;13270;:74::i;:::-;13222:12;:133::i;:::-;13191:164;;13408:49;13421:14;13437:19;13408:12;:49::i;:::-;13372:85;;4461:7;13489:10;:22;13474:37;;13560:1;13542:15;:19;:91;;;;-1:-1:-1;13621:12:0;;13575:43;13588:15;13621:12;13575;:43::i;:::-;:58;13542:91;13524:116;;;;;;;;13732:18;;-1:-1:-1;;;;;13732:18:0;13715:36;;;;:16;:36;;;;;;13702:64;;13753:12;13702;:64::i;:::-;13670:18;;-1:-1:-1;;;;;13670:18:0;;;13653:36;;;;:16;:36;;;;;:113;;;;13783:25;;;;;;:70;;;13837:16;-1:-1:-1;;;;;13822:31:0;:11;-1:-1:-1;;;;;13822:31:0;;;13783:70;13779:465;;;-1:-1:-1;;;;;13930:29:0;;;;;;:16;:29;;;;;;13917:59;;13961:14;13917:12;:59::i;:::-;-1:-1:-1;;;;;13871:29:0;;;;;;:16;:29;;;;;;;;:105;;;;14066:22;:35;;;;14053:65;;14103:14;14053:12;:65::i;:::-;-1:-1:-1;;;;;14001:35:0;;;;;;:22;:35;;;;;:117;13779:465;;;14156:40;14169:10;14181:14;14156:12;:40::i;:::-;14143:53;;4461:7;14214:10;:22;14207:29;;13779:465;14275:1;14260:12;;:16;14256:350;;;14310:43;14323:12;;14337:15;14310:12;:43::i;:::-;14295:12;:58;;;4461:7;14395:22;;14394:41;;;;;;;14374:15;:62;;14394:41;;;;14374:62;;;;;14517:12;;4461:7;14490:22;;14489:41;;;;;;;;14470:15;:61;14462:4;:70;14454:4;:79;14447:86;;14256:350;;;14568:12;:30;;;14256:350;-1:-1:-1;;;;;14677:37:0;;;;;;:19;:37;;;;;;14664:68;;14716:15;14664:12;:68::i;:::-;-1:-1:-1;;;;;14614:37:0;;;;;;:19;:37;;;;;;;;:118;;;;14780:15;;14839:10;:28;;;;;:47;;14780:33;;;14779:42;;;14839:47;;;;;14904:85;;;;;;;14779:42;;-1:-1:-1;14945:10:0;;-1:-1:-1;;;;;;;;;;;14904:85:0;;;;;;;;15114:11;-1:-1:-1;;;;;15007:140:0;15033:16;-1:-1:-1;;;;;15007:140:0;;15061:14;15087:15;15137:3;15007:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15167:15;15160:22;;2506:529;;;2984:15;:23;;-1:-1:-1;;2984:23:0;;;12627:10;3002:5;12617:21;;;:9;:21;;;;;:39;;;;;;12783:9;;12709:114;;12736:71;;12642:14;;12736:12;:71::i;12709:114::-;12669:154;;12869:125;12896:82;12927:19;12948:15;;12896:12;:82::i;12869:125::-;12836:158;;13056:122;13083:79;13114:19;13135:12;;13083;:79::i;13056:122::-;13021:157;;13222:133;13249:19;13270:74;13301:14;13317:12;13270;:74::i;13222:133::-;13191:164;;13408:49;13421:14;13437:19;13408:12;:49::i;:::-;13372:85;;4461:7;13489:10;:22;13474:37;;13560:1;13542:15;:19;:91;;;;-1:-1:-1;13621:12:0;;13575:43;13588:15;13621:12;13575;:43::i;:::-;:58;13542:91;13524:116;;;;;;;;13732:18;;-1:-1:-1;;;;;13732:18:0;13715:36;;;;:16;:36;;;;;;13702:64;;13753:12;13702;:64::i;:::-;13670:18;;-1:-1:-1;;;;;13670:18:0;;;13653:36;;;;:16;:36;;;;;:113;;;;13783:25;;;;;;:70;;;13837:16;-1:-1:-1;;;;;13822:31:0;:11;-1:-1:-1;;;;;13822:31:0;;;13783:70;13779:465;;;-1:-1:-1;;;;;13930:29:0;;;;;;:16;:29;;;;;;13917:59;;13961:14;13917:12;:59::i;:::-;-1:-1:-1;;;;;13871:29:0;;;;;;:16;:29;;;;;;;;:105;;;;14066:22;:35;;;;14053:65;;14103:14;14053:12;:65::i;:::-;-1:-1:-1;;;;;14001:35:0;;;;;;:22;:35;;;;;:117;13779:465;;;14156:40;14169:10;14181:14;14156:12;:40::i;:::-;14143:53;;4461:7;14214:10;:22;14207:29;;13779:465;14275:1;14260:12;;:16;14256:350;;;14310:43;14323:12;;14337:15;14310:12;:43::i;:::-;14295:12;:58;;;4461:7;14395:22;;14394:41;;;;;;;14374:15;:62;;14394:41;;;;14374:62;;;;;14517:12;;4461:7;14490:22;;14489:41;;;;;;;;14470:15;:61;14462:4;:70;14454:4;:79;14447:86;;14256:350;;;14568:12;:30;;;14256:350;-1:-1:-1;;;;;14677:37:0;;;;;;:19;:37;;;;;;14664:68;;14716:15;14664:12;:68::i;:::-;-1:-1:-1;;;;;14614:37:0;;;;;;:19;:37;;;;;;;;:118;;;;14780:15;;14839:10;:28;;;;;:47;;14780:33;;;14779:42;;;14839:47;;;;;14904:85;;;;;;;14779:42;;-1:-1:-1;14945:10:0;;-1:-1:-1;;;;;;;;;;;14904:85:0;;;;;;;;15114:11;-1:-1:-1;;;;;15007:140:0;15033:16;-1:-1:-1;;;;;15007:140:0;;15061:14;15087:15;15137:3;15007:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15167:15;15160:22;;3022:1;12368:2822;;;;;;;;;;;;;;:::o;325:263::-;438:9;470:6;;466:47;;;-1:-1:-1;500:1:0;493:8;;466:47;-1:-1:-1;527:5:0;;;531:1;527;:5;550;;;;;;;;:10;543:18;;;600:159;713:7;750:1;746;:5;;;;;;;;;600:159;-1:-1:-1;;;600:159:0:o;771:184::-;884:7;917:6;;;;910:14;;;;-1:-1:-1;942:5:0;;;771:184::o;967:202::-;1112:5;;;1135:6;;;;1128:14;;

Swarm Source

bzzr://25bdbc6d092025c93165d5399ef4cf166651ba07160cf44faac94a2a73f30c5d

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  ]

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.