ETH Price: $2,931.00 (-2.39%)
Gas: 4 Gwei

Token

Blockchain Certified Data Token (BCDT)
 

Overview

Max Total Supply

40,835,044.388861920562640652 BCDT

Holders

1,132 (0.00%)

Total Transfers

-

Market

Price

$0.04 @ 0.000012 ETH (-12.11%)

Onchain Market Cap

$1,477,703.47

Circulating Supply Market Cap

$1,280,622.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The Blockchain Certified Data Token is the fuel of the EvidenZ ecosystem, a blockchain-powered certification technology.

Profitability / Loss

Since Initial Offer Price
:$0.06 39.69% |ETH 0.00007 82.86%

Market

Volume (24H):$35,099.00
Market Capitalization:$1,280,622.00
Circulating Supply:35,388,879.00 BCDT
Market Data Source: Coinmarketcap

ICO Information

ICO Start Date : Jan 18, 2018  
ICO End Date : Feb 16, 2018
Hard Cap : 12,500 ETH
Soft Cap : 1,800 ETH
Raised : $1,670,922
ICO Price  : 0.00007 ETH
Country : France

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BCDToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-20
*/

pragma solidity ^0.4.19;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a / b;
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }


  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/**
 * @title VestedToken
 * @dev The VestedToken contract implements ERC20 standard basics function and 
 * - vesting for an address
 * - token tradability delay
 */
contract VestedToken {
    using SafeMath for uint256;
    
    // Vested wallet address
    address public vestedAddress;
    // Vesting time
    uint private constant VESTING_DELAY = 1 years;  
    // Token will be tradable TOKEN_TRADABLE_DELAY after 
    uint private constant TOKEN_TRADABLE_DELAY = 12 days;

    // True if aside tokens have already been minted after second round
    bool public asideTokensHaveBeenMinted = false;
    // When aside tokens have been minted ?
    uint public asideTokensMintDate;

    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;
    
    modifier transferAllowed { require(asideTokensHaveBeenMinted && now > asideTokensMintDate + TOKEN_TRADABLE_DELAY); _; }
    
    // Get the balance from an address
    function balanceOf(address _owner) public constant returns (uint256) { return balances[_owner]; }  

    // transfer ERC20 function
    function transfer(address _to, uint256 _value) transferAllowed public returns (bool success) {
        require(_to != 0x0);
        
        // founders wallets is blocked 1 year
        if (msg.sender == vestedAddress && (now < (asideTokensMintDate + VESTING_DELAY))) { revert(); }

        return privateTransfer(_to, _value);
    }

    // transferFrom ERC20 function
    function transferFrom(address _from, address _to, uint256 _value) transferAllowed public returns (bool success) {
        require(_from != 0x0);
        require(_to != 0x0);
        
        // founders wallet is blocked 1 year
        if (_from == vestedAddress && (now < (asideTokensMintDate + VESTING_DELAY))) { revert(); }

        uint256 _allowance = allowed[_from][msg.sender];
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        Transfer(_from, _to, _value);
        
        return true;
    }

    // approve ERC20 function
    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        
        return true;
    }

    // allowance ERC20 function
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
    function privateTransfer (address _to, uint256 _value) private returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }
    
    // Events ERC20
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

/**
 * @title WhitelistsRegistration
 * @dev This is an extension to add 2 levels whitelists to the crowdsale
 */
contract WhitelistsRegistration is Ownable {
    // List of whitelisted addresses for KYC under 10 ETH
    mapping(address => bool) silverWhiteList;
    
    // List of whitelisted addresses for KYC over 10 ETH
    mapping(address => bool) goldWhiteList;
    
    // Different stage from the ICO
    enum WhiteListState {
        // This address is not whitelisted
        None,
        // this address is on the silver whitelist
        Silver,
        // this address is on the gold whitelist
        Gold
    }
    
    address public whiteLister;

    event SilverWhitelist(address indexed _address, bool _isRegistered);
    event GoldWhitelist(address indexed _address, bool _isRegistered);  
    event SetWhitelister(address indexed newWhiteLister);
    
    /**
    * @dev Throws if called by any account other than the owner or the whitelister.
    */
    modifier onlyOwnerOrWhiteLister() {
        require((msg.sender == owner) || (msg.sender == whiteLister));
    _;
    }
    
    // Return registration status of an specified address
    function checkRegistrationStatus(address _address) public constant returns (WhiteListState) {
        if (goldWhiteList[_address]) { return WhiteListState.Gold; }
        if (silverWhiteList[_address]) { return WhiteListState.Silver; }
        return WhiteListState.None;
    }
    
    // Change registration status for an address in the whitelist for KYC under 10 ETH
    function changeRegistrationStatusForSilverWhiteList(address _address, bool _isRegistered) public onlyOwnerOrWhiteLister {
        silverWhiteList[_address] = _isRegistered;
        SilverWhitelist(_address, _isRegistered);
    }
    
    // Change registration status for an address in the whitelist for KYC over 10 ETH
    function changeRegistrationStatusForGoldWhiteList(address _address, bool _isRegistered) public onlyOwnerOrWhiteLister {
        goldWhiteList[_address] = _isRegistered;
        GoldWhitelist(_address, _isRegistered);
    }
    
    // Change registration status for several addresses in the whitelist for KYC under 10 ETH
    function massChangeRegistrationStatusForSilverWhiteList(address[] _targets, bool _isRegistered) public onlyOwnerOrWhiteLister {
        for (uint i = 0; i < _targets.length; i++) {
            changeRegistrationStatusForSilverWhiteList(_targets[i], _isRegistered);
        }
    } 
    
    // Change registration status for several addresses in the whitelist for KYC over 10 ETH
    function massChangeRegistrationStatusForGoldWhiteList(address[] _targets, bool _isRegistered) public onlyOwnerOrWhiteLister {
        for (uint i = 0; i < _targets.length; i++) {
            changeRegistrationStatusForGoldWhiteList(_targets[i], _isRegistered);
        }
    }
    
    /**
    * @dev Allows the current owner or whiteLister to transfer control of the whitelist to a newWhitelister.
    * @param _newWhiteLister The address to transfer whitelist to.
    */
    function setWhitelister(address _newWhiteLister) public onlyOwnerOrWhiteLister {
      require(_newWhiteLister != address(0));
      SetWhitelister(_newWhiteLister);
      whiteLister = _newWhiteLister;
    }
}

