ETH Price: $2,744.23 (+1.26%)
Gas: 0.72 Gwei

Token

FomoCube (CUBE)
 

Overview

Max Total Supply

1,596.933742393280192105 CUBE

Holders

149

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1 CUBE

Value
$0.00
0x0e7d779c02552685327a850e8fdd3bd3e42cdcbf
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

FomoCube is a decentralized financial game where the tokens are created upon purchase and destroyed upon sale. The token price rises and falls with the token supply and 20% of the ETH from buys/sells are distributed to CUBE holders. On buy: 1/3 of the 20% is given to the referrer (if provided)

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
FomoCube

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-11-14
*/

pragma solidity ^0.4.24;

/**
              _.-+.
         _.-""     '.
      :""       o    '.
      |\       m       '.
      | \     o       _.+
      |  '.  F    _.-"  |
      |    \  _.-"      |
      |     +"       e  |
       \    |      b    |
        \   |    u     .+
         \  |  C    .-'
          \ |    .-'
           \| .-'
            +'

This contract is a modified version of PoWH3D:
https://etherscan.io/address/0xb3775fb83f7d12a36e0475abdd1fca35c091efbe#code

Modifications:
- Connected to FomoCube username contract
- Removed staking requirement
- Removed transfer fee
- Replaced "Reinvest" event with boolean flag for onTokenPurchase
- Added ability to deposit ETH to token holders as dividends
|
- Replaced "Ambassador" system with admininstrator premine + timer:
|
-- Admin can buy beyond the 1 ETH limit, but cannot buy after the timer is set.
-- This means the admin can premine for multiple users with a shared price,
-- start the timer, and then transfer to the preminers.
|
>>> https://fomocube.io/

 */

