ETH Price: $1,883.99 (+5.48%)

Contract

0xF66a742E4437c462E0F778245727C4676065D3fc
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exit62700352018-09-04 11:26:372400 days ago1536060397IN
0xF66a742E...76065D3fc
0 ETH0.000197886
Buy62693152018-09-04 8:33:212401 days ago1536050001IN
0xF66a742E...76065D3fc
0.001 ETH0.0005135210
Buy62631082018-09-03 7:25:152402 days ago1535959515IN
0xF66a742E...76065D3fc
0.01 ETH0.000176652.31
Reinvest62573622018-09-02 8:27:072403 days ago1535876827IN
0xF66a742E...76065D3fc
0 ETH0.000267213
Buy62521002018-09-01 11:07:482403 days ago1535800068IN
0xF66a742E...76065D3fc
0.01 ETH0.000183532.4
Buy62468252018-08-31 13:33:092404 days ago1535722389IN
0xF66a742E...76065D3fc
0.048 ETH0.000241343.15596979
Buy62467302018-08-31 13:10:222404 days ago1535721022IN
0xF66a742E...76065D3fc
0.007 ETH0.000455834.28125
Buy62443152018-08-31 3:20:592405 days ago1535685659IN
0xF66a742E...76065D3fc
0.01 ETH0.0008096.66
Transfer62416512018-08-30 16:49:062405 days ago1535647746IN
0xF66a742E...76065D3fc
0 ETH0.000238193
Transfer62415582018-08-30 16:28:112405 days ago1535646491IN
0xF66a742E...76065D3fc
0 ETH0.000350643
Transfer62415482018-08-30 16:26:102405 days ago1535646370IN
0xF66a742E...76065D3fc
0.001 ETH0.00006983
Buy62415352018-08-30 16:22:162405 days ago1535646136IN
0xF66a742E...76065D3fc
0.001 ETH0.000453423

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer62693152018-09-04 8:33:212401 days ago1536050001
0xF66a742E...76065D3fc
0.075636 ETH
Transfer62693152018-09-04 8:33:212401 days ago1536050001
0xF66a742E...76065D3fc
0.010314 ETH
Transfer62693152018-09-04 8:33:212401 days ago1536050001
0xF66a742E...76065D3fc
0.001 ETH
Transfer62415582018-08-30 16:28:112405 days ago1535646491
0xF66a742E...76065D3fc
0.00005 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
risebox

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-08-31
*/

