Sponsored:   Ubex.com - World roadshow: Seoul Sep 17-19, Singapore Sep 19-20, Dubai 18-23. Meet us!.
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 11 txns
Token Tracker: Bitgene Token (BGT)
 Latest 11 txns

TxHash Age From To Value [TxFee]
0x3566822d4f3fbb8ad1962675ff4ac45d62230064688300de5a21927e8aba7e6c13 days 19 hrs ago0x6634338bae565fcdbfef6cf0a10cd660e351ace9  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.000222
0xe26f2383e15a034dfaf51c3a03a2402d13bd7e371a8f29d9663adbbaf78c03cf51 days 10 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.000555
0x2616de9fa0a66bc97b0fe732f1f8cfda75e192523dfc3317f682c338ae98211359 days 21 hrs ago0x7b892ca1acaaa7666fe13d62cf7c99450c2e5612  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.00026
0xcc62a185516e23ebf1618c41733b3b8707cf11e3ebebd8ae232805161c42de5564 days 11 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.0012984
0xc8bf2cb2902c972e041d01c60cedbdb94afb76faf3a189d4dd33ec3a2b3912fb64 days 11 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.0013016
0xd7b6ae8bd5eb7f5586f1e446bce3cbe2b14dec6f1d30ff6d4905f7450c90572e64 days 11 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.0013016
0xaa68f778353a03c1f295cc3e0e1de107ec92c218a342dde582a9a4cfe692b58364 days 11 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.0013016
0x14c69ba0d1d5b6f61b88efaf1dab54bb8f100d614028b23bf7f56678b0caddb564 days 11 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.00074
0x165ffbeb62f23363c561fcb406ad0cee021bea93a04f632a7e4a17126019501264 days 11 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.000481
0xd7c4fe9258909ff1e8aa1b028271df82e9bcae72e53af3e81ceb4f9d72d1807a64 days 11 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN   0x5987b7ad0bfb6eb3d8e00882bbab490c79d185c90 Ether0.000104
0xf0a6f19e17f6092a4894b6ba18c4897db8161143ec1e4e8b3e3ce0ddce32a59070 days 12 hrs ago0xf8869c6c61208a9f043e0f75d2db80700c1cff7d  IN    Contract Creation0 Ether0.0391056589
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: BitgeneToken
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.23;

/**
 * Math operations with safety checks
 */
library SafeMath {
  function mul(uint a, uint b) internal pure returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

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

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

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

  function max64(uint64 a, uint64 b) internal pure returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal pure returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal pure returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal pure returns (uint256) {
    return a < b ? a : b;
  }

}


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


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

  mapping(address => uint) balances;

  /**
   * @dev Fix for the ERC20 short address attack.
   */
  modifier onlyPayloadSize(uint size) {
     assert(msg.data.length >= size + 4);
     _;
  }

  /**
  * @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, uint _value) onlyPayloadSize(2 * 32)  public {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
  }

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

}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant  public returns (uint);
  function transferFrom(address from, address to, uint value)  public;
  function approve(address spender, uint value)  public;
  event Approval(address indexed owner, address indexed spender, uint value);
}


/**
 * @title Standard ERC20 token
 *
 * @dev Implemantation of the basic standart token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is BasicToken, ERC20 {

  mapping (address => mapping (address => uint)) allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint _value) onlyPayloadSize(3 * 32)  public {
    uint _allowance;
    _allowance = allowed[_from][msg.sender];

    require(_allowance >= _value);

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

  /**
   * @dev Aprove the passed address to spend the specified amount of tokens on beahlf of msg.sender.
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint _value)  public {

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender, 0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    require((_value == 0) || (allowed[msg.sender][_spender] == 0));

    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
  }

  /**
   * @dev Function to check the amount of tokens than an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint specifing the amount of tokens still avaible for the spender.
   */
  function allowance(address _owner, address _spender) constant public returns (uint remaining) {
    return allowed[_owner][_spender];
  }

}


/**
 * @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;


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor()  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 {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev modifier to allow actions only when the contract IS paused
   */
  modifier whenNotPaused() {
    // if (paused) throw;
    require(!paused);
    _;
  }

  /**
   * @dev modifier to allow actions only when the contract IS NOT paused
   */
  modifier whenPaused {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused  public returns (bool) {
    paused = true;
    emit Pause();
    return true;
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused  public returns (bool) {
    paused = false;
    emit Unpause();
    return true;
  }
}


/**
 * Pausable token
 *
 * Simple ERC20 Token example, with pausable token creation
 **/

contract PausableToken is StandardToken, Pausable {

  function transfer(address _to, uint _value) whenNotPaused  public {
    super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint _value) whenNotPaused  public {
    super.transferFrom(_from, _to, _value);
  }
}

/**
 * @title BitgeneToken
 * @dev Bitgene Token contract
 */
contract BitgeneToken is PausableToken {
  using SafeMath for uint256;

  string public name = "Bitgene Token";
  string public symbol = "BGT";
  uint public decimals = 18;
  uint256 public totalSupply = 10 ** 10 * 10**uint(decimals);
  
  constructor() public {
    balances[owner] = totalSupply;        
    emit Transfer(address(0), msg.sender, totalSupply);
  }
  
	function batchTransfer(address[] _receivers, uint256 _value) public whenNotPaused returns (bool) {
	    uint cnt = _receivers.length;
	    uint256 amount = uint256(cnt).mul(_value);
	    require(cnt > 0 && cnt <= 200);
	    require(_value > 0 && balances[msg.sender] >= amount);
	
	    balances[msg.sender] = balances[msg.sender].sub(amount);
	    for (uint i = 0; i < cnt; i++) {
	        balances[_receivers[i]] = balances[_receivers[i]].add(_value);
	        emit Transfer(msg.sender, _receivers[i], _value);
	    }
	    return true;
	}

  // If the user transfers ETH to contract, it will revert
  function () public payable{ revert(); }
}

    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":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receivers","type":"address[]"},{"name":"_value","type":"uint256"}],"name":"batchTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"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":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","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"},{"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"}]

  Contract Creation Code Switch To Opcodes View