contract FomoCube {
    /*=================================
    =            MODIFIERS            =
    =================================*/
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }
    
    // only people with profits
    modifier onlyStronghands() {
        require(myDividends(true) > 0);
        _;
    }
    
    modifier onlyAdmin(){
        require(msg.sender == administrator);
        _;
    }
    
    modifier earlyBuyLimiter(uint256 _amountOfEthereum) {
        if (earlyLimiterValve && timerSet) {
            if(totalEthereumBalance() - _amountOfEthereum <= 20 ether) {
                require(_amountOfEthereum <= 1 ether, "Early buy-in limit is 1 ETH");
                _;
                return;
            } else { earlyLimiterValve = false; }
        } 
        _;
    }
    
    // tighter than a chastity belt
    modifier lock() {
        if (timerSet) {
            require(now > startTime);
        } else {
            require(msg.sender == administrator);
        }
        _;
    }
    
    /*==============================
    =            EVENTS            =
    ==============================*/
    event onTokenPurchase(
        address indexed customerAddress,
        bytes32 customerName,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy,
        bool isReinvest
    );
    
    event onTokenSell(
        address indexed customerAddress,
        bytes32 customerName,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );
    
    event onWithdraw(
        address indexed customerAddress,
        bytes32 customerName,
        uint256 ethereumWithdrawn
    );
    
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
    
    
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "FomoCube";
    string public symbol = "CUBE";
    uint8 constant public decimals = 18;
    uint8 constant internal dividendFee_ = 5; // 20%
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2**64;
    
    // admin for premine lock
    address internal administrator;
    
    // username interface
    UsernameInterface private username;
    
   /*================================
    =            DATASETS            =
    ================================*/
    // amount of shares for each address (scaled number)
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    mapping(address => bool) internal approvedDistributors;
    uint256 internal tokenSupply_ = 0;
    uint256 internal profitPerShare_;

    uint256 public startTime;
    bool public earlyLimiterValve = true;
    bool public timerSet = false;

    /*=======================================
    =            PUBLIC FUNCTIONS            =
    =======================================*/
    /*
    * -- APPLICATION ENTRY POINTS --  
    */
    constructor(address usernameAddress)
        public
    {
        username = UsernameInterface(usernameAddress);
        administrator = msg.sender;
    }
    
    function setStart(uint256 start)
        onlyAdmin()
        public
    {
        require(startTime == 0);
        startTime = start;
        timerSet = true;
    }
    
    function approveDistributor(address newDistributor)
        onlyAdmin()
        public
    {
        approvedDistributors[newDistributor] = true;
    }
     
    /**
     * Converts all incoming ethereum to tokens for the caller, and passes down the referral addy (if any)
     */
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        purchaseTokens(msg.value, _referredBy, false);
    }
    
    /**
     * Fallback function to handle ethereum that was send straight to the contract
     * Unfortunately we cannot use a referral address this way.
     */
    function()
        external
        payable
    {
        purchaseTokens(msg.value, address(0x0), false);
    }
    
    function distribute()
        external
        payable
    {
        require(approvedDistributors[msg.sender] == true);
        profitPerShare_ = SafeMath.add(profitPerShare_, (msg.value * magnitude) / tokenSupply_);
    }
    
    /**
     * 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 * magnitude);
        
        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // dispatch a buy order with the virtualized "withdrawn dividends"
        purchaseTokens(_dividends, address(0x0), true);
    }
    
    /**
     * Alias of sell() and withdraw().
     */
    function exit()
        public
    {
        // get token count for caller & sell them all
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
        
        withdraw();
    }

    /**
     * Withdraws all of the callers earnings.
     */
    function withdraw()
        onlyStronghands()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false); // get ref. bonus later in the code
        
        // update dividend tracker
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // lambo delivery service
        _customerAddress.transfer(_dividends);
        
        // fire event
        emit onWithdraw(_customerAddress, username.getNameByAddress(msg.sender), _dividends);
    }
    
    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        
        // update dividends tracker
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;       
        
        // dividing by zero is a bad idea
        if (tokenSupply_ > 0) {
            // update the amount of dividends per token
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        
        // fire event
        emit onTokenSell(_customerAddress, username.getNameByAddress(msg.sender), _tokens, _taxedEthereum);
    }
    
    
    /**
     * Fuck the transfer fee
     * Who needs it
     */
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyBagholders()
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;
        
        // make sure we have the requested tokens
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        // withdraw all outstanding dividends first
        if(myDividends(true) > 0) withdraw();
        
        // 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;
    }
    
    /*----------  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) ;
    }
    
    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    /**
     * Retrieve the dividend balance of any single address.
     */
    function dividendsOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }
    
    /**
     * 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.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            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)
    {
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(_ethereum, dividendFee_  );
            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)
    {
        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;
    }
    
    
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy, bool isReinvest)
        lock()
        earlyBuyLimiter(_incomingEthereum)
        internal
        returns(uint256)
    {
        // data setup
        uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_);
        uint256 _referralBonus = SafeMath.div(_undividedDividends, 3);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;
 
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        // is the user referred by a masternode?
        if(
            // is this a referred purchase?
            _referredBy != 0x0000000000000000000000000000000000000000 &&

            // no cheating!
            _referredBy != msg.sender
        ){
            // wealth redistribution
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            // no ref purchase
            // add the referral bonus back to the global dividends
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }
        
        // we can't give people infinite ethereum
        if(tokenSupply_ > 0){
            
            // add tokens to the pool
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
 
            // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
            profitPerShare_ += (_dividends * magnitude / (tokenSupply_));
            
            // calculate the amount of tokens the customer receives over his purchase 
            _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
        
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }
        
        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[msg.sender] = SafeMath.add(tokenBalanceLedger_[msg.sender], _amountOfTokens);
        
        // Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them;
        //really i know you think you do but you don't
        int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[msg.sender] += _updatedPayouts;
        
        // fire event
        emit onTokenPurchase(msg.sender, username.getNameByAddress(msg.sender), _incomingEthereum, _amountOfTokens, _referredBy, isReinvest);
        
        return _amountOfTokens;
    }

    /**
     * Calculate Token price based on an amount of incoming ethereum
     * It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function ethereumToTokens_(uint256 _ethereum)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived = 
         (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial**2)
                            +
                            (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18))
                            +
                            (((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                            +
                            (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            )/(tokenPriceIncremental_)
        )-(tokenSupply_)
        ;
  
        return _tokensReceived;
    }
    
    /**
     * Calculate token sell value.
     * It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     * Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
     function tokensToEthereum_(uint256 _tokens)
        internal
        view
        returns(uint256)
    {

        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
        (
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ +(tokenPriceIncremental_ * (_tokenSupply/1e18))
                        )-tokenPriceIncremental_
                    )*(tokens_ - 1e18)
                ),(tokenPriceIncremental_*((tokens_**2-tokens_)/1e18))/2
            )
        /1e18);
        return _etherReceived;
    }
    
    
    //This is where all your gas goes apparently
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

interface UsernameInterface {
    function getNameByAddress(address _addr) external view returns (bytes32);
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    /**
    * @dev Substracts 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);
        return a - b;
    }

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

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":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timerSet","outputs":[{"name":"","type":"bool"}],"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":"earlyLimiterValve","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":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newDistributor","type":"address"}],"name":"approveDistributor","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","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":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"distribute","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"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":false,"inputs":[{"name":"start","type":"uint256"}],"name":"setStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"usernameAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"customerName","type":"bytes32"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"isReinvest","type":"bool"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"customerName","type":"bytes32"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"customerName","type":"bytes32"},{"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"}]

60c0604052600860808190527f466f6d6f4375626500000000000000000000000000000000000000000000000060a0908152620000409160009190620000f0565b506040805180820190915260048082527f435542450000000000000000000000000000000000000000000000000000000060209092019182526200008791600191620000f0565b506000600855600b805461ff001960ff19909116600117169055348015620000ae57600080fd5b5060405160208062001725833981016040525160038054600160a060020a03909216600160a060020a0319928316179055600280549091163317905562000195565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013357805160ff191683800117855562000163565b8280016001018555821562000163579182015b828111156200016357825182559160200191906001019062000146565b506200017192915062000175565b5090565b6200019291905b808211156200017157600081556001016200017c565b90565b61158080620001a56000396000f30060806040526004361061012e5763ffffffff60e060020a60003504166265318b811461013d57806306fdde031461017057806310d0ffdd146101fa578063141ea3171461021257806318160ddd1461023b578063226093731461025057806322a716b114610268578063313ce5671461027d5780633ccfd60b146102a8578063482aede5146102bf5780634b750334146102e0578063688abbf7146102f55780636b2f46321461030f57806370a082311461032457806378e97925146103455780638620410b1461035a578063949e8acd1461036f57806395d89b4114610384578063a9059cbb14610399578063e4849b32146103bd578063e4fc6b6d146103d5578063e9fad8ee146103dd578063f088d547146103f2578063f6a03ebf14610406578063fdb5a03e1461041e575b61013a34600080610433565b50005b34801561014957600080fd5b5061015e600160a060020a0360043516610b3c565b60408051918252519081900360200190f35b34801561017c57600080fd5b50610185610b77565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101bf5781810151838201526020016101a7565b50505050905090810190601f1680156101ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020657600080fd5b5061015e600435610c05565b34801561021e57600080fd5b50610227610c35565b604080519115158252519081900360200190f35b34801561024757600080fd5b5061015e610c43565b34801561025c57600080fd5b5061015e600435610c49565b34801561027457600080fd5b50610227610c82565b34801561028957600080fd5b50610292610c8b565b6040805160ff9092168252519081900360200190f35b3480156102b457600080fd5b506102bd610c90565b005b3480156102cb57600080fd5b506102bd600160a060020a0360043516610df1565b3480156102ec57600080fd5b5061015e610e2c565b34801561030157600080fd5b5061015e6004351515610e80565b34801561031b57600080fd5b5061015e610ec3565b34801561033057600080fd5b5061015e600160a060020a0360043516610ec8565b34801561035157600080fd5b5061015e610ee3565b34801561036657600080fd5b5061015e610ee9565b34801561037b57600080fd5b5061015e610f31565b34801561039057600080fd5b50610185610f43565b3480156103a557600080fd5b50610227600160a060020a0360043516602435610f9d565b3480156103c957600080fd5b506102bd6004356110ca565b6102bd6112b3565b3480156103e957600080fd5b506102bd6112f7565b61015e600160a060020a0360043516611324565b34801561041257600080fd5b506102bd600435611332565b34801561042a57600080fd5b506102bd61136a565b600080600080600080600080600b60019054906101000a900460ff161561046757600a54421161046257600080fd5b61047e565b600254600160a060020a0316331461047e57600080fd5b600b548b9060ff1680156104995750600b54610100900460ff165b15610835576801158e460913d00000816104b1610ec3565b031161082a57670de0b6b3a764000081111561052e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4561726c79206275792d696e206c696d69742069732031204554480000000000604482015290519081900360640190fd5b6105398c60056113d6565b97506105468860036113d6565b965061055288886113ed565b955061055e8c896113ed565b945061056985611402565b935068010000000000000000860292506000841180156105935750600854610591858261149a565b115b151561059e57600080fd5b600160a060020a038b16158015906105bf5750600160a060020a038b163314155b1561060557600160a060020a038b166000908152600560205260409020546105e7908861149a565b600160a060020a038c16600090815260056020526040902055610620565b61060f868861149a565b955068010000000000000000860292505b60006008541115610684576106376008548561149a565b600881905568010000000000000000870281151561065157fe5b6009805492909104909101905560085468010000000000000000870281151561067657fe5b04840283038303925061068a565b60088490555b336000908152600460205260409020546106a4908561149a565b6004600033600160a060020a0316600160a060020a0316815260200190815260200160002081905550828460095402039150816006600033600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508a600160a060020a031633600160a060020a03167f98b60cfa34508471467f46e2e4c785fdac290ba7406e041c4defb51e25b07d5e600360009054906101000a9004600160a060020a0316600160a060020a0316637c80bb4f336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b505050506040513d60208110156107d857600080fd5b81019080805190602001909291905050508f888f6040518085600019166000191681526020018481526020018381526020018215151515815260200194505050505060405180910390a3839850610b2d565b600b805460ff191690555b6108408c60056113d6565b975061084d8860036113d6565b965061085988886113ed565b95506108658c896113ed565b945061087085611402565b9350680100000000000000008602925060008411801561089a5750600854610898858261149a565b115b15156108a557600080fd5b600160a060020a038b16158015906108c65750600160a060020a038b163314155b1561090c57600160a060020a038b166000908152600560205260409020546108ee908861149a565b600160a060020a038c16600090815260056020526040902055610927565b610916868861149a565b955068010000000000000000860292505b6000600854111561098b5761093e6008548561149a565b600881905568010000000000000000870281151561095857fe5b6009805492909104909101905560085468010000000000000000870281151561097d57fe5b048402830383039250610991565b60088490555b336000908152600460205260409020546109ab908561149a565b6004600033600160a060020a0316600160a060020a0316815260200190815260200160002081905550828460095402039150816006600033600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508a600160a060020a031633600160a060020a03167f98b60cfa34508471467f46e2e4c785fdac290ba7406e041c4defb51e25b07d5e600360009054906101000a9004600160a060020a0316600160a060020a0316637c80bb4f336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610ab557600080fd5b505af1158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b81019080805190602001909291905050508f888f6040518085600019166000191681526020018481526020018381526020018215151515815260200194505050505060405180910390a38398505b50505050505050509392505050565b600160a060020a0316600090815260066020908152604080832054600490925290912054600954680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b820191906000526020600020905b815481529060010190602001808311610be057829003601f168201915b505050505081565b6000808080610c158560056113d6565b9250610c2185846113ed565b9150610c2c82611402565b95945050505050565b600b54610100900460ff1681565b60085490565b6000806000806008548511151515610c6057600080fd5b610c69856114b3565b9250610c768360056113d6565b9150610c2c83836113ed565b600b5460ff1681565b601281565b6000806000610c9f6001610e80565b11610ca957600080fd5b339150610cb66000610e80565b600160a060020a038316600081815260066020908152604080832080546801000000000000000087020190556005909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610d1f573d6000803e3d6000fd5b50600354604080517f7c80bb4f0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03808616937ee146a145d9955498f2f57f7976f0ca4b04166bcdc744667ff2291e99d43eab93911691637c80bb4f916024808201926020929091908290030181600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b505050506040513d6020811015610dd457600080fd5b505160408051918252602082018590528051918290030190a25050565b600254600160a060020a03163314610e0857600080fd5b600160a060020a03166000908152600760205260409020805460ff19166001179055565b60008060008060085460001415610e4a576414f46b04009350610e7a565b610e5b670de0b6b3a76400006114b3565b9250610e688360056113d6565b9150610e7483836113ed565b90508093505b50505090565b60003382610e9657610e9181610b3c565b610eba565b600160a060020a038116600090815260056020526040902054610eb882610b3c565b015b91505b50919050565b303190565b600160a060020a031660009081526004602052604090205490565b600a5481565b60008060008060085460001415610f075764199c82cc009350610e7a565b610f18670de0b6b3a76400006114b3565b9250610f258360056113d6565b9150610e74838361149a565b600033610f3d81610ec8565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b6000806000610faa610f31565b11610fb457600080fd5b5033600081815260046020526040902054831115610fd157600080fd5b6000610fdd6001610e80565b1115610feb57610feb610c90565b600160a060020a03811660009081526004602052604090205461100e90846113ed565b600160a060020a03808316600090815260046020526040808220939093559086168152205461103d908461149a565b600160a060020a0385811660008181526004602090815260408083209590955560098054948716808452600683528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b60008060008060008060006110dd610f31565b116110e757600080fd5b3360008181526004602052604090205490965087111561110657600080fd5b869450611112856114b3565b935061111f8460056113d6565b925061112b84846113ed565b9150611139600854866113ed565b600855600160a060020a03861660009081526004602052604090205461115f90866113ed565b600160a060020a038716600090815260046020908152604080832093909355600954600690915291812080549288026801000000000000000086020192839003905560085491925010156111d5576111d16009546008546801000000000000000086028115156111cb57fe5b0461149a565b6009555b600354604080517f7c80bb4f0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03808a16937f2b1bab0dee4e0a50527886cb13a7c880afb5fde2e72f684c423c27865918c73893911691637c80bb4f916024808201926020929091908290030181600087803b15801561126057600080fd5b505af1158015611274573d6000803e3d6000fd5b505050506040513d602081101561128a57600080fd5b50516040805191825260208201899052818101869052519081900360600190a250505050505050565b3360009081526007602052604090205460ff1615156001146112d457600080fd5b6112f26009546008546801000000000000000034028115156111cb57fe5b600955565b336000818152600460205260408120549081111561131857611318816110ca565b611320610c90565b5050565b6000610ebd34836000610433565b600254600160a060020a0316331461134957600080fd5b600a541561135657600080fd5b600a55600b805461ff001916610100179055565b60008060006113796001610e80565b1161138357600080fd5b61138d6000610e80565b336000818152600660209081526040808320805468010000000000000000870201905560059091528120805490829055909201935091506113d19083906001610433565b505050565b60008082848115156113e457fe5b04949350505050565b6000828211156113fc57600080fd5b50900390565b6008546000906c01431e0fae6d7217caa00000009082906402540be400611487611481730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e4000000000000000161151f565b856113ed565b81151561149057fe5b0403949350505050565b6000828201838110156114ac57600080fd5b9392505050565b600854600090670de0b6b3a764000083810191810190839061150c6414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be4000281151561150657fe5b046113ed565b81151561151557fe5b0495945050505050565b80600260018201045b81811015610ebd57809150600281828581151561154157fe5b040181151561154c57fe5b0490506115285600a165627a7a72305820b5db8ec5a350d9c2e13caca5e51185638e685906bfae64536f3b6a09a6b5b4820029000000000000000000000000006f58215dadb1ed27446aa132b622ebdf5b4cca

Deployed Bytecode

0x60806040526004361061012e5763ffffffff60e060020a60003504166265318b811461013d57806306fdde031461017057806310d0ffdd146101fa578063141ea3171461021257806318160ddd1461023b578063226093731461025057806322a716b114610268578063313ce5671461027d5780633ccfd60b146102a8578063482aede5146102bf5780634b750334146102e0578063688abbf7146102f55780636b2f46321461030f57806370a082311461032457806378e97925146103455780638620410b1461035a578063949e8acd1461036f57806395d89b4114610384578063a9059cbb14610399578063e4849b32146103bd578063e4fc6b6d146103d5578063e9fad8ee146103dd578063f088d547146103f2578063f6a03ebf14610406578063fdb5a03e1461041e575b61013a34600080610433565b50005b34801561014957600080fd5b5061015e600160a060020a0360043516610b3c565b60408051918252519081900360200190f35b34801561017c57600080fd5b50610185610b77565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101bf5781810151838201526020016101a7565b50505050905090810190601f1680156101ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020657600080fd5b5061015e600435610c05565b34801561021e57600080fd5b50610227610c35565b604080519115158252519081900360200190f35b34801561024757600080fd5b5061015e610c43565b34801561025c57600080fd5b5061015e600435610c49565b34801561027457600080fd5b50610227610c82565b34801561028957600080fd5b50610292610c8b565b6040805160ff9092168252519081900360200190f35b3480156102b457600080fd5b506102bd610c90565b005b3480156102cb57600080fd5b506102bd600160a060020a0360043516610df1565b3480156102ec57600080fd5b5061015e610e2c565b34801561030157600080fd5b5061015e6004351515610e80565b34801561031b57600080fd5b5061015e610ec3565b34801561033057600080fd5b5061015e600160a060020a0360043516610ec8565b34801561035157600080fd5b5061015e610ee3565b34801561036657600080fd5b5061015e610ee9565b34801561037b57600080fd5b5061015e610f31565b34801561039057600080fd5b50610185610f43565b3480156103a557600080fd5b50610227600160a060020a0360043516602435610f9d565b3480156103c957600080fd5b506102bd6004356110ca565b6102bd6112b3565b3480156103e957600080fd5b506102bd6112f7565b61015e600160a060020a0360043516611324565b34801561041257600080fd5b506102bd600435611332565b34801561042a57600080fd5b506102bd61136a565b600080600080600080600080600b60019054906101000a900460ff161561046757600a54421161046257600080fd5b61047e565b600254600160a060020a0316331461047e57600080fd5b600b548b9060ff1680156104995750600b54610100900460ff165b15610835576801158e460913d00000816104b1610ec3565b031161082a57670de0b6b3a764000081111561052e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4561726c79206275792d696e206c696d69742069732031204554480000000000604482015290519081900360640190fd5b6105398c60056113d6565b97506105468860036113d6565b965061055288886113ed565b955061055e8c896113ed565b945061056985611402565b935068010000000000000000860292506000841180156105935750600854610591858261149a565b115b151561059e57600080fd5b600160a060020a038b16158015906105bf5750600160a060020a038b163314155b1561060557600160a060020a038b166000908152600560205260409020546105e7908861149a565b600160a060020a038c16600090815260056020526040902055610620565b61060f868861149a565b955068010000000000000000860292505b60006008541115610684576106376008548561149a565b600881905568010000000000000000870281151561065157fe5b6009805492909104909101905560085468010000000000000000870281151561067657fe5b04840283038303925061068a565b60088490555b336000908152600460205260409020546106a4908561149a565b6004600033600160a060020a0316600160a060020a0316815260200190815260200160002081905550828460095402039150816006600033600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508a600160a060020a031633600160a060020a03167f98b60cfa34508471467f46e2e4c785fdac290ba7406e041c4defb51e25b07d5e600360009054906101000a9004600160a060020a0316600160a060020a0316637c80bb4f336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156107ae57600080fd5b505af11580156107c2573d6000803e3d6000fd5b505050506040513d60208110156107d857600080fd5b81019080805190602001909291905050508f888f6040518085600019166000191681526020018481526020018381526020018215151515815260200194505050505060405180910390a3839850610b2d565b600b805460ff191690555b6108408c60056113d6565b975061084d8860036113d6565b965061085988886113ed565b95506108658c896113ed565b945061087085611402565b9350680100000000000000008602925060008411801561089a5750600854610898858261149a565b115b15156108a557600080fd5b600160a060020a038b16158015906108c65750600160a060020a038b163314155b1561090c57600160a060020a038b166000908152600560205260409020546108ee908861149a565b600160a060020a038c16600090815260056020526040902055610927565b610916868861149a565b955068010000000000000000860292505b6000600854111561098b5761093e6008548561149a565b600881905568010000000000000000870281151561095857fe5b6009805492909104909101905560085468010000000000000000870281151561097d57fe5b048402830383039250610991565b60088490555b336000908152600460205260409020546109ab908561149a565b6004600033600160a060020a0316600160a060020a0316815260200190815260200160002081905550828460095402039150816006600033600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508a600160a060020a031633600160a060020a03167f98b60cfa34508471467f46e2e4c785fdac290ba7406e041c4defb51e25b07d5e600360009054906101000a9004600160a060020a0316600160a060020a0316637c80bb4f336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610ab557600080fd5b505af1158015610ac9573d6000803e3d6000fd5b505050506040513d6020811015610adf57600080fd5b81019080805190602001909291905050508f888f6040518085600019166000191681526020018481526020018381526020018215151515815260200194505050505060405180910390a38398505b50505050505050509392505050565b600160a060020a0316600090815260066020908152604080832054600490925290912054600954680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b820191906000526020600020905b815481529060010190602001808311610be057829003601f168201915b505050505081565b6000808080610c158560056113d6565b9250610c2185846113ed565b9150610c2c82611402565b95945050505050565b600b54610100900460ff1681565b60085490565b6000806000806008548511151515610c6057600080fd5b610c69856114b3565b9250610c768360056113d6565b9150610c2c83836113ed565b600b5460ff1681565b601281565b6000806000610c9f6001610e80565b11610ca957600080fd5b339150610cb66000610e80565b600160a060020a038316600081815260066020908152604080832080546801000000000000000087020190556005909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610d1f573d6000803e3d6000fd5b50600354604080517f7c80bb4f0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03808616937ee146a145d9955498f2f57f7976f0ca4b04166bcdc744667ff2291e99d43eab93911691637c80bb4f916024808201926020929091908290030181600087803b158015610daa57600080fd5b505af1158015610dbe573d6000803e3d6000fd5b505050506040513d6020811015610dd457600080fd5b505160408051918252602082018590528051918290030190a25050565b600254600160a060020a03163314610e0857600080fd5b600160a060020a03166000908152600760205260409020805460ff19166001179055565b60008060008060085460001415610e4a576414f46b04009350610e7a565b610e5b670de0b6b3a76400006114b3565b9250610e688360056113d6565b9150610e7483836113ed565b90508093505b50505090565b60003382610e9657610e9181610b3c565b610eba565b600160a060020a038116600090815260056020526040902054610eb882610b3c565b015b91505b50919050565b303190565b600160a060020a031660009081526004602052604090205490565b600a5481565b60008060008060085460001415610f075764199c82cc009350610e7a565b610f18670de0b6b3a76400006114b3565b9250610f258360056113d6565b9150610e74838361149a565b600033610f3d81610ec8565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b6000806000610faa610f31565b11610fb457600080fd5b5033600081815260046020526040902054831115610fd157600080fd5b6000610fdd6001610e80565b1115610feb57610feb610c90565b600160a060020a03811660009081526004602052604090205461100e90846113ed565b600160a060020a03808316600090815260046020526040808220939093559086168152205461103d908461149a565b600160a060020a0385811660008181526004602090815260408083209590955560098054948716808452600683528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b60008060008060008060006110dd610f31565b116110e757600080fd5b3360008181526004602052604090205490965087111561110657600080fd5b869450611112856114b3565b935061111f8460056113d6565b925061112b84846113ed565b9150611139600854866113ed565b600855600160a060020a03861660009081526004602052604090205461115f90866113ed565b600160a060020a038716600090815260046020908152604080832093909355600954600690915291812080549288026801000000000000000086020192839003905560085491925010156111d5576111d16009546008546801000000000000000086028115156111cb57fe5b0461149a565b6009555b600354604080517f7c80bb4f0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a03808a16937f2b1bab0dee4e0a50527886cb13a7c880afb5fde2e72f684c423c27865918c73893911691637c80bb4f916024808201926020929091908290030181600087803b15801561126057600080fd5b505af1158015611274573d6000803e3d6000fd5b505050506040513d602081101561128a57600080fd5b50516040805191825260208201899052818101869052519081900360600190a250505050505050565b3360009081526007602052604090205460ff1615156001146112d457600080fd5b6112f26009546008546801000000000000000034028115156111cb57fe5b600955565b336000818152600460205260408120549081111561131857611318816110ca565b611320610c90565b5050565b6000610ebd34836000610433565b600254600160a060020a0316331461134957600080fd5b600a541561135657600080fd5b600a55600b805461ff001916610100179055565b60008060006113796001610e80565b1161138357600080fd5b61138d6000610e80565b336000818152600660209081526040808320805468010000000000000000870201905560059091528120805490829055909201935091506113d19083906001610433565b505050565b60008082848115156113e457fe5b04949350505050565b6000828211156113fc57600080fd5b50900390565b6008546000906c01431e0fae6d7217caa00000009082906402540be400611487611481730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e4000000000000000161151f565b856113ed565b81151561149057fe5b0403949350505050565b6000828201838110156114ac57600080fd5b9392505050565b600854600090670de0b6b3a764000083810191810190839061150c6414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be4000281151561150657fe5b046113ed565b81151561151557fe5b0495945050505050565b80600260018201045b81811015610ebd57809150600281828581151561154157fe5b040181151561154c57fe5b0490506115285600a165627a7a72305820b5db8ec5a350d9c2e13caca5e51185638e685906bfae64536f3b6a09a6b5b4820029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000006f58215dadb1ed27446aa132b622ebdf5b4cca

-----Decoded View---------------
Arg [0] : usernameAddress (address): 0x006f58215dadB1ed27446aA132B622EBdF5b4CCa

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000006f58215dadb1ed27446aa132b622ebdf5b4cca


Deployed Bytecode Sourcemap

1074:19006:0:-;;;;;;;;;-1:-1:-1;;;1074:19006:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5529:46;5544:9;5563:3;5569:5;5529:14;:46::i;:::-;;1074:19006;12082:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12082:254:0;-1:-1:-1;;;;;12082:254:0;;;;;;;;;;;;;;;;;;;;;3156:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3156:31: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;3156:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13622:398;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13622:398:0;;;;;4242:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4242:28:0;;;;;;;;;;;;;;;;;;;;;;10679:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10679:122:0;;;;14142:414;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14142:414:0;;;;;4199:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4199:36:0;;;;3230:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3230:35:0;;;;;;;;;;;;;;;;;;;;;;;7002:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7002:722:0;;;;;;4831:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4831:156:0;-1:-1:-1;;;;;4831:156:0;;;;;12418:538;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12418:538:0;;;;11424:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11424:310:0;;;;;;;10471:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10471:137:0;;;;11822:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11822:169:0;-1:-1:-1;;;;;11822:169:0;;;;;4168:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4168:24:0;;;;13039:462;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13039:462:0;;;;10880:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10880:182:0;;;;3194:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:29:0;;;;9190:1087;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9190:1087:0;-1:-1:-1;;;;;9190:1087:0;;;;;;;7792:1311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7792:1311:0;;;;;5595:228;;;;6644:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6644:285:0;;;;5126:162;;-1:-1:-1;;;;;5126:162:0;;;;;4648:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4648:171:0;;;;;5907:667;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5907:667:0;;;;14724:2910;14908:7;14956:27;15042:22;15114:18;15195:22;15283:23;15353:12;17277:22;2045:8;;;;;;;;;;;2041:134;;;2084:9;;2078:3;:15;2070:24;;;;;;2041:134;;;2149:13;;-1:-1:-1;;;;;2149:13:0;2135:10;:27;2127:36;;;;;;1645:17;;14854;;1645;;:29;;;;-1:-1:-1;1666:8:0;;;;;;;1645:29;1641:304;;;1740:8;1719:17;1694:22;:20;:22::i;:::-;:42;:54;1691:243;;1798:7;1777:28;;;1769:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14986:45;14999:17;3311:1;14986:12;:45::i;:::-;14956:75;;15067:36;15080:19;15101:1;15067:12;:36::i;:::-;15042:61;;15135:49;15148:19;15169:14;15135:12;:49::i;:::-;15114:70;;15220:52;15233:17;15252:19;15220:12;:52::i;:::-;15195:77;;15309:33;15327:14;15309:17;:33::i;:::-;15283:59;;3507:5;15368:10;:22;15353:37;;15430:1;15412:15;:19;:82;;;;-1:-1:-1;15481:12:0;;15436:42;15449:15;15481:12;15436;:42::i;:::-;:57;15412:82;15404:91;;;;;;;;-1:-1:-1;;;;;15628:57:0;;;;;;:130;;-1:-1:-1;;;;;;15733:25:0;;15748:10;15733:25;;15628:130;15566:589;;;-1:-1:-1;;;;;15867:29:0;;;;;;:16;:29;;;;;;15854:59;;15898:14;15854:12;:59::i;:::-;-1:-1:-1;;;;;15822:29:0;;;;;;:16;:29;;;;;:91;15566:589;;;16059:40;16072:10;16084:14;16059:12;:40::i;:::-;16046:53;;3507:5;16121:10;:22;16114:29;;15566:589;16244:1;16229:12;;:16;16226:671;;;16329:43;16342:12;;16356:15;16329:12;:43::i;:::-;16314:12;:58;;;3507:5;16534:22;;:39;;;;;;;16514:15;:60;;16534:39;;;;16514:60;;;;;16757:12;;3507:5;16731:22;;:39;;;;;;;;16712:15;:59;16706:4;:66;16698:4;:75;16691:82;;16226:671;;;16855:12;:30;;;16226:671;17060:10;17040:31;;;;:19;:31;;;;;;17027:62;;17073:15;17027:12;:62::i;:::-;16993:19;:31;17013:10;-1:-1:-1;;;;;16993:31:0;-1:-1:-1;;;;;16993:31:0;;;;;;;;;;;;:96;;;;17350:4;17331:15;17313;;:33;17312:42;17277:78;;17392:15;17366:10;:22;17377:10;-1:-1:-1;;;;;17366:22:0;-1:-1:-1;;;;;17366:22:0;;;;;;;;;;;;;:41;;;;;;;;;;;17559:11;-1:-1:-1;;;;;17456:127:0;17472:10;-1:-1:-1;;;;;17456:127:0;;17484:8;;;;;;;;;-1:-1:-1;;;;;17484:8:0;-1:-1:-1;;;;;17484:25:0;;17510:10;17484:37;;;;;-1:-1:-1;;;17484:37:0;;;;;;;-1:-1:-1;;;;;17484:37:0;-1:-1:-1;;;;;17484:37:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17484:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17484:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17484:37:0;;;;;;;;;;;;;;;;17523:17;17542:15;17572:10;17456:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17611:15;17604:22;;1876:7;;1691:243;1906:17;:25;;-1:-1:-1;;1906:25:0;;;1691:243;14986:45;14999:17;3311:1;14986:12;:45::i;:::-;14956:75;;15067:36;15080:19;15101:1;15067:12;:36::i;:::-;15042:61;;15135:49;15148:19;15169:14;15135:12;:49::i;:::-;15114:70;;15220:52;15233:17;15252:19;15220:12;:52::i;:::-;15195:77;;15309:33;15327:14;15309:17;:33::i;:::-;15283:59;;3507:5;15368:10;:22;15353:37;;15430:1;15412:15;:19;:82;;;;-1:-1:-1;15481:12:0;;15436:42;15449:15;15481:12;15436;:42::i;:::-;:57;15412:82;15404:91;;;;;;;;-1:-1:-1;;;;;15628:57:0;;;;;;:130;;-1:-1:-1;;;;;;15733:25:0;;15748:10;15733:25;;15628:130;15566:589;;;-1:-1:-1;;;;;15867:29:0;;;;;;:16;:29;;;;;;15854:59;;15898:14;15854:12;:59::i;:::-;-1:-1:-1;;;;;15822:29:0;;;;;;:16;:29;;;;;:91;15566:589;;;16059:40;16072:10;16084:14;16059:12;:40::i;:::-;16046:53;;3507:5;16121:10;:22;16114:29;;15566:589;16244:1;16229:12;;:16;16226:671;;;16329:43;16342:12;;16356:15;16329:12;:43::i;:::-;16314:12;:58;;;3507:5;16534:22;;:39;;;;;;;16514:15;:60;;16534:39;;;;16514:60;;;;;16757:12;;3507:5;16731:22;;:39;;;;;;;;16712:15;:59;16706:4;:66;16698:4;:75;16691:82;;16226:671;;;16855:12;:30;;;16226:671;17060:10;17040:31;;;;:19;:31;;;;;;17027:62;;17073:15;17027:12;:62::i;:::-;16993:19;:31;17013:10;-1:-1:-1;;;;;16993:31:0;-1:-1:-1;;;;;16993:31:0;;;;;;;;;;;;:96;;;;17350:4;17331:15;17313;;:33;17312:42;17277:78;;17392:15;17366:10;:22;17377:10;-1:-1:-1;;;;;17366:22:0;-1:-1:-1;;;;;17366:22:0;;;;;;;;;;;;;:41;;;;;;;;;;;17559:11;-1:-1:-1;;;;;17456:127:0;17472:10;-1:-1:-1;;;;;17456:127:0;;17484:8;;;;;;;;;-1:-1:-1;;;;;17484:8:0;-1:-1:-1;;;;;17484:25:0;;17510:10;17484:37;;;;;-1:-1:-1;;;17484:37:0;;;;;;;-1:-1:-1;;;;;17484:37:0;-1:-1:-1;;;;;17484:37:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17484:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17484:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17484:37:0;;;;;;;;;;;;;;;;17523:17;17542:15;17572:10;17456:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17611:15;17604:22;;1956:1;2185;14724:2910;;;;;;;;;;;;:::o;12082:254::-;-1:-1:-1;;;;;12287:28:0;12176:7;12287:28;;;:10;:28;;;;;;;;;12246:19;:37;;;;;;;12228:15;;3507:5;12228:55;;12219:96;;;;12208:120;;12082:254::o;3156:31::-;;;;;;;;;;;;;;;-1:-1:-1;;3156:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13622:398::-;13731:7;;;;13777:44;13790:16;3311:1;13777:12;:44::i;:::-;13756:65;;13857:42;13870:16;13888:10;13857:12;:42::i;:::-;13832:67;;13936:33;13954:14;13936:17;:33::i;:::-;13910:59;13622:398;-1:-1:-1;;;;;13622:398:0:o;4242:28::-;;;;;;;;;:::o;10679:122::-;10781:12;;10679:122;:::o;14142:414::-;14250:7;14324:17;14387:18;14456:22;14300:12;;14283:13;:29;;14275:38;;;;;;;;14344:32;14362:13;14344:17;:32::i;:::-;14324:52;-1:-1:-1;14408:37:0;14324:52;3311:1;14408:12;:37::i;:::-;14387:58;;14481:35;14494:9;14505:10;14481:12;:35::i;4199:36::-;;;;;;:::o;3230:35::-;3263:2;3230:35;:::o;7002:722::-;7104:24;7152:18;1445:1;1425:17;1437:4;1425:11;:17::i;:::-;:21;1417:30;;;;;;7131:10;7104:37;;7173:18;7185:5;7173:11;:18::i;:::-;-1:-1:-1;;;;;7284:28:0;;;;;;:10;:28;;;;;;;;:66;;3507:5;7327:22;;7284:66;;;7412:16;:34;;;;;;;;7457:38;;;;7551:37;;7398:48;;;-1:-1:-1;7284:28:0;;7551:37;;;;;7398:48;;7551:37;;7284:28;7551:37;7398:48;7284:28;7551:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;7666:8:0;;:37;;;;;;7692:10;7666:37;;;;;;-1:-1:-1;;;;;7637:79:0;;;;;;7666:8;;;:25;;:37;;;;;;;;;;;;;;;:8;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;7666:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7666:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7666:37:0;7637:79;;;;;;7666:37;7637:79;;;;;;;;;;;;;;7002:722;;:::o;4831:156::-;1532:13;;-1:-1:-1;;;;;1532:13:0;1518:10;:27;1510:36;;;;;;-1:-1:-1;;;;;4936:36:0;;;;;:20;:36;;;;;:43;;-1:-1:-1;;4936:43:0;4975:4;4936:43;;;4831:156::o;12418:538::-;12489:7;12708:17;12766:18;12841:22;12592:12;;12608:1;12592:17;12589:360;;;12632:43;;-1:-1:-1;12625:50:0;;12589:360;12728:23;12746:4;12728:17;:23::i;:::-;12708:43;-1:-1:-1;12787:39:0;12708:43;3311:1;12787:12;:39::i;:::-;12766:60;;12866:35;12879:9;12890:10;12866:12;:35::i;:::-;12841:60;;12923:14;12916:21;;12589:360;12418:538;;;;:::o;11424:310::-;11523:7;11575:10;11603:21;:122;;11696:29;11708:16;11696:11;:29::i;:::-;11603:122;;;-1:-1:-1;;;;;11659:34:0;;;;;;:16;:34;;;;;;11627:29;11676:16;11627:11;:29::i;:::-;:66;11603:122;11596:129;;11424:310;;;;;:::o;10471:137::-;10587:4;10579:21;10471:137;:::o;11822:169::-;-1:-1:-1;;;;;11946:37:0;11914:7;11946:37;;;:19;:37;;;;;;;11822:169::o;4168:24::-;;;;:::o;13039:462::-;13109:7;13253:17;13311:18;13386:22;13137:12;;13153:1;13137:17;13134:360;;;13177:43;;-1:-1:-1;13170:50:0;;13134:360;13273:23;13291:4;13273:17;:23::i;:::-;13253:43;-1:-1:-1;13332:39:0;13253:43;3311:1;13332:12;:39::i;:::-;13311:60;;13411:35;13424:9;13435:10;13411:12;:35::i;10880:182::-;10947:7;10999:10;11027:27;10999:10;11027:9;:27::i;:::-;11020:34;;10880:182;;:::o;3194:29::-;;;;;;;;;;;;;;;-1:-1:-1;;3194:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9190:1087;9312:4;9352:24;1312:1;1299:10;:8;:10::i;:::-;:14;1291:23;;;;;;-1:-1:-1;9379:10:0;9488:37;;;;:19;:37;;;;;;9469:56;;;9461:65;;;;;;9623:1;9603:17;9615:4;9603:11;:17::i;:::-;:21;9600:36;;;9626:10;:8;:10::i;:::-;-1:-1:-1;;;;;9738:37:0;;;;;;:19;:37;;;;;;9725:68;;9777:15;9725:12;:68::i;:::-;-1:-1:-1;;;;;9685:37:0;;;;;;;:19;:37;;;;;;:108;;;;9851:31;;;;;;;9838:62;;9884:15;9838:12;:62::i;:::-;-1:-1:-1;;;;;9804:31:0;;;;;;;:19;:31;;;;;;;;:96;;;;10000:15;;;9958:28;;;;;;:10;:28;;;;;:76;;10000:33;;;9958:76;;;;;;10081:15;10045:22;;;;;;;:70;;10081:33;;;10045:70;;;;;;10164:55;;;;;;;9804:31;;10164:55;;;;;;;;;;;-1:-1:-1;10265:4:0;;9190:1087;-1:-1:-1;;;9190:1087:0:o;7792:1311::-;7912:24;8036:15;8080:17;8137:18;8206:22;8539;1312:1;1299:10;:8;:10::i;:::-;:14;1291:23;;;;;;7939:10;7987:37;;;;:19;:37;;;;;;7939:10;;-1:-1:-1;7968:56:0;;;7960:65;;;;;;8054:15;8036:33;;8100:26;8118:7;8100:17;:26::i;:::-;8080:46;-1:-1:-1;8158:37:0;8080:46;3311:1;8158:12;:37::i;:::-;8137:58;;8231:35;8244:9;8255:10;8231:12;:35::i;:::-;8206:60;;8335:35;8348:12;;8362:7;8335:12;:35::i;:::-;8320:12;:50;-1:-1:-1;;;;;8434:37:0;;;;;;:19;:37;;;;;;8421:60;;8473:7;8421:12;:60::i;:::-;-1:-1:-1;;;;;8381:37:0;;;;;;:19;:37;;;;;;;;:100;;;;8574:15;;8642:10;:28;;;;;;:47;;8574:25;;;3507:5;8603:26;;8574:56;8642:47;;;;;;8764:12;;8574:56;;-1:-1:-1;;8760:194:0;;;8872:70;8885:15;;8929:12;;3507:5;8903:10;:22;8902:39;;;;;;;;8872:12;:70::i;:::-;8854:15;:88;8760:194;9032:8;;:37;;;;;;9058:10;9032:37;;;;;;-1:-1:-1;;;;;9002:93:0;;;;;;9032:8;;;:25;;:37;;;;;;;;;;;;;;;:8;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;9032:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9032:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9032:37:0;9002:93;;;;;;9032:37;9002:93;;;;;;;;;;;;;;;;;;;;7792:1311;;;;;;;:::o;5595:228::-;5697:10;5676:32;;;;:20;:32;;;;;;;;:40;;:32;:40;5668:49;;;;;;5746:69;5759:15;;5802:12;;3507:5;5777:9;:21;5776:38;;;;;;5746:69;5728:15;:87;5595:228::o;6644:285::-;6774:10;6747:24;6813:37;;;:19;:37;;;;;;;6864:11;;6861:29;;;6877:13;6882:7;6877:4;:13::i;:::-;6911:10;:8;:10::i;:::-;6644:285;;:::o;5126:162::-;5210:7;5235:45;5250:9;5261:11;5274:5;5235:14;:45::i;4648:171::-;1532:13;;-1:-1:-1;;;;;1532:13:0;1518:10;:27;1510:36;;;;;;4742:9;;:14;4734:23;;;;;;4768:9;:17;4796:8;:15;;-1:-1:-1;;4796:15:0;;;;;4648:171::o;5907:667::-;6014:18;6159:24;1445:1;1425:17;1437:4;1425:11;:17::i;:::-;:21;1417:30;;;;;;6035:18;6047:5;6035:11;:18::i;:::-;6186:10;6207:28;;;;:10;:28;;;;;;;;:66;;3507:5;6250:22;;6207:66;;;6340:16;:34;;;;;;;6385:38;;;;6326:48;;;;-1:-1:-1;6186:10:0;-1:-1:-1;6520:46:0;;6326:48;;-1:-1:-1;6520:14:0;:46::i;:::-;;5907:667;;:::o;20696:122::-;20754:7;20774:9;20790:1;20786;:5;;;;;;;;;20696:122;-1:-1:-1;;;;20696:122:0:o;20944:124::-;21002:7;21030:6;;;;21022:15;;;;;;-1:-1:-1;21055:5:0;;;20944:124::o;17930:932::-;18794:12;;18025:7;;18079:25;;18025:7;;3446:16;18186:555;18222:457;18368:52;;;18484:27;18593:1;18514:15;;18483:47;18283:248;18593:45;:58;;18283:369;18284:21;18283:369;18222:4;:457::i;:::-;18704:18;18186:12;:555::i;:::-;18167:614;;;;;;;;18152:655;;17930:932;-1:-1:-1;;;;17930:932:0:o;21143:148::-;21201:7;21233:5;;;21257:6;;;;21249:15;;;;;;21282:1;21143:148;-1:-1:-1;;;21143:148:0:o;19129:682::-;19318:12;;19222:7;;19278:4;19268:14;;;;19318:19;;;19222:7;;19398:357;19479:147;19557:17;;;3446:16;19531:44;19479:147;19452:214;;19739:1;19278:4;-1:-1:-1;;19712:10:0;;;:18;;;;19711:25;3446:16;19687:50;19686:54;;;;;;;;19398:12;:357::i;:::-;:372;;;;;;;;;19129:682;-1:-1:-1;;;;;19129:682:0:o;19879:198::-;19953:5;19962:1;19957;19953:5;;19952:11;19990:80;20001:1;19997;:5;19990:80;;;20023:1;20019:5;;20057:1;20052;20048;20044;:5;;;;;;;;:9;20043:15;;;;;;;;20039:19;;19990:80;

Swarm Source

bzzr://b5db8ec5a350d9c2e13caca5e51185638e685906bfae64536f3b6a09a6b5b482
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.