/**
 * @title BCDToken
 * @dev The BCDT crowdsale
 */
contract BCDToken is VestedToken, WhitelistsRegistration {
    
    string public constant name = "Blockchain Certified Data Token";
    string public constant symbol = "BCDT";
    uint public constant decimals = 18;

    // Maximum contribution in ETH for silver whitelist 
    uint private constant MAX_ETHER_FOR_SILVER_WHITELIST = 10 ether;
    
    // ETH/BCDT rate
    uint public rateETH_BCDT = 13000;

    // Soft cap, if not reached contributors can withdraw their ethers
    uint public softCap = 1800 ether;

    // Cap in ether of presale
    uint public presaleCap = 1800 ether;
    
    // Cap in ether of Round 1 (presale cap + 1800 ETH)
    uint public round1Cap = 3600 ether;    
    
    // BCD Reserve/Community Wallets
    address public reserveAddress;
    address public communityAddress;

    // Different stage from the ICO
    enum State {
        // ICO isn't started yet, initial state
        Init,
        // Presale has started
        PresaleRunning,
        // Presale has ended
        PresaleFinished,
        // Round 1 has started
        Round1Running,
        // Round 1 has ended
        Round1Finished,
        // Round 2 has started
        Round2Running,
        // Round 2 has ended
        Round2Finished
    }
    
    // Initial state is Init
    State public currentState = State.Init;
    
    // BCDT total supply
    uint256 public totalSupply = MAX_TOTAL_BCDT_TO_SELL;

    // How much tokens have been sold
    uint256 public tokensSold;
    
    // Amount of ETH raised during ICO
    uint256 private etherRaisedDuringICO;
    
    // Maximum total of BCDT Token sold during ITS
    uint private constant MAX_TOTAL_BCDT_TO_SELL = 100000000 * 1 ether;

    // Token allocation per mille for reserve/community/founders
    uint private constant RESERVE_ALLOCATION_PER_MILLE_RATIO =  200;
    uint private constant COMMUNITY_ALLOCATION_PER_MILLE_RATIO =  103;
    uint private constant FOUNDERS_ALLOCATION_PER_MILLE_RATIO =  30;
    
    // List of contributors/contribution in ETH
    mapping(address => uint256) contributors;

    // Use to allow function call only if currentState is the one specified
    modifier inStateInit()
    {
        require(currentState == State.Init); 
        _; 
    }
	
    modifier inStateRound2Finished()
    {
        require(currentState == State.Round2Finished); 
        _; 
    }
    
    // Event call when aside tokens are minted
    event AsideTokensHaveBeenAllocated(address indexed to, uint256 amount);
    // Event call when a contributor withdraw his ethers
    event Withdraw(address indexed to, uint256 amount);
    // Event call when ICO state change
    event StateChanged(uint256 timestamp, State currentState);

    // Constructor
    function BCDToken() public {
    }

    function() public payable {
        require(currentState == State.PresaleRunning || currentState == State.Round1Running || currentState == State.Round2Running);

        // min transaction is 0.1 ETH
        if (msg.value < 100 finney) { revert(); }

        // If you're not in any whitelist, you cannot continue
        if (!silverWhiteList[msg.sender] && !goldWhiteList[msg.sender]) {
            revert();
        }

        // ETH sent by contributor
        uint256 ethSent = msg.value;
        
        // how much ETH will be used for contribution
        uint256 ethToUse = ethSent;

        // Address is only in the silver whitelist: contribution is capped
        if (!goldWhiteList[msg.sender]) {
            // Check if address has already contributed for maximum allowance
            if (contributors[msg.sender] >= MAX_ETHER_FOR_SILVER_WHITELIST) {
                revert();
            }
            // limit the total contribution to MAX_ETHER_FOR_SILVER_WHITELIST
            if (contributors[msg.sender].add(ethToUse) > MAX_ETHER_FOR_SILVER_WHITELIST) {
                ethToUse = MAX_ETHER_FOR_SILVER_WHITELIST.sub(contributors[msg.sender]);
            }
        }
        
         // Calculate how much ETH are available for this stage
        uint256 ethAvailable = getRemainingEthersForCurrentRound();
        uint rate = getBCDTRateForCurrentRound();

        // If cap of the round has been reached
        if (ethAvailable <= ethToUse) {
            // End the round
            privateSetState(getEndedStateForCurrentRound());
            // Only available ethers will be used to reach the cap
            ethToUse = ethAvailable;
        }
        
        // Calculate token amount to send in accordance to rate
        uint256 tokenToSend = ethToUse.mul(rate);
        
        // Amount of tokens sold to the current contributors is added to total sold
        tokensSold = tokensSold.add(tokenToSend);
        // Amount of ethers used for the current contribution is added the total raised
        etherRaisedDuringICO = etherRaisedDuringICO.add(ethToUse);
        // Token balance updated for current contributor
        balances[msg.sender] = balances[msg.sender].add(tokenToSend);
        // Contribution is stored for an potential withdraw
        contributors[msg.sender] = contributors[msg.sender].add(ethToUse);
        
        // Send back the unused ethers        
        if (ethToUse < ethSent) {
            msg.sender.transfer(ethSent.sub(ethToUse));
        }
        // Log token transfer operation
        Transfer(0x0, msg.sender, tokenToSend); 
    }

    // Allow contributors to withdraw after the end of the ICO if the softcap hasn't been reached
    function withdraw() public inStateRound2Finished {
        // Only contributors with positive ETH balance could Withdraw
        if(contributors[msg.sender] == 0) { revert(); }
        
        // Withdraw is possible only if softcap has not been reached
        require(etherRaisedDuringICO < softCap);
        
        // Get how much ethers sender has contribute
        uint256 ethToSendBack = contributors[msg.sender];
        
        // Set contribution to 0 for the contributor
        contributors[msg.sender] = 0;
        
        // Send back ethers
        msg.sender.transfer(ethToSendBack);
        
        // Log withdraw operation
        Withdraw(msg.sender, ethToSendBack);
    }

    // At the end of the sale, mint the aside tokens for the reserve, community and founders
    function mintAsideTokens() public onlyOwner inStateRound2Finished {

        // Reserve, community and founders address have to be set before mint aside tokens
        require((reserveAddress != 0x0) && (communityAddress != 0x0) && (vestedAddress != 0x0));

        // Aside tokens can be minted only if softcap is reached
        require(this.balance >= softCap);

        // Revert if aside tokens have already been minted 
        if (asideTokensHaveBeenMinted) { revert(); }

        // Set minted flag and date
        asideTokensHaveBeenMinted = true;
        asideTokensMintDate = now;

        // If 100M sold, 50M more have to be mint (15 / 10 = * 1.5 = +50%)
        totalSupply = tokensSold.mul(15).div(10);

        // 20% of total supply is allocated to reserve
        uint256 _amountMinted = setAllocation(reserveAddress, RESERVE_ALLOCATION_PER_MILLE_RATIO);

        // 10.3% of total supply is allocated to community
        _amountMinted = _amountMinted.add(setAllocation(communityAddress, COMMUNITY_ALLOCATION_PER_MILLE_RATIO));

        // 3% of total supply is allocated to founders
        _amountMinted = _amountMinted.add(setAllocation(vestedAddress, FOUNDERS_ALLOCATION_PER_MILLE_RATIO));
        
        // the allocation is only 33.3%*150/100 = 49.95% of the token solds. It is therefore slightly higher than it should.
        // to avoid that, we correct the real total number of tokens
        totalSupply = tokensSold.add(_amountMinted);
        // Send the eth to the owner of the contract
        owner.transfer(this.balance);
    }
    
    function setTokenAsideAddresses(address _reserveAddress, address _communityAddress, address _founderAddress) public onlyOwner {
        require(_reserveAddress != 0x0 && _communityAddress != 0x0 && _founderAddress != 0x0);

        // Revert when aside tokens have already been minted 
        if (asideTokensHaveBeenMinted) { revert(); }

        reserveAddress = _reserveAddress;
        communityAddress = _communityAddress;
        vestedAddress = _founderAddress;
    }
    
    function updateCapsAndRate(uint _presaleCapInETH, uint _round1CapInETH, uint _softCapInETH, uint _rateETH_BCDT) public onlyOwner inStateInit {
            
        // Caps and rate are updatable until ICO starts
        require(_round1CapInETH > _presaleCapInETH);
        require(_rateETH_BCDT != 0);
        
        presaleCap = _presaleCapInETH * 1 ether;
        round1Cap = _round1CapInETH * 1 ether;
        softCap = _softCapInETH * 1 ether;
        rateETH_BCDT = _rateETH_BCDT;
    }
    
    function getRemainingEthersForCurrentRound() public constant returns (uint) {
        require(currentState != State.Init); 
        require(!asideTokensHaveBeenMinted);
        
        if((currentState == State.PresaleRunning) || (currentState == State.PresaleFinished)) {
            // Presale cap is fixed in ETH
            return presaleCap.sub(etherRaisedDuringICO);
        }
        if((currentState == State.Round1Running) || (currentState == State.Round1Finished)) {
            // Round 1 cap is fixed in ETH
            return round1Cap.sub(etherRaisedDuringICO);
        }
        if((currentState == State.Round2Running) || (currentState == State.Round2Finished)) {
            // Round 2 cap is limited in tokens, 
            uint256 remainingTokens = totalSupply.sub(tokensSold);
            // ETH available is calculated from the number of remaining tokens regarding the rate
            return remainingTokens.div(rateETH_BCDT);
        }        
    }   

    function getBCDTRateForCurrentRound() public constant returns (uint) {
        require(currentState == State.PresaleRunning || currentState == State.Round1Running || currentState == State.Round2Running);              
        
        // ETH/BCDT rate during presale: 20% bonus
        if(currentState == State.PresaleRunning) {
            return rateETH_BCDT + rateETH_BCDT * 20 / 100;
        }
        // ETH/BCDT rate during presale: 10% bonus
        if(currentState == State.Round1Running) {
            return rateETH_BCDT + rateETH_BCDT * 10 / 100;
        }
        if(currentState == State.Round2Running) {
            return rateETH_BCDT;
        }        
    }  

    function setState(State _newState) public onlyOwner {
        privateSetState(_newState);
    }
    
    function privateSetState(State _newState) private {
        // no way to go back    
        if(_newState <= currentState) { revert(); }
        
        currentState = _newState;
        StateChanged(now, currentState);
    }
    
    
    function getEndedStateForCurrentRound() private constant returns (State) {
        require(currentState == State.PresaleRunning || currentState == State.Round1Running || currentState == State.Round2Running);
        
        if(currentState == State.PresaleRunning) {
            return State.PresaleFinished;
        }
        if(currentState == State.Round1Running) {
            return State.Round1Finished;
        }
        if(currentState == State.Round2Running) {
            return State.Round2Finished;
        }        
    }   

    function setAllocation(address _to, uint _ratio) private onlyOwner returns (uint256) {
        // Aside token is a percentage of totalSupply
        uint256 tokenAmountToTransfert = totalSupply.mul(_ratio).div(1000);
        balances[_to] = balances[_to].add(tokenAmountToTransfert);
        AsideTokensHaveBeenAllocated(_to, tokenAmountToTransfert);
        Transfer(0x0, _to, tokenAmountToTransfert);
        return tokenAmountToTransfert;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mintAsideTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRemainingEthersForCurrentRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rateETH_BCDT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_presaleCapInETH","type":"uint256"},{"name":"_round1CapInETH","type":"uint256"},{"name":"_softCapInETH","type":"uint256"},{"name":"_rateETH_BCDT","type":"uint256"}],"name":"updateCapsAndRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newState","type":"uint8"}],"name":"setState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"presaleCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"checkRegistrationStatus","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"asideTokensHaveBeenMinted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"communityAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"softCap","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":"_reserveAddress","type":"address"},{"name":"_communityAddress","type":"address"},{"name":"_founderAddress","type":"address"}],"name":"setTokenAsideAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"asideTokensMintDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_isRegistered","type":"bool"}],"name":"changeRegistrationStatusForGoldWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"},{"name":"_isRegistered","type":"bool"}],"name":"massChangeRegistrationStatusForGoldWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"round1Cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"vestedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whiteLister","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_targets","type":"address[]"},{"name":"_isRegistered","type":"bool"}],"name":"massChangeRegistrationStatusForSilverWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"reserveAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_isRegistered","type":"bool"}],"name":"changeRegistrationStatusForSilverWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newWhiteLister","type":"address"}],"name":"setWhitelister","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBCDTRateForCurrentRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AsideTokensHaveBeenAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"currentState","type":"uint8"}],"name":"StateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_isRegistered","type":"bool"}],"name":"SilverWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_isRegistered","type":"bool"}],"name":"GoldWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newWhiteLister","type":"address"}],"name":"SetWhitelister","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526000805460a060020a60ff02199081169091556132c8600855686194049f30f72000006009819055600a5568c328093e61ee400000600b55600d805490911690556a52b7d2dcc80cd2e4000000600e55341561005f57600080fd5b60048054600160a060020a03191633600160a060020a0316179055611b50806100896000396000f3006060604052600436106101c15763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146104b8578063095ea7b3146105425780630c3f6acf1461057857806318160ddd146105af578063197ea97e146105d457806323b872dd146105e9578063285c51c314610611578063313ce567146106245780633ccfd60b146106375780633ecf965f1461064a57806348509d2c1461065d578063518ab2a81461067c57806356de96db1461068f57806363d5502f146106a85780636a739c44146106bb57806370a08231146106ea5780638343e4161461070957806386e476dd1461071c5780638da5cb5b1461074b578063906a26e01461075e57806395d89b411461077157806396ff448314610784578063a9059cbb146107af578063b412a4b7146107d1578063c0c77b71146107e4578063ceaae25d14610808578063d87ce0371461085b578063db1717541461086e578063dd62ed3e14610881578063ef26e41d146108a6578063f2fde38b146108b9578063f6f82ecb146108d8578063f79ed94b1461092b578063f8f9271c1461093e578063f98f5b9214610962578063ffe48c7614610981575b6000808080806001600d5460a060020a900460ff1660068111156101e157fe5b148061020457506003600d5460a060020a900460ff16600681111561020257fe5b145b8061022657506005600d5460a060020a900460ff16600681111561022457fe5b145b151561023157600080fd5b67016345785d8a000034101561024657600080fd5b600160a060020a03331660009081526005602052604090205460ff161580156102885750600160a060020a03331660009081526006602052604090205460ff16155b1561029257600080fd5b600160a060020a03331660009081526006602052604090205434955085945060ff16151561035557600160a060020a033316600090815260116020526040902054678ac7230489e8000090106102e757600080fd5b600160a060020a033316600090815260116020526040902054678ac7230489e800009061031a908663ffffffff61099416565b111561035557600160a060020a03331660009081526011602052604090205461035290678ac7230489e800009063ffffffff6109ae16565b93505b61035d6109c0565b9250610367610b25565b91508383116103845761038061037b610c1d565b610d01565b8293505b610394848363ffffffff610dc216565b600f549091506103aa908263ffffffff61099416565b600f556010546103c0908563ffffffff61099416565b601055600160a060020a0333166000908152600260205260409020546103ec908263ffffffff61099416565b600160a060020a033316600090815260026020908152604080832093909355601190522054610421908563ffffffff61099416565b600160a060020a0333166000908152601160205260409020558484101561048457600160a060020a0333166108fc61045f878763ffffffff6109ae16565b9081150290604051600060405180830381858888f19350505050151561048457600080fd5b33600160a060020a03166000600080516020611b058339815191528360405190815260200160405180910390a35050505050005b34156104c357600080fd5b6104cb610ded565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156105075780820151838201526020016104ef565b50505050905090810190601f1680156105345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561054d57600080fd5b610564600160a060020a0360043516602435610e24565b604051901515815260200160405180910390f35b341561058357600080fd5b61058b610e90565b6040518082600681111561059b57fe5b60ff16815260200191505060405180910390f35b34156105ba57600080fd5b6105c2610ea0565b60405190815260200160405180910390f35b34156105df57600080fd5b6105e7610ea6565b005b34156105f457600080fd5b610564600160a060020a0360043581169060243516604435611063565b341561061c57600080fd5b6105c26109c0565b341561062f57600080fd5b6105c26111e8565b341561064257600080fd5b6105e76111ed565b341561065557600080fd5b6105c26112d0565b341561066857600080fd5b6105e76004356024356044356064356112d6565b341561068757600080fd5b6105c261134d565b341561069a57600080fd5b6105e760ff60043516611353565b34156106b357600080fd5b6105c2611377565b34156106c657600080fd5b6106da600160a060020a036004351661137d565b6040518082600281111561059b57fe5b34156106f557600080fd5b6105c2600160a060020a03600435166113d8565b341561071457600080fd5b6105646113f3565b341561072757600080fd5b61072f611403565b604051600160a060020a03909116815260200160405180910390f35b341561075657600080fd5b61072f611412565b341561076957600080fd5b6105c2611421565b341561077c57600080fd5b6104cb611427565b341561078f57600080fd5b6105e7600160a060020a036004358116906024358116906044351661145e565b34156107ba57600080fd5b610564600160a060020a036004351660243561151b565b34156107dc57600080fd5b6105c261159b565b34156107ef57600080fd5b6105e7600160a060020a036004351660243515156115a1565b341561081357600080fd5b6105e760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505050509135151591506116369050565b341561086657600080fd5b6105c26116a8565b341561087957600080fd5b61072f6116ae565b341561088c57600080fd5b6105c2600160a060020a03600435811690602435166116bd565b34156108b157600080fd5b61072f6116e8565b34156108c457600080fd5b6105e7600160a060020a03600435166116f7565b34156108e357600080fd5b6105e760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505050509135151591506117929050565b341561093657600080fd5b61072f6117ff565b341561094957600080fd5b6105e7600160a060020a0360043516602435151561180e565b341561096d57600080fd5b6105e7600160a060020a03600435166118a3565b341561098c57600080fd5b6105c2610b25565b6000828201838110156109a357fe5b8091505b5092915050565b6000828211156109ba57fe5b50900390565b60008080600d5460a060020a900460ff1660068111156109dc57fe5b14156109e757600080fd5b60005460a060020a900460ff16156109fe57600080fd5b6001600d5460a060020a900460ff166006811115610a1857fe5b1480610a3b57506002600d5460a060020a900460ff166006811115610a3957fe5b145b15610a5c57601054600a54610a559163ffffffff6109ae16565b9150610b21565b6003600d5460a060020a900460ff166006811115610a7657fe5b1480610a9957506004600d5460a060020a900460ff166006811115610a9757fe5b145b15610ab357601054600b54610a559163ffffffff6109ae16565b6005600d5460a060020a900460ff166006811115610acd57fe5b1480610af057506006600d5460a060020a900460ff166006811115610aee57fe5b145b15610b2157600f54600e54610b0a9163ffffffff6109ae16565b9050610a556008548261195390919063ffffffff16565b5090565b60006001600d5460a060020a900460ff166006811115610b4157fe5b1480610b6457506003600d5460a060020a900460ff166006811115610b6257fe5b145b80610b8657506005600d5460a060020a900460ff166006811115610b8457fe5b145b1515610b9157600080fd5b6001600d5460a060020a900460ff166006811115610bab57fe5b1415610bc7576008546064906014025b04600854019050610c1a565b6003600d5460a060020a900460ff166006811115610be157fe5b1415610bf557600854606490600a02610bbb565b6005600d5460a060020a900460ff166006811115610c0f57fe5b1415610c1a57506008545b90565b60006001600d5460a060020a900460ff166006811115610c3957fe5b1480610c5c57506003600d5460a060020a900460ff166006811115610c5a57fe5b145b80610c7e57506005600d5460a060020a900460ff166006811115610c7c57fe5b145b1515610c8957600080fd5b6001600d5460a060020a900460ff166006811115610ca357fe5b1415610cb157506002610c1a565b6003600d5460a060020a900460ff166006811115610ccb57fe5b1415610cd957506004610c1a565b6005600d5460a060020a900460ff166006811115610cf357fe5b1415610c1a57506006610c1a565b600d5460a060020a900460ff166006811115610d1957fe5b816006811115610d2557fe5b11610d2f57600080fd5b600d805482919074ff0000000000000000000000000000000000000000191660a060020a836006811115610d5f57fe5b0217905550600d547ffafe884515ca1fa5e0bf815ce87ef00b2cdaa0eee590d20376604937937a10bf90429060a060020a900460ff1660405180838152602001826006811115610dab57fe5b60ff1681526020019250505060405180910390a150565b600080831515610dd557600091506109a7565b50828202828482811515610de557fe5b04146109a357fe5b60408051908101604052601f81527f426c6f636b636861696e20436572746966696564204461746120546f6b656e00602082015281565b600160a060020a03338116600081815260036020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600d5460a060020a900460ff1681565b600e5481565b60045460009033600160a060020a03908116911614610ec457600080fd5b6006600d5460a060020a900460ff166006811115610ede57fe5b14610ee857600080fd5b600c54600160a060020a031615801590610f0c5750600d54600160a060020a031615155b8015610f225750600054600160a060020a031615155b1515610f2d57600080fd5b600954600160a060020a033016311015610f4657600080fd5b60005460a060020a900460ff1615610f5d57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a17905542600155600f8054610fab91600a91610f9f9163ffffffff610dc216565b9063ffffffff61195316565b600e55600c54610fc590600160a060020a031660c861196a565b600d54909150610ff090610fe390600160a060020a0316606761196a565b829063ffffffff61099416565b60005490915061100e90610fe390600160a060020a0316601e61196a565b600f54909150611024908263ffffffff61099416565b600e55600454600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561106057600080fd5b50565b60008054819060a060020a900460ff1680156110855750620fd2006001540142115b151561109057600080fd5b600160a060020a03851615156110a557600080fd5b600160a060020a03841615156110ba57600080fd5b600054600160a060020a0386811691161480156110de57506301e133806001540142105b156110e857600080fd5b50600160a060020a0380851660008181526003602090815260408083203390951683529381528382205492825260029052919091205461112e908463ffffffff6109ae16565b600160a060020a038087166000908152600260205260408082209390935590861681522054611163908463ffffffff61099416565b600160a060020a03851660009081526002602052604090205561118c818463ffffffff6109ae16565b600160a060020a0380871660008181526003602090815260408083203386168452909152908190209390935590861691600080516020611b058339815191529086905190815260200160405180910390a3506001949350505050565b601281565b60006006600d5460a060020a900460ff16600681111561120957fe5b1461121357600080fd5b600160a060020a033316600090815260116020526040902054151561123757600080fd5b6009546010541061124757600080fd5b50600160a060020a033316600081815260116020526040808220805492905590919082156108fc0290839051600060405180830381858888f19350505050151561129057600080fd5b33600160a060020a03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405190815260200160405180910390a250565b60085481565b60045433600160a060020a039081169116146112f157600080fd5b6000600d5460a060020a900460ff16600681111561130b57fe5b1461131557600080fd5b83831161132157600080fd5b80151561132d57600080fd5b670de0b6b3a7640000938402600a55918302600b55909102600955600855565b600f5481565b60045433600160a060020a0390811691161461136e57600080fd5b61106081610d01565b600a5481565b600160a060020a03811660009081526006602052604081205460ff16156113a6575060026113d3565b600160a060020a03821660009081526005602052604090205460ff16156113cf575060016113d3565b5060005b919050565b600160a060020a031660009081526002602052604090205490565b60005460a060020a900460ff1681565b600d54600160a060020a031681565b600454600160a060020a031681565b60095481565b60408051908101604052600481527f4243445400000000000000000000000000000000000000000000000000000000602082015281565b60045433600160a060020a0390811691161461147957600080fd5b600160a060020a038316158015906114995750600160a060020a03821615155b80156114ad5750600160a060020a03811615155b15156114b857600080fd5b60005460a060020a900460ff16156114cf57600080fd5b600c8054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600d80549385169382169390931790925560008054919093169116179055565b6000805460a060020a900460ff16801561153b5750620fd2006001540142115b151561154657600080fd5b600160a060020a038316151561155b57600080fd5b60005433600160a060020a03908116911614801561158057506301e133806001540142105b1561158a57600080fd5b6115948383611a57565b9392505050565b60015481565b60045433600160a060020a03908116911614806115cc575060075433600160a060020a039081169116145b15156115d757600080fd5b600160a060020a03821660008181526006602052604090819020805460ff19168415151790557f5ec4eb956a9d026183b9d8f62cd6f4cecaec5a15263829771f1d207006cf203990839051901515815260200160405180910390a25050565b60045460009033600160a060020a0390811691161480611664575060075433600160a060020a039081169116145b151561166f57600080fd5b5060005b82518110156116a35761169b83828151811061168b57fe5b90602001906020020151836115a1565b600101611673565b505050565b600b5481565b600054600160a060020a031681565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600754600160a060020a031681565b60045433600160a060020a0390811691161461171257600080fd5b600160a060020a038116151561172757600080fd5b600454600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045460009033600160a060020a03908116911614806117c0575060075433600160a060020a039081169116145b15156117cb57600080fd5b5060005b82518110156116a3576117f78382815181106117e757fe5b906020019060200201518361180e565b6001016117cf565b600c54600160a060020a031681565b60045433600160a060020a0390811691161480611839575060075433600160a060020a039081169116145b151561184457600080fd5b600160a060020a03821660008181526005602052604090819020805460ff19168415151790557f08447c9fc1b08eadda3c6e0ec44794ed0e4dbdcc4df5b5588a2a2768ac458b2290839051901515815260200160405180910390a25050565b60045433600160a060020a03908116911614806118ce575060075433600160a060020a039081169116145b15156118d957600080fd5b600160a060020a03811615156118ee57600080fd5b80600160a060020a03167f0ca44eaf19ec8e07aaa42c7f82892b8ff7de9faf7b420a750585730a0b0b387860405160405180910390a26007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080828481151561196157fe5b04949350505050565b600454600090819033600160a060020a0390811691161461198a57600080fd5b6119a56103e8610f9f85600e54610dc290919063ffffffff16565b600160a060020a0385166000908152600260205260409020549091506119d1908263ffffffff61099416565b600160a060020a0385166000818152600260205260409081902092909255907fd2b5c2272580d3b01d5cf4d851350bba9cd8483bbdebbeef50c647c11d8f08939083905190815260200160405180910390a283600160a060020a03166000600080516020611b058339815191528360405190815260200160405180910390a39392505050565b600160a060020a033316600090815260026020526040812054611a80908363ffffffff6109ae16565b600160a060020a033381166000908152600260205260408082209390935590851681522054611ab5908363ffffffff61099416565b600160a060020a038085166000818152600260205260409081902093909355913390911690600080516020611b058339815191529085905190815260200160405180910390a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206084ab8464bccc3e3b2a5a94680df1aa89bb0c7328342ab3a10f136df3b92dff0029