6003805460a060020a60ff021916905560c0604052600d60808190527f42697467656e6520546f6b656e0000000000000000000000000000000000000060a090815261004e9160049190610128565b506040805180820190915260038082527f4247540000000000000000000000000000000000000000000000000000000000602090920191825261009391600591610128565b5060126006556b204fce5e3e250261100000006007553480156100b557600080fd5b5060038054600160a060020a0319163390811791829055600754600160a060020a03929092166000908152600160209081526040808320859055805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36101c3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061016957805160ff1916838001178555610196565b82800160010185558215610196579182015b8281111561019657825182559160200191906001019061017b565b506101a29291506101a6565b5090565b6101c091905b808211156101a257600081556001016101ac565b90565b610b14806101d26000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd1461018f57806323b872dd146101b6578063313ce567146101e05780633f4ba83a146101f55780635c975abb1461021e57806370a082311461023357806383f12fec146102545780638456cb59146102ab5780638da5cb5b146102c057806395d89b41146102f1578063a9059cbb14610306578063dd62ed3e1461032a578063f2fde38b14610351575b600080fd5b3480156100eb57600080fd5b506100f4610372565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061018d600160a060020a0360043516602435610400565b005b34801561019b57600080fd5b506101a461049b565b60408051918252519081900360200190f35b3480156101c257600080fd5b5061018d600160a060020a03600435811690602435166044356104a1565b3480156101ec57600080fd5b506101a46104c8565b34801561020157600080fd5b5061020a6104ce565b604080519115158252519081900360200190f35b34801561022a57600080fd5b5061020a61054d565b34801561023f57600080fd5b506101a4600160a060020a036004351661055d565b34801561026057600080fd5b506040805160206004803580820135838102808601850190965280855261020a9536959394602494938501929182918501908490808284375094975050933594506105789350505050565b3480156102b757600080fd5b5061020a610722565b3480156102cc57600080fd5b506102d56107a6565b60408051600160a060020a039092168252519081900360200190f35b3480156102fd57600080fd5b506100f46107b5565b34801561031257600080fd5b5061018d600160a060020a0360043516602435610810565b34801561033657600080fd5b506101a4600160a060020a0360043581169060243516610835565b34801561035d57600080fd5b5061018d600160a060020a0360043516610860565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b505050505081565b80158061042e5750336000908152600260209081526040808320600160a060020a0386168452909152902054155b151561043957600080fd5b336000818152600260209081526040808320600160a060020a03871680855290835292819020859055805185815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35050565b60075481565b60035460a060020a900460ff16156104b857600080fd5b6104c38383836108b2565b505050565b60065481565b600354600090600160a060020a031633146104e857600080fd5b60035460a060020a900460ff16151561050057600080fd5b6003805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a150600190565b60035460a060020a900460ff1681565b600160a060020a031660009081526001602052604090205490565b60035460009081908190819060a060020a900460ff161561059857600080fd5b855192506105ac838663ffffffff6109e316565b91506000831180156105bf575060c88311155b15156105ca57600080fd5b6000851180156105e95750336000908152600160205260409020548211155b15156105f457600080fd5b33600090815260016020526040902054610614908363ffffffff610a0e16565b3360009081526001602052604081209190915590505b82811015610716576106778560016000898581518110151561064857fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff610a2016565b60016000888481518110151561068957fe5b6020908102909101810151600160a060020a031682528101919091526040016000205585518690829081106106ba57fe5b90602001906020020151600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a360010161062a565b50600195945050505050565b600354600090600160a060020a0316331461073c57600080fd5b60035460a060020a900460ff161561075357600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a150600190565b600354600160a060020a031681565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103f85780601f106103cd576101008083540402835291602001916103f8565b60035460a060020a900460ff161561082757600080fd5b6108318282610a2f565b5050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a0316331461087757600080fd5b600160a060020a038116156108af576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6000606060643610156108c157fe5b600160a060020a03851660009081526002602090815260408083203384529091529020549150828210156108f457600080fd5b600160a060020a03851660009081526001602052604090205461091d908463ffffffff610a0e16565b600160a060020a038087166000908152600160205260408082209390935590861681522054610952908463ffffffff610a2016565b600160a060020a03851660009081526001602052604090205561097b828463ffffffff610a0e16565b600160a060020a03808716600081815260026020908152604080832033845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35050505050565b60008282028315806109ff57508284828115156109fc57fe5b04145b1515610a0757fe5b9392505050565b600082821115610a1a57fe5b50900390565b600082820183811015610a0757fe5b60406044361015610a3c57fe5b33600090815260016020526040902054610a5c908363ffffffff610a0e16565b3360009081526001602052604080822092909255600160a060020a03851681522054610a8e908363ffffffff610a2016565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050505600a165627a7a72305820176ac18d28e0dc5e4f51bd8dd53770d6f0426c2c6f21e4ef1057d17dee23fc5c0029

   Swarm Source:
bzzr://176ac18d28e0dc5e4f51bd8dd53770d6f0426c2c6f21e4ef1057d17dee23fc5c

 

View All
Block Age transaction Difficulty Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.