pragma solidity ^0.4.24;
/***
* Team JUST presents..
* ============================================================== *
RRRRRRRRRRRRRRRRR   BBBBBBBBBBBBBBBBB   XXXXXXX       XXXXXXX
R::::::::::::::::R  B::::::::::::::::B  X:::::X       X:::::X
R::::::RRRRRR:::::R B::::::BBBBBB:::::B X:::::X       X:::::X
RR:::::R     R:::::RBB:::::B     B:::::BX::::::X     X::::::X
  R::::R     R:::::R  B::::B     B:::::BXXX:::::X   X:::::XXX
  R::::R     R:::::R  B::::B     B:::::B   X:::::X X:::::X   
  R::::RRRRRR:::::R   B::::BBBBBB:::::B     X:::::X:::::X    
  R:::::::::::::RR    B:::::::::::::BB       X:::::::::X     
  R::::RRRRRR:::::R   B::::BBBBBB:::::B      X:::::::::X     
  R::::R     R:::::R  B::::B     B:::::B    X:::::X:::::X    
  R::::R     R:::::R  B::::B     B:::::B   X:::::X X:::::X   
  R::::R     R:::::R  B::::B     B:::::BXXX:::::X   X:::::XXX
RR:::::R     R:::::RBB:::::BBBBBB::::::BX::::::X     X::::::X
R::::::R     R:::::RB:::::::::::::::::B X:::::X       X:::::X
R::::::R     R:::::RB::::::::::::::::B  X:::::X       X:::::X
RRRRRRRR     RRRRRRRBBBBBBBBBBBBBBBBB   XXXXXXX       XXXXXXX
* ============================================================== *
*/
contract risebox {
    string public name = "RiseBox";
    string public symbol = "RBX";
    uint8 constant public decimals = 0;
    uint8 constant internal dividendFee_ = 10;

    uint256 constant ONEDAY = 86400;
    uint256 public lastBuyTime;
    address public lastBuyer;
    bool public isEnd = false;

    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal profitPerShare_ = 0;
    address internal foundation;
    
    uint256 internal tokenSupply_ = 0;
    uint256 constant internal tokenPriceInitial_ = 1e14;
    uint256 constant internal tokenPriceIncremental_ = 15e6;


    /*=================================
    =            MODIFIERS            =
    =================================*/
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }
    
    // only people with profits
    modifier onlyStronghands() {
        require(myDividends(true) > 0);
        _;
    }

    // healthy longevity
    modifier antiEarlyWhale(uint256 _amountOfEthereum){
        uint256 _balance = address(this).balance;

        if(_balance <= 1000 ether) {
            require(_amountOfEthereum <= 2 ether);
            _;
        } else {
            _;
        }
    }
    /*==============================
    =            EVENTS            =
    ==============================*/
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy
    );
    
    
    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );
    
    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );

    constructor () public {
        foundation =  msg.sender;
        lastBuyTime = now;
    }

    function buy(address _referredBy) 
        public 
        payable 
        returns(uint256)
    {
        assert(isEnd==false);

        if(breakDown()) {
            return liquidate();
        } else {
            return purchaseTokens(msg.value, _referredBy);
        }
    }

    function()
        payable
        public
    {
        assert(isEnd==false);

        if(breakDown()) {
            liquidate();
        } else {
            purchaseTokens(msg.value, 0x00);
        }
    }

    /**
     * Converts all of caller's dividends to tokens.
     */
    function reinvest()
        onlyStronghands() //针对有利润的客户
        public
    {
        // fetch dividends
        uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code
        
        // pay out the dividends virtually
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends);
        
        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // dispatch a buy order with the virtualized "withdrawn dividends"
        uint256 _tokens = purchaseTokens(_dividends, 0x00);
        
        // fire event
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }


    /**
     * Alias of sell() and withdraw().
     */
    function exit(address _targetAddress)
        public
    {
        // get token count for caller & sell them all
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
        
        // lambo delivery service
        withdraw(_targetAddress);
    }


    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        internal
    {
        // setup data
        address _customerAddress = msg.sender;
        // russian hackers BTFO
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);

        // update dividends tracker
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum));
        payoutsTo_[_customerAddress] -= _updatedPayouts;       
        
        payoutsTo_[foundation] -= (int256)(_dividends);
    }



    /**
     * 提取ETH
     */
    function withdraw(address _targetAddress)
        onlyStronghands()
        internal
    {
        // setup data
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false); // get ref. bonus later in the code
        
        // update dividend tracker
        payoutsTo_[_customerAddress] +=  (int256) (_dividends);
        
        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // anti whale
        if(_dividends > address(this).balance/2) {
            _dividends = address(this).balance / 2;
        }

        _targetAddress.transfer(_dividends);

        // fire event
        emit onWithdraw(_targetAddress, _dividends);       
    }

    /**
     * Transfer tokens from the caller to a new holder.
     * Remember, there's a 10% fee here as well.
     */
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyBagholders()
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;
        
        // make sure we have the requested tokens
        // also disables transfers until ambassador phase is over
        // ( we dont want whale premines )
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        // withdraw all outstanding dividends first
        if(myDividends(true) > 0) withdraw(msg.sender);
        

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);
        
        // update dividend trackers
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens);
        
        
        // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        
        // ERC20
        return true;
       
    }

    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        antiEarlyWhale(_incomingEthereum)
        internal
        returns(uint256)
    {
        address _customerAddress = msg.sender; 
        uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_);
        uint256 _referralBonus = SafeMath.div(_undividedDividends, 2); 
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus); 
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends); 

        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends;

        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));

        if(
            // is this a referred purchase?
            _referredBy != 0x0000000000000000000000000000000000000000 &&

            // no cheating!
            _referredBy != _customerAddress
        ) {
            // wealth redistribution
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else if (
            _referredBy != _customerAddress
        ){
            payoutsTo_[foundation] -= (int256)(_referralBonus);
        } else {
            referralBalance_[foundation] -= _referralBonus;
        }

        // we can't give people infinite ethereum
        if(tokenSupply_ > 0){
            
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);

            _fee = _amountOfTokens * (_dividends / tokenSupply_);
         
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }

        profitPerShare_ += SafeMath.div(_dividends , tokenSupply_);

        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

        int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;

        lastBuyTime = now;
        lastBuyer = msg.sender;
        // fire event
        emit onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy);
        return _amountOfTokens;
    }


    // ETH for Token
    function ethereumToTokens_(uint256 _ethereum)
        internal
        view
        returns(uint256)
    {
        uint256 _tokensReceived = 0;
        
        if(_ethereum < (tokenPriceInitial_ + tokenPriceIncremental_*tokenSupply_)) {
            return _tokensReceived;
        }

        _tokensReceived = 
         (
            (
                // underflow attempts BTFO
                SafeMath.sub(
                    (SafeMath.sqrt
                        (
                            (tokenPriceInitial_**2)
                            +
                            (2 * tokenPriceIncremental_ * _ethereum)
                            +
                            (((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                            +
                            (2*(tokenPriceIncremental_)*tokenPriceInitial_*tokenSupply_)
                        )
                    ), tokenPriceInitial_
                )
            )/(tokenPriceIncremental_)
        )-(tokenSupply_)
        ;
  
        return _tokensReceived;
    }

    // Token for eth
    function tokensToEthereum_(uint256 _tokens)
        internal
        view
        returns(uint256)
    {
        uint256 _etherReceived = 

        SafeMath.sub(
            _tokens * (tokenPriceIncremental_ * tokenSupply_ +     tokenPriceInitial_) , 
            (_tokens**2)*tokenPriceIncremental_/2
        );

        return _etherReceived;
    }


    /**
     * Retrieve the dividend balance of any single address.
     */
    function dividendsOf(address _customerAddress)
        internal
        view
        returns(uint256)
    {
        int256 _dividend = (int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress];

        if(_dividend < 0) {
            _dividend = 0;
        }
        return (uint256)(_dividend);
    }


    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        internal
        view
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }

    /**
     * to check is game breakdown.
     */
    function breakDown() 
        internal
        returns(bool)
    {
        // is game ended
        if (lastBuyTime + ONEDAY < now) {
            isEnd = true;
            return true;
        } else {
            return false;
        }
    }

    function liquidate()
        internal
        returns(uint256)
    {
        // you are late,so sorry
        msg.sender.transfer(msg.value);

        // Ethereum in pool
        uint256 _balance = address(this).balance;
        // taxed
        uint256 _taxedEthereum = _balance * 88 / 100;
        // tax value
        uint256 _tax = SafeMath.sub(_balance , _taxedEthereum);

        foundation.transfer(_tax);
        lastBuyer.transfer(_taxedEthereum);

        return _taxedEthereum;
    }

    /*----------  HELPERS AND CALCULATORS  ----------*/
    /**
     * Method to view the current Ethereum stored in the contract
     * Example: totalEthereumBalance()
     */
    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
    
    /**
     * Retrieve the total token supply.
     */
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return tokenSupply_;
    }
    
    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
   
    /**
     * Retrieve the dividends owned by the caller.
     * If `_includeReferralBonus` is to to 1/true, the referral bonus will be included in the calculations.
     * The reason for this, is that in the frontend, we will want to get the total divs (global + ref)
     * But in the internal calculations, we want them separate. 
     */ 
    function myDividends(bool _includeReferralBonus) 
        public 
        view 
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }
    
    /**
     * Return the buy price of 1 individual token.
     */
    function sellPrice() 
        public 
        view 
        returns(uint256)
    {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1);
            uint256 _dividends = SafeMath.div(_ethereum, dividendFee_  );
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * Return the sell price of 1 individual token.
     */
    function buyPrice() 
        public 
        view 
        returns(uint256)
    {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1);
            uint256 _dividends = SafeMath.div(_ethereum, (dividendFee_-1)  );
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * Function for the frontend to dynamically retrieve the price scaling of buy orders.
     */
    function calculateTokensReceived(uint256 _ethereumToSpend) 
        public 
        view 
        returns(uint256)
    {
        // overflow check
        require(_ethereumToSpend <= 1e32 , "number is too big");
        uint256 _dividends = SafeMath.div(_ethereumToSpend, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        return _amountOfTokens;
    }
    
    /**
     * Function for the frontend to dynamically retrieve the price scaling of sell orders.
     */
    function calculateEthereumReceived(uint256 _tokensToSell) 
        public 
        view 
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }

}