Deployed Bytecode

0x6060604052600436106101c15763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146104b8578063095ea7b3146105425780630c3f6acf1461057857806318160ddd146105af578063197ea97e146105d457806323b872dd146105e9578063285c51c314610611578063313ce567146106245780633ccfd60b146106375780633ecf965f1461064a57806348509d2c1461065d578063518ab2a81461067c57806356de96db1461068f57806363d5502f146106a85780636a739c44146106bb57806370a08231146106ea5780638343e4161461070957806386e476dd1461071c5780638da5cb5b1461074b578063906a26e01461075e57806395d89b411461077157806396ff448314610784578063a9059cbb146107af578063b412a4b7146107d1578063c0c77b71146107e4578063ceaae25d14610808578063d87ce0371461085b578063db1717541461086e578063dd62ed3e14610881578063ef26e41d146108a6578063f2fde38b146108b9578063f6f82ecb146108d8578063f79ed94b1461092b578063f8f9271c1461093e578063f98f5b9214610962578063ffe48c7614610981575b6000808080806001600d5460a060020a900460ff1660068111156101e157fe5b148061020457506003600d5460a060020a900460ff16600681111561020257fe5b145b8061022657506005600d5460a060020a900460ff16600681111561022457fe5b145b151561023157600080fd5b67016345785d8a000034101561024657600080fd5b600160a060020a03331660009081526005602052604090205460ff161580156102885750600160a060020a03331660009081526006602052604090205460ff16155b1561029257600080fd5b600160a060020a03331660009081526006602052604090205434955085945060ff16151561035557600160a060020a033316600090815260116020526040902054678ac7230489e8000090106102e757600080fd5b600160a060020a033316600090815260116020526040902054678ac7230489e800009061031a908663ffffffff61099416565b111561035557600160a060020a03331660009081526011602052604090205461035290678ac7230489e800009063ffffffff6109ae16565b93505b61035d6109c0565b9250610367610b25565b91508383116103845761038061037b610c1d565b610d01565b8293505b610394848363ffffffff610dc216565b600f549091506103aa908263ffffffff61099416565b600f556010546103c0908563ffffffff61099416565b601055600160a060020a0333166000908152600260205260409020546103ec908263ffffffff61099416565b600160a060020a033316600090815260026020908152604080832093909355601190522054610421908563ffffffff61099416565b600160a060020a0333166000908152601160205260409020558484101561048457600160a060020a0333166108fc61045f878763ffffffff6109ae16565b9081150290604051600060405180830381858888f19350505050151561048457600080fd5b33600160a060020a03166000600080516020611b058339815191528360405190815260200160405180910390a35050505050005b34156104c357600080fd5b6104cb610ded565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156105075780820151838201526020016104ef565b50505050905090810190601f1680156105345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561054d57600080fd5b610564600160a060020a0360043516602435610e24565b604051901515815260200160405180910390f35b341561058357600080fd5b61058b610e90565b6040518082600681111561059b57fe5b60ff16815260200191505060405180910390f35b34156105ba57600080fd5b6105c2610ea0565b60405190815260200160405180910390f35b34156105df57600080fd5b6105e7610ea6565b005b34156105f457600080fd5b610564600160a060020a0360043581169060243516604435611063565b341561061c57600080fd5b6105c26109c0565b341561062f57600080fd5b6105c26111e8565b341561064257600080fd5b6105e76111ed565b341561065557600080fd5b6105c26112d0565b341561066857600080fd5b6105e76004356024356044356064356112d6565b341561068757600080fd5b6105c261134d565b341561069a57600080fd5b6105e760ff60043516611353565b34156106b357600080fd5b6105c2611377565b34156106c657600080fd5b6106da600160a060020a036004351661137d565b6040518082600281111561059b57fe5b34156106f557600080fd5b6105c2600160a060020a03600435166113d8565b341561071457600080fd5b6105646113f3565b341561072757600080fd5b61072f611403565b604051600160a060020a03909116815260200160405180910390f35b341561075657600080fd5b61072f611412565b341561076957600080fd5b6105c2611421565b341561077c57600080fd5b6104cb611427565b341561078f57600080fd5b6105e7600160a060020a036004358116906024358116906044351661145e565b34156107ba57600080fd5b610564600160a060020a036004351660243561151b565b34156107dc57600080fd5b6105c261159b565b34156107ef57600080fd5b6105e7600160a060020a036004351660243515156115a1565b341561081357600080fd5b6105e760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505050509135151591506116369050565b341561086657600080fd5b6105c26116a8565b341561087957600080fd5b61072f6116ae565b341561088c57600080fd5b6105c2600160a060020a03600435811690602435166116bd565b34156108b157600080fd5b61072f6116e8565b34156108c457600080fd5b6105e7600160a060020a03600435166116f7565b34156108e357600080fd5b6105e760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505050509135151591506117929050565b341561093657600080fd5b61072f6117ff565b341561094957600080fd5b6105e7600160a060020a0360043516602435151561180e565b341561096d57600080fd5b6105e7600160a060020a03600435166118a3565b341561098c57600080fd5b6105c2610b25565b6000828201838110156109a357fe5b8091505b5092915050565b6000828211156109ba57fe5b50900390565b60008080600d5460a060020a900460ff1660068111156109dc57fe5b14156109e757600080fd5b60005460a060020a900460ff16156109fe57600080fd5b6001600d5460a060020a900460ff166006811115610a1857fe5b1480610a3b57506002600d5460a060020a900460ff166006811115610a3957fe5b145b15610a5c57601054600a54610a559163ffffffff6109ae16565b9150610b21565b6003600d5460a060020a900460ff166006811115610a7657fe5b1480610a9957506004600d5460a060020a900460ff166006811115610a9757fe5b145b15610ab357601054600b54610a559163ffffffff6109ae16565b6005600d5460a060020a900460ff166006811115610acd57fe5b1480610af057506006600d5460a060020a900460ff166006811115610aee57fe5b145b15610b2157600f54600e54610b0a9163ffffffff6109ae16565b9050610a556008548261195390919063ffffffff16565b5090565b60006001600d5460a060020a900460ff166006811115610b4157fe5b1480610b6457506003600d5460a060020a900460ff166006811115610b6257fe5b145b80610b8657506005600d5460a060020a900460ff166006811115610b8457fe5b145b1515610b9157600080fd5b6001600d5460a060020a900460ff166006811115610bab57fe5b1415610bc7576008546064906014025b04600854019050610c1a565b6003600d5460a060020a900460ff166006811115610be157fe5b1415610bf557600854606490600a02610bbb565b6005600d5460a060020a900460ff166006811115610c0f57fe5b1415610c1a57506008545b90565b60006001600d5460a060020a900460ff166006811115610c3957fe5b1480610c5c57506003600d5460a060020a900460ff166006811115610c5a57fe5b145b80610c7e57506005600d5460a060020a900460ff166006811115610c7c57fe5b145b1515610c8957600080fd5b6001600d5460a060020a900460ff166006811115610ca357fe5b1415610cb157506002610c1a565b6003600d5460a060020a900460ff166006811115610ccb57fe5b1415610cd957506004610c1a565b6005600d5460a060020a900460ff166006811115610cf357fe5b1415610c1a57506006610c1a565b600d5460a060020a900460ff166006811115610d1957fe5b816006811115610d2557fe5b11610d2f57600080fd5b600d805482919074ff0000000000000000000000000000000000000000191660a060020a836006811115610d5f57fe5b0217905550600d547ffafe884515ca1fa5e0bf815ce87ef00b2cdaa0eee590d20376604937937a10bf90429060a060020a900460ff1660405180838152602001826006811115610dab57fe5b60ff1681526020019250505060405180910390a150565b600080831515610dd557600091506109a7565b50828202828482811515610de557fe5b04146109a357fe5b60408051908101604052601f81527f426c6f636b636861696e20436572746966696564204461746120546f6b656e00602082015281565b600160a060020a03338116600081815260036020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600d5460a060020a900460ff1681565b600e5481565b60045460009033600160a060020a03908116911614610ec457600080fd5b6006600d5460a060020a900460ff166006811115610ede57fe5b14610ee857600080fd5b600c54600160a060020a031615801590610f0c5750600d54600160a060020a031615155b8015610f225750600054600160a060020a031615155b1515610f2d57600080fd5b600954600160a060020a033016311015610f4657600080fd5b60005460a060020a900460ff1615610f5d57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a17905542600155600f8054610fab91600a91610f9f9163ffffffff610dc216565b9063ffffffff61195316565b600e55600c54610fc590600160a060020a031660c861196a565b600d54909150610ff090610fe390600160a060020a0316606761196a565b829063ffffffff61099416565b60005490915061100e90610fe390600160a060020a0316601e61196a565b600f54909150611024908263ffffffff61099416565b600e55600454600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561106057600080fd5b50565b60008054819060a060020a900460ff1680156110855750620fd2006001540142115b151561109057600080fd5b600160a060020a03851615156110a557600080fd5b600160a060020a03841615156110ba57600080fd5b600054600160a060020a0386811691161480156110de57506301e133806001540142105b156110e857600080fd5b50600160a060020a0380851660008181526003602090815260408083203390951683529381528382205492825260029052919091205461112e908463ffffffff6109ae16565b600160a060020a038087166000908152600260205260408082209390935590861681522054611163908463ffffffff61099416565b600160a060020a03851660009081526002602052604090205561118c818463ffffffff6109ae16565b600160a060020a0380871660008181526003602090815260408083203386168452909152908190209390935590861691600080516020611b058339815191529086905190815260200160405180910390a3506001949350505050565b601281565b60006006600d5460a060020a900460ff16600681111561120957fe5b1461121357600080fd5b600160a060020a033316600090815260116020526040902054151561123757600080fd5b6009546010541061124757600080fd5b50600160a060020a033316600081815260116020526040808220805492905590919082156108fc0290839051600060405180830381858888f19350505050151561129057600080fd5b33600160a060020a03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405190815260200160405180910390a250565b60085481565b60045433600160a060020a039081169116146112f157600080fd5b6000600d5460a060020a900460ff16600681111561130b57fe5b1461131557600080fd5b83831161132157600080fd5b80151561132d57600080fd5b670de0b6b3a7640000938402600a55918302600b55909102600955600855565b600f5481565b60045433600160a060020a0390811691161461136e57600080fd5b61106081610d01565b600a5481565b600160a060020a03811660009081526006602052604081205460ff16156113a6575060026113d3565b600160a060020a03821660009081526005602052604090205460ff16156113cf575060016113d3565b5060005b919050565b600160a060020a031660009081526002602052604090205490565b60005460a060020a900460ff1681565b600d54600160a060020a031681565b600454600160a060020a031681565b60095481565b60408051908101604052600481527f4243445400000000000000000000000000000000000000000000000000000000602082015281565b60045433600160a060020a0390811691161461147957600080fd5b600160a060020a038316158015906114995750600160a060020a03821615155b80156114ad5750600160a060020a03811615155b15156114b857600080fd5b60005460a060020a900460ff16156114cf57600080fd5b600c8054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600d80549385169382169390931790925560008054919093169116179055565b6000805460a060020a900460ff16801561153b5750620fd2006001540142115b151561154657600080fd5b600160a060020a038316151561155b57600080fd5b60005433600160a060020a03908116911614801561158057506301e133806001540142105b1561158a57600080fd5b6115948383611a57565b9392505050565b60015481565b60045433600160a060020a03908116911614806115cc575060075433600160a060020a039081169116145b15156115d757600080fd5b600160a060020a03821660008181526006602052604090819020805460ff19168415151790557f5ec4eb956a9d026183b9d8f62cd6f4cecaec5a15263829771f1d207006cf203990839051901515815260200160405180910390a25050565b60045460009033600160a060020a0390811691161480611664575060075433600160a060020a039081169116145b151561166f57600080fd5b5060005b82518110156116a35761169b83828151811061168b57fe5b90602001906020020151836115a1565b600101611673565b505050565b600b5481565b600054600160a060020a031681565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600754600160a060020a031681565b60045433600160a060020a0390811691161461171257600080fd5b600160a060020a038116151561172757600080fd5b600454600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045460009033600160a060020a03908116911614806117c0575060075433600160a060020a039081169116145b15156117cb57600080fd5b5060005b82518110156116a3576117f78382815181106117e757fe5b906020019060200201518361180e565b6001016117cf565b600c54600160a060020a031681565b60045433600160a060020a0390811691161480611839575060075433600160a060020a039081169116145b151561184457600080fd5b600160a060020a03821660008181526005602052604090819020805460ff19168415151790557f08447c9fc1b08eadda3c6e0ec44794ed0e4dbdcc4df5b5588a2a2768ac458b2290839051901515815260200160405180910390a25050565b60045433600160a060020a03908116911614806118ce575060075433600160a060020a039081169116145b15156118d957600080fd5b600160a060020a03811615156118ee57600080fd5b80600160a060020a03167f0ca44eaf19ec8e07aaa42c7f82892b8ff7de9faf7b420a750585730a0b0b387860405160405180910390a26007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080828481151561196157fe5b04949350505050565b600454600090819033600160a060020a0390811691161461198a57600080fd5b6119a56103e8610f9f85600e54610dc290919063ffffffff16565b600160a060020a0385166000908152600260205260409020549091506119d1908263ffffffff61099416565b600160a060020a0385166000818152600260205260409081902092909255907fd2b5c2272580d3b01d5cf4d851350bba9cd8483bbdebbeef50c647c11d8f08939083905190815260200160405180910390a283600160a060020a03166000600080516020611b058339815191528360405190815260200160405180910390a39392505050565b600160a060020a033316600090815260026020526040812054611a80908363ffffffff6109ae16565b600160a060020a033381166000908152600260205260408082209390935590851681522054611ab5908363ffffffff61099416565b600160a060020a038085166000818152600260205260409081902093909355913390911690600080516020611b058339815191529085905190815260200160405180910390a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058206084ab8464bccc3e3b2a5a94680df1aa89bb0c7328342ab3a10f136df3b92dff0029

Swarm Source

bzzr://6084ab8464bccc3e3b2a5a94680df1aa89bb0c7328342ab3a10f136df3b92dff
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.