ETH Price: $1,944.71 (-1.66%)

Contract

0xc2C8c84fD920F10B93a7293C7EAda20901A6fC5D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction and 1 Token Transfer found.

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer48483512018-01-03 17:04:042986 days ago1514999044  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtheeraToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

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

/**
 * Developer Team: 
 * Hira Siddiqui
 * connect on: https://www.linkedin.com/in/hira-siddiqui-96b60a74/
 * 
 * Mujtaba Idrees
 * connect on: https://www.linkedin.com/in/mujtabaidrees94/
 **/

pragma solidity ^0.4.11;

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale.
 * Crowdsales have a start and end timestamps, where investors can make
 * token purchases and the crowdsale will assign them tokens based
 * on a token per ETH rate. Funds collected are forwarded to a wallet
 * as they arrive.
 */
 
 
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

 function div(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  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;
  }
}

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) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant internal returns (uint256);
  function transfer(address to, uint256 value) internal returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) tokenBalances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) internal returns (bool) {
    require(tokenBalances[msg.sender]>=_value);
    tokenBalances[msg.sender] = tokenBalances[msg.sender].sub(_value);
    tokenBalances[_to] = tokenBalances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) constant internal returns (uint256 balance) {
    return tokenBalances[_owner];
  }

}
contract EtheeraToken is BasicToken,Ownable {

   using SafeMath for uint256;
   
   //TODO: Change the name and the symbol
   string public constant name = "ETHEERA";
   string public constant symbol = "ETA";
   uint256 public constant decimals = 18;

   uint256 public constant INITIAL_SUPPLY = 300000000;
   event Debug(string message, address addr, uint256 number);
   /**
   * @dev Contructor that gives msg.sender all of existing tokens.
   */
    function EtheeraToken(address wallet) public {
        owner = msg.sender;
        totalSupply = INITIAL_SUPPLY;
        tokenBalances[wallet] = INITIAL_SUPPLY * 10 ** 18;   //Since we divided the token into 10^18 parts
    }

    function mint(address wallet, address buyer, uint256 tokenAmount) public onlyOwner {
      require(tokenBalances[wallet] >= tokenAmount);               // checks if it has enough to sell
      tokenBalances[buyer] = tokenBalances[buyer].add(tokenAmount);                  // adds the amount to buyer's balance
      tokenBalances[wallet] = tokenBalances[wallet].sub(tokenAmount);                        // subtracts amount from seller's balance
      Transfer(wallet, buyer, tokenAmount); 
    }
    
    function showMyTokenBalance(address addr) public view onlyOwner returns (uint tokenBalance) {
        tokenBalance = tokenBalances[addr];
        return tokenBalance;
    }
    
    function showMyEtherBalance(address addr) public view onlyOwner returns (uint etherBalance) {
        etherBalance = addr.balance;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","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":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"showMyTokenBalance","outputs":[{"name":"tokenBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"showMyEtherBalance","outputs":[{"name":"etherBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"wallet","type":"address"},{"name":"buyer","type":"address"},{"name":"tokenAmount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"message","type":"string"},{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"number","type":"uint256"}],"name":"Debug","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"}]