/**
 * @title SafeMath v0.1.9
 * @dev Math operations with safety checks that throw on error
 * change notes:  original SafeMath library from OpenZeppelin modified by Inventor
 * - added sqrt
 * - added sq
 * - added pwr 
 * - changed asserts to requires with error log outputs
 * - removed div, its useless
 */
library SafeMath {
    
    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) 
        internal 
        pure 
        returns (uint256 c) 
    {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        require(c / a == b, "SafeMath mul failed");
        return c;
    }

    /**
    * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
      require(b > 0); // Solidity only automatically asserts when dividing by 0
      uint256 c = a / b;
      // assert(a == b * c + a % b); // There is no case in which this doesn't hold

      return c;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b)
        internal
        pure
        returns (uint256) 
    {
        require(b <= a, "SafeMath sub failed");
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b)
        internal
        pure
        returns (uint256 c) 
    {
        c = a + b;
        require(c >= a, "SafeMath add failed");
        return c;
    }

    /**
     * @dev gives square root of given x.
     */
    function sqrt(uint256 x)
        internal
        pure
        returns (uint256 y) 
    {
        uint256 z = ((add(x,1)) / 2);
        y = x;
        while (z < y) 
        {
            y = z;
            z = ((add((x / z),z)) / 2);
        }

        return y;
    }

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastBuyer","outputs":[{"name":"","type":"address"}],"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":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isEnd","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":true,"inputs":[],"name":"sellPrice","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":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_targetAddress","type":"address"}],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"lastBuyTime","outputs":[{"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":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","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"}]

