Blockwell

indaHash Coin

ERC20

This contract is an ERC20 token.

Name indaHash Coin
Symbol IDH
Decimals 6
Total Supply 400,000,000 IDH

About link

indaHash (IDH) is a cryptocurrency token and operates on the Ethereum platform. indaHash has a current supply of 399,999,999.992 with 399,936,258.54 in circulation. The last known price of indaHash is $0.003694 USD and is up 18.85% over the last 24 hours. It is currently trading on 4 active market(s) with $12,577.46 traded over the last 24 hours. More information can be found at https://indahash.com/.

Stats

Public Functions 26
Event Types 12
Code Size 18,859 bytes

AdminWalletUpdated Event

Parameters help
_newAdminWallet
address help

Airdrop Event

Parameters help
_owner
address help
_amount
uint help
_balance
uint help

Approval Event

Parameters help
_owner
address help
_spender
address help
_value
uint help

LockRemoved Event

Parameters help
_participant
address help

OwnershipTransferProposed Event

Parameters help
_from
address help
_to
address help

OwnershipTransferred Event

Parameters help
_from
address help
_to
address help

Refund Event

Parameters help
_owner
address help
_amount
uint help
_tokens
uint help

TokensIssued Event

Parameters help
_owner
address help
_tokens
uint help
_balance
uint help
_etherContributed
uint help

TokensMinted Event

Parameters help
_owner
address help
_tokens
uint help
_balance
uint help

TokensPerEthUpdated Event

Parameters help
_tokensPerEth
uint help

Transfer Event

Parameters help
_from
address help
_to
address help
_value
uint help

WalletUpdated Event

Parameters help
_newWallet
address help

Functions Expand All Collapse All

transferOwnership keyboard_arrow_up

Parameters help

Name Type
_newOwner
address help

Properties

Visibility help public
Mutability help transaction
Source Code
  function transferOwnership(address _newOwner) onlyOwner {
    require( _newOwner != owner );
    require( _newOwner != address(0x0) );
    OwnershipTransferProposed(owner, _newOwner);
    newOwner = _newOwner;
  }

acceptOwnership keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
  function acceptOwnership() {
    require(msg.sender == newOwner);
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

totalSupply keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
  function totalSupply() constant returns (uint) {
    return tokensIssuedTotal;
  }

balanceOf keyboard_arrow_up

Parameters help

Name Type
_owner
address help

Properties

Visibility help public
Mutability help constant
Source Code
  function balanceOf(address _owner) constant returns (uint balance) {
    return balances[_owner];
  }

transfer keyboard_arrow_up

Parameters help

Name Type
_to
address help
_amount
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
  function transfer(address _to, uint _amount) returns (bool success) {
    require( isTransferable() );
    require( locked[msg.sender] == false );
    require( locked[_to] == false );
    return super.transfer(_to, _amount);
  }

transferFrom keyboard_arrow_up

Parameters help

Name Type
_from
address help
_to
address help
_amount
uint help

Properties

Visibility help public
Mutability help transaction

Requirements help

null
Source Code
  function transferFrom(address _from, address _to, uint _amount) returns (bool success) {
    require( isTransferable() );
    require( locked[_from] == false );
    require( locked[_to] == false );
    return super.transferFrom(_from, _to, _amount);
  }

approve keyboard_arrow_up

Parameters help

Name Type
_spender
address help
_amount
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
  function approve(address _spender, uint _amount) returns (bool success) {
    // approval amount cannot exceed the balance
    require ( balances[msg.sender] >= _amount );
      
    // update allowed amount
    allowed[msg.sender][_spender] = _amount;
    
    // log event
    Approval(msg.sender, _spender, _amount);
    return true;
  }

allowance keyboard_arrow_up

Parameters help

Name Type
_owner
address help
_spender
address help

Properties

Visibility help public
Mutability help constant
Source Code
  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }

constructor keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help payable
Source Code
  function () payable {
    buyTokens();
  }

atNow keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
  function atNow() constant returns (uint) {
    return now;
  }

icoThresholdReached keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
  function icoThresholdReached() constant returns (bool thresholdReached) {
     if (tokensIssuedIco < MIN_FUNDING_GOAL) return false;
     return true;
  }

isTransferable keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help constant
Source Code
  function isTransferable() constant returns (bool transferable) {
     if ( !icoThresholdReached() ) return false;
     if ( atNow() < DATE_ICO_END + COOLDOWN_PERIOD ) return false;
     return true;
  }

removeLock keyboard_arrow_up

Parameters help

Name Type
_participant
address help

Properties

Visibility help public
Mutability help transaction
Source Code
  function removeLock(address _participant) {
    require( msg.sender == adminWallet || msg.sender == owner );
    locked[_participant] = false;
    LockRemoved(_participant);
  }

removeLockMultiple keyboard_arrow_up

Parameters help

Name Type
_participants
address[] help

Properties

Visibility help public
Mutability help transaction
Source Code
  function removeLockMultiple(address[] _participants) {
    require( msg.sender == adminWallet || msg.sender == owner );
    for (uint i = 0; i < _participants.length; i++) {
      locked[_participants[i]] = false;
      LockRemoved(_participants[i]);
    }
  }

setWallet keyboard_arrow_up

Parameters help