6060604052341561000f57600080fd5b6040516020806105a38339810160405280805160028054600160a060020a03338116600160a060020a031992831681179092169091179091556311e1a3006000908155911681526001602052604090206af8277896582678ac000000905550506105258061007e6000396000f3006060604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100a857806318160ddd146101325780632ff2e9dc14610157578063313ce5671461016a5780638da5cb5b1461017d5780638fe47625146101ac57806395d89b41146101cb578063bd51654b146101de578063c6c3bbe6146101fd578063f2fde38b14610227575b600080fd5b34156100b357600080fd5b6100bb610246565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100f75780820151838201526020016100df565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013d57600080fd5b61014561027d565b60405190815260200160405180910390f35b341561016257600080fd5b610145610283565b341561017557600080fd5b61014561028b565b341561018857600080fd5b610190610290565b604051600160a060020a03909116815260200160405180910390f35b34156101b757600080fd5b610145600160a060020a036004351661029f565b34156101d657600080fd5b6100bb6102d9565b34156101e957600080fd5b610145600160a060020a0360043516610310565b341561020857600080fd5b610225600160a060020a036004358116906024351660443561033c565b005b341561023257600080fd5b610225600160a060020a0360043516610436565b60408051908101604052600781527f4554484545524100000000000000000000000000000000000000000000000000602082015281565b60005481565b6311e1a30081565b601281565b600254600160a060020a031681565b60025460009033600160a060020a039081169116146102bd57600080fd5b50600160a060020a031660009081526001602052604090205490565b60408051908101604052600381527f4554410000000000000000000000000000000000000000000000000000000000602082015281565b60025460009033600160a060020a0390811691161461032e57600080fd5b50600160a060020a03163190565b60025433600160a060020a0390811691161461035757600080fd5b600160a060020a0383166000908152600160205260409020548190101561037d57600080fd5b600160a060020a0382166000908152600160205260409020546103a6908263ffffffff6104d116565b600160a060020a0380841660009081526001602052604080822093909355908516815220546103db908263ffffffff6104e716565b600160a060020a038085166000818152600160205260409081902093909355908416917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b60025433600160a060020a0390811691161461045157600080fd5b600160a060020a038116151561046657600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828201838110156104e057fe5b9392505050565b6000828211156104f357fe5b509003905600a165627a7a72305820b64d97dd4e7b82a3b59ecba2bb476f310bc8cba54903addccefff874c796d8860029000000000000000000000000de54d403b16a3ebc9ed7860e3af94417889e19d7

Deployed Bytecode

0x6060604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100a857806318160ddd146101325780632ff2e9dc14610157578063313ce5671461016a5780638da5cb5b1461017d5780638fe47625146101ac57806395d89b41146101cb578063bd51654b146101de578063c6c3bbe6146101fd578063f2fde38b14610227575b600080fd5b34156100b357600080fd5b6100bb610246565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100f75780820151838201526020016100df565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013d57600080fd5b61014561027d565b60405190815260200160405180910390f35b341561016257600080fd5b610145610283565b341561017557600080fd5b61014561028b565b341561018857600080fd5b610190610290565b604051600160a060020a03909116815260200160405180910390f35b34156101b757600080fd5b610145600160a060020a036004351661029f565b34156101d657600080fd5b6100bb6102d9565b34156101e957600080fd5b610145600160a060020a0360043516610310565b341561020857600080fd5b610225600160a060020a036004358116906024351660443561033c565b005b341561023257600080fd5b610225600160a060020a0360043516610436565b60408051908101604052600781527f4554484545524100000000000000000000000000000000000000000000000000602082015281565b60005481565b6311e1a30081565b601281565b600254600160a060020a031681565b60025460009033600160a060020a039081169116146102bd57600080fd5b50600160a060020a031660009081526001602052604090205490565b60408051908101604052600381527f4554410000000000000000000000000000000000000000000000000000000000602082015281565b60025460009033600160a060020a0390811691161461032e57600080fd5b50600160a060020a03163190565b60025433600160a060020a0390811691161461035757600080fd5b600160a060020a0383166000908152600160205260409020548190101561037d57600080fd5b600160a060020a0382166000908152600160205260409020546103a6908263ffffffff6104d116565b600160a060020a0380841660009081526001602052604080822093909355908516815220546103db908263ffffffff6104e716565b600160a060020a038085166000818152600160205260409081902093909355908416917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b60025433600160a060020a0390811691161461045157600080fd5b600160a060020a038116151561046657600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828201838110156104e057fe5b9392505050565b6000828211156104f357fe5b509003905600a165627a7a72305820b64d97dd4e7b82a3b59ecba2bb476f310bc8cba54903addccefff874c796d8860029

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

000000000000000000000000de54d403b16a3ebc9ed7860e3af94417889e19d7

-----Decoded View---------------
Arg [0] : wallet (address): 0xde54d403B16a3EBC9Ed7860E3AF94417889E19D7

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000de54d403b16a3ebc9ed7860e3af94417889e19d7


Swarm Source

bzzr://b64d97dd4e7b82a3b59ecba2bb476f310bc8cba54903addccefff874c796d886

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.