60c0604052600760808190527f52697365426f780000000000000000000000000000000000000000000000000060a0908152620000409160009190620000cc565b506040805180820190915260038082527f524258000000000000000000000000000000000000000000000000000000000060209092019182526200008791600191620000cc565b506003805460a060020a60ff021916905560006007819055600955348015620000af57600080fd5b5060088054600160a060020a031916331790554260025562000171565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010f57805160ff19168380011785556200013f565b828001600101855582156200013f579182015b828111156200013f57825182559160200191906001019062000122565b506200014d92915062000151565b5090565b6200016e91905b808211156200014d576000815560010162000158565b90565b6113f680620001816000396000f3006080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014a57806310d0ffdd146101d457806313ecfbfa146101fe57806318160ddd1461022f57806322609373146102445780632fc6e8b71461025c578063313ce567146102855780634b750334146102b0578063688abbf7146102c55780636b2f4632146102df5780638620410b146102f4578063949e8acd1461030957806395d89b411461031e578063a9059cbb14610333578063b42652e914610357578063f088d54714610378578063f29f4d0b1461038c578063fdb5a03e146103a1575b60035474010000000000000000000000000000000000000000900460ff161561012057fe5b6101286103b6565b1561013b5761013561040b565b50610148565b6101463460006104d8565b505b005b34801561015657600080fd5b5061015f610a34565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610199578181015183820152602001610181565b50505050905090810190601f1680156101c65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e057600080fd5b506101ec600435610ac2565b60408051918252519081900360200190f35b34801561020a57600080fd5b50610213610b6f565b60408051600160a060020a039092168252519081900360200190f35b34801561023b57600080fd5b506101ec610b7e565b34801561025057600080fd5b506101ec600435610b84565b34801561026857600080fd5b50610271610bbd565b604080519115158252519081900360200190f35b34801561029157600080fd5b5061029a610bde565b6040805160ff9092168252519081900360200190f35b3480156102bc57600080fd5b506101ec610be3565b3480156102d157600080fd5b506101ec6004351515610c2f565b3480156102eb57600080fd5b506101ec610c72565b34801561030057600080fd5b506101ec610c77565b34801561031557600080fd5b506101ec610cb9565b34801561032a57600080fd5b5061015f610ccb565b34801561033f57600080fd5b50610271600160a060020a0360043516602435610d25565b34801561036357600080fd5b50610148600160a060020a0360043516610e53565b6101ec600160a060020a0360043516610e82565b34801561039857600080fd5b506101ec610ed5565b3480156103ad57600080fd5b50610148610edb565b6000426201518060025401101561040457506003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556001610408565b5060005b90565b60405160009081908190819033903480156108fc029184818181858888f1935050505015801561043f573d6000803e3d6000fd5b50303192506064605884020491506104578383610f86565b600854604051919250600160a060020a03169082156108fc029083906000818181858888f19350505050158015610492573d6000803e3d6000fd5b50600354604051600160a060020a039091169083156108fc029084906000818181858888f193505050501580156104cd573d6000803e3d6000fd5b508193505b50505090565b600080808080808080808a3031683635c9adc5dea00000811161079957671bc16d674ec8000082111561050a57600080fd5b3399506105188d600a610ffd565b9850610525896002610ffd565b97506105318989610f86565b965061053d8d8a610f86565b955061054886611020565b9450869350600085118015610567575060095461056586826110a5565b115b151561057257600080fd5b600160a060020a038c161580159061059c575089600160a060020a03168c600160a060020a031614155b156105e257600160a060020a038c166000908152600560205260409020546105c490896110a5565b600160a060020a038d1660009081526005602052604090205561063d565b600160a060020a038c8116908b161461061b57600854600160a060020a031660009081526006602052604090208054899003905561063d565b600854600160a060020a03166000908152600560205260409020805489900390555b6000600954111561066d57610654600954866110a5565b60098190558781151561066357fe5b0485029350610673565b60098590555b61067f87600954610ffd565b600780549091019055600160a060020a038a166000908152600460205260409020546106ab90866110a5565b600460008c600160a060020a0316600160a060020a031681526020019081526020016000208190555083856007540203925082600660008c600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055504260028190555033600360006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168a600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a50610a24565b3399506107a78d600a610ffd565b98506107b4896002610ffd565b97506107c08989610f86565b96506107cc8d8a610f86565b95506107d786611020565b94508693506000851180156107f657506009546107f486826110a5565b115b151561080157600080fd5b600160a060020a038c161580159061082b575089600160a060020a03168c600160a060020a031614155b1561087157600160a060020a038c1660009081526005602052604090205461085390896110a5565b600160a060020a038d166000908152600560205260409020556108cc565b600160a060020a038c8116908b16146108aa57600854600160a060020a03166000908152600660205260409020805489900390556108cc565b600854600160a060020a03166000908152600560205260409020805489900390555b600060095411156108fc576108e3600954866110a5565b6009819055878115156108f257fe5b0485029350610902565b60098590555b61090e87600954610ffd565b600780549091019055600160a060020a038a1660009081526004602052604090205461093a90866110a5565b600460008c600160a060020a0316600160a060020a031681526020019081526020016000208190555083856007540203925082600660008c600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055504260028190555033600360006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168a600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610aba5780601f10610a8f57610100808354040283529160200191610aba565b820191906000526020600020905b815481529060010190602001808311610a9d57829003601f168201915b505050505081565b60008080806d04ee2d6d415b85acef8100000000851115610b4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6e756d62657220697320746f6f20626967000000000000000000000000000000604482015290519081900360640190fd5b610b4f85600a610ffd565b9250610b5b8584610f86565b9150610b6682611020565b95945050505050565b600354600160a060020a031681565b60095490565b6000806000806009548511151515610b9b57600080fd5b610ba48561111d565b9250610bb183600a610ffd565b9150610b668383610f86565b60035474010000000000000000000000000000000000000000900460ff1681565b600081565b60008060008060095460001415610c0257655af30f955e4093506104d2565b610c0c600161111d565b9250610c1983600a610ffd565b9150610c258383610f86565b90508093506104d2565b60003382610c4557610c4081611156565b610c69565b600160a060020a038116600090815260056020526040902054610c6782611156565b015b91505b50919050565b303190565b60008060008060095460001415610c9657655af3115f21c093506104d2565b610ca0600161111d565b9250610cad836009610ffd565b9150610c2583836110a5565b600033610cc581611190565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610aba5780601f10610a8f57610100808354040283529160200191610aba565b6000806000610d32610cb9565b11610d3c57600080fd5b5033600081815260046020526040902054831115610d5957600080fd5b6000610d656001610c2f565b1115610d7457610d74336111ab565b600160a060020a038116600090815260046020526040902054610d979084610f86565b600160a060020a038083166000908152600460205260408082209390935590861681522054610dc690846110a5565b600160a060020a0385811660008181526004602090815260408083209590955560078054948716808452600683528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360008181526004602052604081205490811115610e7457610e748161128f565b610e7d836111ab565b505050565b60035460009074010000000000000000000000000000000000000000900460ff1615610eaa57fe5b610eb26103b6565b15610ec657610ebf61040b565b9050610ed0565b610ebf34836104d8565b919050565b60025481565b600080600080610eeb6001610c2f565b11610ef557600080fd5b610eff6000610c2f565b3360008181526006602090815260408083208054860190556005909152812080549082905590920194509250610f369084906104d8565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600082821115610ff757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820737562206661696c656400000000000000000000000000604482015290519081900360640190fd5b50900390565b60008080831161100c57600080fd5b828481151561101757fe5b04949350505050565b6000806000905060095462e4e1c002655af3107a40000183101561104657809150610c6c565b60095462e4e1c06110936110876301c9c380870265cca2e51310006002860a020168a2a15d09519be000008502016b204fce5e3e2502611000000001611377565b655af3107a4000610f86565b81151561109c57fe5b04039392505050565b8181018281101561111757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b92915050565b60008061114f655af3107a400060095462e4e1c002018402600262e4e1c06002870a0281151561114957fe5b04610f86565b9392505050565b600160a060020a03811660009081526006602090815260408083205460049092528220546007540203818112156111175750600092915050565b600160a060020a031660009081526004602052604090205490565b60008060006111ba6001610c2f565b116111c457600080fd5b3391506111d16000610c2f565b600160a060020a03831660009081526006602090815260408083208054850190556005909152812080549190550190506002303104811115611214575060023031045b604051600160a060020a0384169082156108fc029083906000818181858888f1935050505015801561124a573d6000803e3d6000fd5b50604080518281529051600160a060020a038516917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a2505050565b60008060008060008060006112a2610cb9565b116112ac57600080fd5b336000818152600460205260409020549096508711156112cb57600080fd5b8694506112d78561111d565b93506112e484600a610ffd565b92506112f08484610f86565b91506112fe60095486610f86565b600955600160a060020a0386166000908152600460205260409020546113249086610f86565b600160a060020a0396871660009081526004602090815260408083209390935560075460069091528282208054919098029094019093039095555060085490941684529190922080549190910390555050565b60008060026113878460016110a5565b81151561139057fe5b0490508291505b81811015610c6c5780915060026113b982858115156113b257fe5b04836110a5565b8115156113c257fe5b0490506113975600a165627a7a72305820a3b4cd19d4637b99f142ab255745662d82282cb22534adfa24a5d44c99e7fd140029