Name Type
_wallet
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
  function setWallet(address _wallet) onlyOwner {
    require( _wallet != address(0x0) );
    wallet = _wallet;
    WalletUpdated(wallet);
  }

setAdminWallet keyboard_arrow_up

Parameters help

Name Type
_wallet
address help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
  function setAdminWallet(address _wallet) onlyOwner {
    require( _wallet != address(0x0) );
    adminWallet = _wallet;
    AdminWalletUpdated(adminWallet);
  }

updateTokensPerEth keyboard_arrow_up

Parameters help

Name Type
_tokensPerEth
uint help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
  function updateTokensPerEth(uint _tokensPerEth) onlyOwner {
    require( atNow() < DATE_PRESALE_START );
    tokensPerEth = _tokensPerEth;
    TokensPerEthUpdated(_tokensPerEth);
  }

mintMarketing keyboard_arrow_up

Parameters help

Name Type
_participant
address help
_tokens
uint help

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
  function mintMarketing(address _participant, uint _tokens) onlyOwner {
    // check amount
    require( _tokens <= TOKEN_SUPPLY_MKT.sub(tokensIssuedMkt) );
    
    // update balances
    balances[_participant] = balances[_participant].add(_tokens);
    tokensIssuedMkt        = tokensIssuedMkt.add(_tokens);
    tokensIssuedTotal      = tokensIssuedTotal.add(_tokens);
    
    // locked
    locked[_participant] = true;
    
    // log the miniting
    Transfer(0x0, _participant, _tokens);
    TokensMinted(_participant, _tokens, balances[_participant]);
  }

ownerClawback keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
  function ownerClawback() external onlyOwner {
    require( atNow() > DATE_ICO_END + CLAWBACK_PERIOD );
    wallet.transfer(this.balance);
  }

transferAnyERC20Token keyboard_arrow_up

Parameters help

Name Type
tokenAddress
address help
amount
uint help

Properties

Visibility help public
Mutability help transaction
Source Code
  function transferAnyERC20Token(address tokenAddress, uint amount) onlyOwner returns (bool success) {
      return ERC20Interface(tokenAddress).transfer(owner, amount);
  }

reclaimFunds keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction
Source Code
  function reclaimFunds() external {
    uint tokens; // tokens to destroy
    uint amount; // refund amount
    
    // ico is finished and was not successful
    require( atNow() > DATE_ICO_END && !icoThresholdReached() );
    
    // check if refund has already been claimed
    require( !refundClaimed[msg.sender] );
    
    // check if there is anything to refund
    require( icoEtherContributed[msg.sender] > 0 );
    
    // update variables affected by refund
    tokens = icoTokensReceived[msg.sender];
    amount = icoEtherContributed[msg.sender];

    balances[msg.sender] = balances[msg.sender].sub(tokens);
    tokensIssuedTotal    = tokensIssuedTotal.sub(tokens);
    
    refundClaimed[msg.sender] = true;
    
    // transfer out refund
    msg.sender.transfer(amount);
    
    // log
    Transfer(msg.sender, 0x0, tokens);
    Refund(msg.sender, amount, tokens);
  }

claimAirdrop keyboard_arrow_up

Parameters help

This function has no parameters.

Properties

Visibility help public
Mutability help transaction

Requirements help

Source Code
  function claimAirdrop() external {
    doAirdrop(msg.sender);
  }

adminClaimAirdrop keyboard_arrow_up

Parameters help

Name Type
_participant
address help

Properties

Visibility help public
Mutability help transaction
Source Code
  function adminClaimAirdrop(address _participant) external {
    require( msg.sender == adminWallet );
    doAirdrop(_participant);
  }

adminClaimAirdropMultiple keyboard_arrow_up

Parameters help

Name Type
_addresses
address[] help

Properties

Visibility help public
Mutability help transaction
Source Code
  function adminClaimAirdropMultiple(address[] _addresses) external {
    require( msg.sender == adminWallet );
    for (uint i = 0; i < _addresses.length; i++) doAirdrop(_addresses[i]);
  }

computeAirdrop keyboard_arrow_up

Parameters help

Name Type
_participant
address help

Properties

Visibility help public
Mutability help constant
Source Code
  function computeAirdrop(address _participant) constant returns (uint airdrop) {
    // return 0 if it's too early or ico was not successful
    if ( atNow() < DATE_ICO_END || !icoThresholdReached() ) return 0;
    
    // return  0 is the airdrop was already claimed
    if( airdropClaimed[_participant] ) return 0;

    // return 0 if the account does not hold any crowdsale tokens
    if( icoTokensReceived[_participant] == 0 ) return 0;
    
    // airdrop amount
    uint tokens = icoTokensReceived[_participant];
    uint newBalance = tokens.mul(TOKEN_SUPPLY_ICO) / tokensIssuedIco;
    airdrop = newBalance - tokens;
  }

transferMultiple keyboard_arrow_up

Parameters help

Name Type
_addresses
address[] help
_amounts
uint[] help

Properties

Visibility help public
Mutability help transaction
Source Code
  function transferMultiple(address[] _addresses, uint[] _amounts) external {
    require( isTransferable() );
    require( locked[msg.sender] == false );
    require( _addresses.length == _amounts.length );
    for (uint i = 0; i < _addresses.length; i++) {
      if (locked[_addresses[i]] == false) super.transfer(_addresses[i], _amounts[i]);
    }
  }