Deployed Bytecode

0x6080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014a57806310d0ffdd146101d457806313ecfbfa146101fe57806318160ddd1461022f57806322609373146102445780632fc6e8b71461025c578063313ce567146102855780634b750334146102b0578063688abbf7146102c55780636b2f4632146102df5780638620410b146102f4578063949e8acd1461030957806395d89b411461031e578063a9059cbb14610333578063b42652e914610357578063f088d54714610378578063f29f4d0b1461038c578063fdb5a03e146103a1575b60035474010000000000000000000000000000000000000000900460ff161561012057fe5b6101286103b6565b1561013b5761013561040b565b50610148565b6101463460006104d8565b505b005b34801561015657600080fd5b5061015f610a34565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610199578181015183820152602001610181565b50505050905090810190601f1680156101c65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e057600080fd5b506101ec600435610ac2565b60408051918252519081900360200190f35b34801561020a57600080fd5b50610213610b6f565b60408051600160a060020a039092168252519081900360200190f35b34801561023b57600080fd5b506101ec610b7e565b34801561025057600080fd5b506101ec600435610b84565b34801561026857600080fd5b50610271610bbd565b604080519115158252519081900360200190f35b34801561029157600080fd5b5061029a610bde565b6040805160ff9092168252519081900360200190f35b3480156102bc57600080fd5b506101ec610be3565b3480156102d157600080fd5b506101ec6004351515610c2f565b3480156102eb57600080fd5b506101ec610c72565b34801561030057600080fd5b506101ec610c77565b34801561031557600080fd5b506101ec610cb9565b34801561032a57600080fd5b5061015f610ccb565b34801561033f57600080fd5b50610271600160a060020a0360043516602435610d25565b34801561036357600080fd5b50610148600160a060020a0360043516610e53565b6101ec600160a060020a0360043516610e82565b34801561039857600080fd5b506101ec610ed5565b3480156103ad57600080fd5b50610148610edb565b6000426201518060025401101561040457506003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556001610408565b5060005b90565b60405160009081908190819033903480156108fc029184818181858888f1935050505015801561043f573d6000803e3d6000fd5b50303192506064605884020491506104578383610f86565b600854604051919250600160a060020a03169082156108fc029083906000818181858888f19350505050158015610492573d6000803e3d6000fd5b50600354604051600160a060020a039091169083156108fc029084906000818181858888f193505050501580156104cd573d6000803e3d6000fd5b508193505b50505090565b600080808080808080808a3031683635c9adc5dea00000811161079957671bc16d674ec8000082111561050a57600080fd5b3399506105188d600a610ffd565b9850610525896002610ffd565b97506105318989610f86565b965061053d8d8a610f86565b955061054886611020565b9450869350600085118015610567575060095461056586826110a5565b115b151561057257600080fd5b600160a060020a038c161580159061059c575089600160a060020a03168c600160a060020a031614155b156105e257600160a060020a038c166000908152600560205260409020546105c490896110a5565b600160a060020a038d1660009081526005602052604090205561063d565b600160a060020a038c8116908b161461061b57600854600160a060020a031660009081526006602052604090208054899003905561063d565b600854600160a060020a03166000908152600560205260409020805489900390555b6000600954111561066d57610654600954866110a5565b60098190558781151561066357fe5b0485029350610673565b60098590555b61067f87600954610ffd565b600780549091019055600160a060020a038a166000908152600460205260409020546106ab90866110a5565b600460008c600160a060020a0316600160a060020a031681526020019081526020016000208190555083856007540203925082600660008c600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055504260028190555033600360006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168a600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a50610a24565b3399506107a78d600a610ffd565b98506107b4896002610ffd565b97506107c08989610f86565b96506107cc8d8a610f86565b95506107d786611020565b94508693506000851180156107f657506009546107f486826110a5565b115b151561080157600080fd5b600160a060020a038c161580159061082b575089600160a060020a03168c600160a060020a031614155b1561087157600160a060020a038c1660009081526005602052604090205461085390896110a5565b600160a060020a038d166000908152600560205260409020556108cc565b600160a060020a038c8116908b16146108aa57600854600160a060020a03166000908152600660205260409020805489900390556108cc565b600854600160a060020a03166000908152600560205260409020805489900390555b600060095411156108fc576108e3600954866110a5565b6009819055878115156108f257fe5b0485029350610902565b60098590555b61090e87600954610ffd565b600780549091019055600160a060020a038a1660009081526004602052604090205461093a90866110a5565b600460008c600160a060020a0316600160a060020a031681526020019081526020016000208190555083856007540203925082600660008c600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055504260028190555033600360006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168a600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610aba5780601f10610a8f57610100808354040283529160200191610aba565b820191906000526020600020905b815481529060010190602001808311610a9d57829003601f168201915b505050505081565b60008080806d04ee2d6d415b85acef8100000000851115610b4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6e756d62657220697320746f6f20626967000000000000000000000000000000604482015290519081900360640190fd5b610b4f85600a610ffd565b9250610b5b8584610f86565b9150610b6682611020565b95945050505050565b600354600160a060020a031681565b60095490565b6000806000806009548511151515610b9b57600080fd5b610ba48561111d565b9250610bb183600a610ffd565b9150610b668383610f86565b60035474010000000000000000000000000000000000000000900460ff1681565b600081565b60008060008060095460001415610c0257655af30f955e4093506104d2565b610c0c600161111d565b9250610c1983600a610ffd565b9150610c258383610f86565b90508093506104d2565b60003382610c4557610c4081611156565b610c69565b600160a060020a038116600090815260056020526040902054610c6782611156565b015b91505b50919050565b303190565b60008060008060095460001415610c9657655af3115f21c093506104d2565b610ca0600161111d565b9250610cad836009610ffd565b9150610c2583836110a5565b600033610cc581611190565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610aba5780601f10610a8f57610100808354040283529160200191610aba565b6000806000610d32610cb9565b11610d3c57600080fd5b5033600081815260046020526040902054831115610d5957600080fd5b6000610d656001610c2f565b1115610d7457610d74336111ab565b600160a060020a038116600090815260046020526040902054610d979084610f86565b600160a060020a038083166000908152600460205260408082209390935590861681522054610dc690846110a5565b600160a060020a0385811660008181526004602090815260408083209590955560078054948716808452600683528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360008181526004602052604081205490811115610e7457610e748161128f565b610e7d836111ab565b505050565b60035460009074010000000000000000000000000000000000000000900460ff1615610eaa57fe5b610eb26103b6565b15610ec657610ebf61040b565b9050610ed0565b610ebf34836104d8565b919050565b60025481565b600080600080610eeb6001610c2f565b11610ef557600080fd5b610eff6000610c2f565b3360008181526006602090815260408083208054860190556005909152812080549082905590920194509250610f369084906104d8565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600082821115610ff757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820737562206661696c656400000000000000000000000000604482015290519081900360640190fd5b50900390565b60008080831161100c57600080fd5b828481151561101757fe5b04949350505050565b6000806000905060095462e4e1c002655af3107a40000183101561104657809150610c6c565b60095462e4e1c06110936110876301c9c380870265cca2e51310006002860a020168a2a15d09519be000008502016b204fce5e3e2502611000000001611377565b655af3107a4000610f86565b81151561109c57fe5b04039392505050565b8181018281101561111757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b92915050565b60008061114f655af3107a400060095462e4e1c002018402600262e4e1c06002870a0281151561114957fe5b04610f86565b9392505050565b600160a060020a03811660009081526006602090815260408083205460049092528220546007540203818112156111175750600092915050565b600160a060020a031660009081526004602052604090205490565b60008060006111ba6001610c2f565b116111c457600080fd5b3391506111d16000610c2f565b600160a060020a03831660009081526006602090815260408083208054850190556005909152812080549190550190506002303104811115611214575060023031045b604051600160a060020a0384169082156108fc029083906000818181858888f1935050505015801561124a573d6000803e3d6000fd5b50604080518281529051600160a060020a038516917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a2505050565b60008060008060008060006112a2610cb9565b116112ac57600080fd5b336000818152600460205260409020549096508711156112cb57600080fd5b8694506112d78561111d565b93506112e484600a610ffd565b92506112f08484610f86565b91506112fe60095486610f86565b600955600160a060020a0386166000908152600460205260409020546113249086610f86565b600160a060020a0396871660009081526004602090815260408083209390935560075460069091528282208054919098029094019093039095555060085490941684529190922080549190910390555050565b60008060026113878460016110a5565b81151561139057fe5b0490508291505b81811015610c6c5780915060026113b982858115156113b257fe5b04836110a5565b8115156113c257fe5b0490506113975600a165627a7a72305820a3b4cd19d4637b99f142ab255745662d82282cb22534adfa24a5d44c99e7fd140029

Swarm Source

bzzr://a3b4cd19d4637b99f142ab255745662d82282cb22534adfa24a5d44c99e7fd14

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.