Latest 25 transactions from a total of 118425 transactions

TxHash Age From To Value [TxFee]
0x6661555f7ef4ba0ed050fb44ec69890951b49142a0d84cf2dfbba2c2acfa0deb10 hrs 3 mins agoBinance_1  IN   CoinDash0 Ether0.0021086
0x326485c3180f5c4207b08df338c33f8e9f1d5193aa4de03d8b18abd7ff4244d913 hrs 58 mins ago0xf02ed6d88a9219022312c12e4c27d3cdcc1d6e17  IN   CoinDash0 Ether0.00022907
0xae40b28ce669b98b6e6b3fd02e4f2186c36772316d45e1cdf25200f0234bd79514 hrs 3 mins ago0xf942562d06eaef999ed80c91972e497ce7131449  IN   CoinDash0 Ether0.00037971
0x1518fb1eb69a93ab73a43607117163faa3dda7106004b019cdc52785b0548ee414 hrs 3 mins agoBinance_3  IN   CoinDash0 Ether0.00151628
0x38475005b213ea92f6f2ddd300f01409c764d4f3f2d0a7ca594bb122b35912f014 hrs 9 mins ago0x2a4f409417b586bd1a7354e1ad2d7aa10dde5a6e  IN   CoinDash0 Ether0.00022843
0x3245c0cbc666d9120a6f6b6f121bfc12a9a8c8673816e2b7c514e19039db3b1a14 hrs 21 mins ago0x2bf86950aa75e3509e6f6ee5da2829537dd09384  IN   CoinDash0 Ether0.00022971
0x5fcb9f11d37e29e09f06aec115978fcdb3aec7d4805e553f4f99e984efeb0d8c14 hrs 44 mins ago0xde58c62394e29a029b59da11493e7d698e1caf46  IN   CoinDash0 Ether0.00022843
0x95167bcf4198accc26fffcd1975ddc9f17023de063b3e86e64464859b4c408dc15 hrs 5 mins ago0x45e117fd4c52bc201a8e3f571c49d79865a8abcf  IN   CoinDash0 Ether0.000205587
0xe35bd61da6dc705675f59b371001d28470b2e4f0543c7075fcb07ab3358a61bc15 hrs 16 mins ago0x96eb4eaa1426ad7d1d0bd89afaa8e35b7403fbec  IN   CoinDash0 Ether0.001551563
0x9df5e2f8d16f76bd3cde6c8a7c91ed6b2771e1b14851467579c09fb0a0f6a93915 hrs 19 mins ago0xaf608ae76b41a24be940a31559e07f2206f130c9  IN   CoinDash0 Ether0.000182744
0xa17592d10fdc16228ddc6755d4ba3119fb2dd94bb70f85b29bc644b1abd6941c15 hrs 29 mins ago0x7a657f0470a416d81d721e02bbdb61c00ba223ff  IN   CoinDash0 Ether0.000183256
0x438ea88c2da14c6f7fb89e3d26eacd5997e3b0a37281e369c29fe21cbf2fef7816 hrs 21 mins ago0xb475ff14f14d385b17f2c8e2c4250c4d1f9848a2  IN   CoinDash0 Ether0.00022907
0x9bc568f1bb5d1f933938b827d99fe863102d2947235884f3a06eb51a1347e44716 hrs 34 mins ago0x402f5697b7c85ea72147b4cfadcffc0cf4f84a36  IN   CoinDash0 Ether0.00022843
0x8bc78869797cd4bc799ccc13c8c3078ee9d7c78bcbcddc5d7c0958d186158cdf16 hrs 40 mins ago0xbdb4b7297a43fbc7a986eca7b571e1c11f324084  IN   CoinDash0 Ether0.00022907
0x3ad161a33090c91bbbc47ec4489696aba5ec5360aca4c2d206dbe6f93858870219 hrs 18 mins ago0x7f6305f2377eeb59cb6e176516e87138dd3b893b  IN   CoinDash0 Ether0.000159901
0x17631db35e5ab3cc7d8d4cbf86b7d9e71b9899bef18516011b05fc543e5723d51 day 2 mins agoBinance_4  IN   CoinDash0 Ether0.00211628
0xdbcf8712f907ba0abb907f5d02a877fd0a966b197c3d5c88c89decb9a3eb3eae1 day 7 hrs ago0xb67e0eb5ca6b3c083722de52084cbcef6afc94cb  IN   CoinDash0 Ether0.001551563
0x48bb9183877cc8432e9f7ec40682f1cd174c586a2dfc4956408105585ad485511 day 11 hrs ago0x3732fd22645bd2207c27a1aaee36f2dbd46822f7  IN   CoinDash0 Ether0.00045942
0x48b68eca2a916319ef65bfce0e054a13b1eda41389bb254013841d4d4967d6b11 day 11 hrs ago0x8705ccfd8a6df3785217c307cbebf9b793310b94  IN   CoinDash0 Ether0.00303768
0x5bf18c71d4ddc3f87b1a28123f7fe1214e8e6c7baeb6b4cdca900e02d7c4d2eb1 day 11 hrs ago0x3d895e6a7b46a9c417b84ce09c887a3860818401  IN   CoinDash0 Ether0.00045942
0x2fe43ac39d436342ec3f46830c6161e655867641908c9582d0b6e7cb374249c81 day 12 hrs ago0x8705ccfd8a6df3785217c307cbebf9b793310b94  IN   CoinDash0 Ether0.00303768
0xafbec3c9fda19f898584f1d6d78d1421fc09047bf0e60cd59321ba10a366435c1 day 12 hrs agoBinance_3  IN   CoinDash0 Ether0.00211884
0x9c6a2bbfd6b97c02c91eebe8faaaba74d782972a883a9a024a2af684849b97d41 day 13 hrs agoBinance_2  IN   CoinDash0 Ether0.00211372
0xf5eb0baf8686c0fb96c7dda151966c8d34e56ad109bb50c5d9c8804cbef33ec21 day 15 hrs ago0x72cb87bbc751f9968919a8b5d7ca5eb7e579f7eb  IN   CoinDash0 Ether0.00045942
0xd6259724f9f8c4712ea178f902a1ac7626bf39260ce7daca1f5aee11d6fb84d81 day 15 hrs ago0x9c2247048ba97b24ba2c669984450294d13065cb  IN   CoinDash0 Ether0.000316674
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Name: CDTToken
Compiler Text: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.8;

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

  function div(uint a, uint b) internal 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 returns (uint) {
    assert(b <= a);
    return a - b;
  }

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

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

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

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

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

  function assert(bool assertion) internal {
    if (!assertion) {
      throw;
    }
  }
}

/**
 * @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 returns (uint);
  function transfer(address to, uint value);
  event Transfer(address indexed from, address indexed to, uint value);
}

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


/**
 * @title LimitedTransferToken
 * @dev LimitedTransferToken defines the generic interface and the implementation to limit token 
 * transferability for different events. It is intended to be used as a base class for other token 
 * contracts. 
 * LimitedTransferToken has been designed to allow for different limiting factors,
 * this can be achieved by recursively calling super.transferableTokens() until the base class is 
 * hit. For example:
 *     function transferableTokens(address holder, uint64 time) constant public returns (uint256) {
 *       return min256(unlockedTokens, super.transferableTokens(holder, time));
 *     }
 * A working example is VestedToken.sol:
 * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/VestedToken.sol
 */

contract LimitedTransferToken is ERC20 {

  /**
   * @dev Checks whether it can transfer or otherwise throws.
   */
  modifier canTransfer(address _sender, uint _value) {
   if (_value > transferableTokens(_sender, uint64(now))) throw;
   _;
  }

  /**
   * @dev Checks modifier and allows transfer if tokens are not locked.
   * @param _to The address that will recieve the tokens.
   * @param _value The amount of tokens to be transferred.
   */
  function transfer(address _to, uint _value) canTransfer(msg.sender, _value) {
   return super.transfer(_to, _value);
  }

  /**
  * @dev Checks modifier and allows transfer if tokens are not locked.
  * @param _from The address that will send the tokens.
  * @param _to The address that will recieve the tokens.
  * @param _value The amount of tokens to be transferred.
  */
  function transferFrom(address _from, address _to, uint _value) canTransfer(_from, _value) {
   return super.transferFrom(_from, _to, _value);
  }

  /**
   * @dev Default transferable tokens function returns all tokens for a holder (no limit).
   * @dev Overwriting transferableTokens(address holder, uint64 time) is the way to provide the 
   * specific logic for limiting token transferability for a holder over time.
   */
  function transferableTokens(address holder, uint64 time) constant public returns (uint256) {
    return balanceOf(holder);
  }
}


/**
 * @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) {
     if(msg.data.length < size + 4) {
       throw;
     }
     _;
  }

  /**
  * @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) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    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 returns (uint balance) {
    return balances[_owner];
  }

}


/**
 * @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) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

    balances[_to] = balances[_to].add(_value);
    balances[_from] = balances[_from].sub(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    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) {

    // 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
    if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;

    allowed[msg.sender][_spender] = _value;
    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 returns (uint remaining) {
    return allowed[_owner][_spender];
  }

}


/**
 * @title Vested token
 * @dev Tokens that can be vested for a group of addresses.
 */
contract VestedToken is StandardToken, LimitedTransferToken {

  uint256 MAX_GRANTS_PER_ADDRESS = 20;

  struct TokenGrant {
    address granter;     // 20 bytes
    uint256 value;       // 32 bytes
    uint64 cliff;
    uint64 vesting;
    uint64 start;        // 3 * 8 = 24 bytes
    bool revokable;
    bool burnsOnRevoke;  // 2 * 1 = 2 bits? or 2 bytes?
  } // total 78 bytes = 3 sstore per operation (32 per sstore)

  mapping (address => TokenGrant[]) public grants;

  event NewTokenGrant(address indexed from, address indexed to, uint256 value, uint256 grantId);

  /**
   * @dev Grant tokens to a specified address
   * @param _to address The address which the tokens will be granted to.
   * @param _value uint256 The amount of tokens to be granted.
   * @param _start uint64 Time of the beginning of the grant.
   * @param _cliff uint64 Time of the cliff period.
   * @param _vesting uint64 The vesting period.
   */
  function grantVestedTokens(
    address _to,
    uint256 _value,
    uint64 _start,
    uint64 _cliff,
    uint64 _vesting,
    bool _revokable,
    bool _burnsOnRevoke
  ) public {

    // Check for date inconsistencies that may cause unexpected behavior
    if (_cliff < _start || _vesting < _cliff) {
      throw;
    }

    if (tokenGrantsCount(_to) > MAX_GRANTS_PER_ADDRESS) throw;   // To prevent a user being spammed and have his balance locked (out of gas attack when calculating vesting).

    uint count = grants[_to].push(
                TokenGrant(
                  _revokable ? msg.sender : 0, // avoid storing an extra 20 bytes when it is non-revokable
                  _value,
                  _cliff,
                  _vesting,
                  _start,
                  _revokable,
                  _burnsOnRevoke
                )
              );

    transfer(_to, _value);

    NewTokenGrant(msg.sender, _to, _value, count - 1);
  }

  /**
   * @dev Revoke the grant of tokens of a specifed address.
   * @param _holder The address which will have its tokens revoked.
   * @param _grantId The id of the token grant.
   */
  function revokeTokenGrant(address _holder, uint _grantId) public {
    TokenGrant grant = grants[_holder][_grantId];

    if (!grant.revokable) { // Check if grant was revokable
      throw;
    }

    if (grant.granter != msg.sender) { // Only granter can revoke it
      throw;
    }

    address receiver = grant.burnsOnRevoke ? 0xdead : msg.sender;

    uint256 nonVested = nonVestedTokens(grant, uint64(now));

    // remove grant from array
    delete grants[_holder][_grantId];
    grants[_holder][_grantId] = grants[_holder][grants[_holder].length.sub(1)];
    grants[_holder].length -= 1;

    balances[receiver] = balances[receiver].add(nonVested);
    balances[_holder] = balances[_holder].sub(nonVested);

    Transfer(_holder, receiver, nonVested);
  }


  /**
   * @dev Calculate the total amount of transferable tokens of a holder at a given time
   * @param holder address The address of the holder
   * @param time uint64 The specific time.
   * @return An uint representing a holder's total amount of transferable tokens.
   */
  function transferableTokens(address holder, uint64 time) constant public returns (uint256) {
    uint256 grantIndex = tokenGrantsCount(holder);

    if (grantIndex == 0) return balanceOf(holder); // shortcut for holder without grants

    // Iterate through all the grants the holder has, and add all non-vested tokens
    uint256 nonVested = 0;
    for (uint256 i = 0; i < grantIndex; i++) {
      nonVested = SafeMath.add(nonVested, nonVestedTokens(grants[holder][i], time));
    }

    // Balance - totalNonVested is the amount of tokens a holder can transfer at any given time
    uint256 vestedTransferable = SafeMath.sub(balanceOf(holder), nonVested);

    // Return the minimum of how many vested can transfer and other value
    // in case there are other limiting transferability factors (default is balanceOf)
    return SafeMath.min256(vestedTransferable, super.transferableTokens(holder, time));
  }

  /**
   * @dev Check the amount of grants that an address has.
   * @param _holder The holder of the grants.
   * @return A uint representing the total amount of grants.
   */
  function tokenGrantsCount(address _holder) constant returns (uint index) {
    return grants[_holder].length;
  }

  /**
   * @dev Calculate amount of vested tokens at a specifc time.
   * @param tokens uint256 The amount of tokens grantted.
   * @param time uint64 The time to be checked
   * @param start uint64 A time representing the begining of the grant
   * @param cliff uint64 The cliff period.
   * @param vesting uint64 The vesting period.
   * @return An uint representing the amount of vested tokensof a specif grant.
   *  transferableTokens
   *   |                         _/--------   vestedTokens rect
   *   |                       _/
   *   |                     _/
   *   |                   _/
   *   |                 _/
   *   |                /
   *   |              .|
   *   |            .  |
   *   |          .    |
   *   |        .      |
   *   |      .        |
   *   |    .          |
   *   +===+===========+---------+----------> time
   *      Start       Clift    Vesting
   */
  function calculateVestedTokens(
    uint256 tokens,
    uint256 time,
    uint256 start,
    uint256 cliff,
    uint256 vesting) constant returns (uint256)
    {
      // Shortcuts for before cliff and after vesting cases.
      if (time < cliff) return 0;
      if (time >= vesting) return tokens;

      // Interpolate all vested tokens.
      // As before cliff the shortcut returns 0, we can use just calculate a value
      // in the vesting rect (as shown in above's figure)

      // vestedTokens = tokens * (time - start) / (vesting - start)
      uint256 vestedTokens = SafeMath.div(
                                    SafeMath.mul(
                                      tokens,
                                      SafeMath.sub(time, start)
                                      ),
                                    SafeMath.sub(vesting, start)
                                    );

      return vestedTokens;
  }

  /**
   * @dev Get all information about a specifc grant.
   * @param _holder The address which will have its tokens revoked.
   * @param _grantId The id of the token grant.
   * @return Returns all the values that represent a TokenGrant(address, value, start, cliff,
   * revokability, burnsOnRevoke, and vesting) plus the vested value at the current time.
   */
  function tokenGrant(address _holder, uint _grantId) constant returns (address granter, uint256 value, uint256 vested, uint64 start, uint64 cliff, uint64 vesting, bool revokable, bool burnsOnRevoke) {
    TokenGrant grant = grants[_holder][_grantId];

    granter = grant.granter;
    value = grant.value;
    start = grant.start;
    cliff = grant.cliff;
    vesting = grant.vesting;
    revokable = grant.revokable;
    burnsOnRevoke = grant.burnsOnRevoke;

    vested = vestedTokens(grant, uint64(now));
  }

  /**
   * @dev Get the amount of vested tokens at a specific time.
   * @param grant TokenGrant The grant to be checked.
   * @param time The time to be checked
   * @return An uint representing the amount of vested tokens of a specific grant at a specific time.
   */
  function vestedTokens(TokenGrant grant, uint64 time) private constant returns (uint256) {
    return calculateVestedTokens(
      grant.value,
      uint256(time),
      uint256(grant.start),
      uint256(grant.cliff),
      uint256(grant.vesting)
    );
  }

  /**
   * @dev Calculate the amount of non vested tokens at a specific time.
   * @param grant TokenGrant The grant to be checked.
   * @param time uint64 The time to be checked
   * @return An uint representing the amount of non vested tokens of a specifc grant on the 
   * passed time frame.
   */
  function nonVestedTokens(TokenGrant grant, uint64 time) private constant returns (uint256) {
    return grant.value.sub(vestedTokens(grant, time));
  }

  /**
   * @dev Calculate the date when the holder can trasfer all its tokens
   * @param holder address The address of the holder
   * @return An uint representing the date of the last transferable tokens.
   */
  function lastTokenIsTransferableDate(address holder) constant public returns (uint64 date) {
    date = uint64(now);
    uint256 grantIndex = grants[holder].length;
    for (uint256 i = 0; i < grantIndex; i++) {
      date = SafeMath.max64(grants[holder][i].vesting, date);
    }
  }
}

contract CDTToken is VestedToken {
	using SafeMath for uint;

	//FIELDS
	//CONSTANTS
	uint public constant decimals = 18;  // 18 decimal places, the same as ETH.
	string public constant name = "CoinDash Token";
  	string public constant symbol = "CDT";

	//ASSIGNED IN INITIALIZATION
	address public creator; //address of the account which may mint new tokens

	//May only be called by the owner address
	modifier only_owner() {
		if (msg.sender != creator) throw;
		_;
	}


	// Initialization contract assigns address of crowdfund contract and end time.
	function CDTToken(uint supply) {
		totalSupply = supply;
		creator = msg.sender;
		
		balances[msg.sender] = supply;

		MAX_GRANTS_PER_ADDRESS = 2;
	}

	// Fallback function throws when called.
	function() {
		throw;
	}

	function vestedBalanceOf(address _owner) constant returns (uint balance) {
	    return transferableTokens(_owner, uint64(now));
    }

        //failsafe drain
	function drain()
		only_owner
	{
		if (!creator.send(this.balance)) throw;
	}
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"tokenGrantsCount","outputs":[{"name":"index","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"vestedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"grants","outputs":[{"name":"granter","type":"address"},{"name":"value","type":"uint256"},{"name":"cliff","type":"uint64"},{"name":"vesting","type":"uint64"},{"name":"start","type":"uint64"},{"name":"revokable","type":"bool"},{"name":"burnsOnRevoke","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"},{"name":"_grantId","type":"uint256"}],"name":"tokenGrant","outputs":[{"name":"granter","type":"address"},{"name":"value","type":"uint256"},{"name":"vested","type":"uint256"},{"name":"start","type":"uint64"},{"name":"cliff","type":"uint64"},{"name":"vesting","type":"uint64"},{"name":"revokable","type":"bool"},{"name":"burnsOnRevoke","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"holder","type":"address"}],"name":"lastTokenIsTransferableDate","outputs":[{"name":"date","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_start","type":"uint64"},{"name":"_cliff","type":"uint64"},{"name":"_vesting","type":"uint64"},{"name":"_revokable","type":"bool"},{"name":"_burnsOnRevoke","type":"bool"}],"name":"grantVestedTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"drain","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"holder","type":"address"},{"name":"time","type":"uint64"}],"name":"transferableTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"tokens","type":"uint256"},{"name":"time","type":"uint256"},{"name":"start","type":"uint256"},{"name":"cliff","type":"uint256"},{"name":"vesting","type":"uint256"}],"name":"calculateVestedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"_grantId","type":"uint256"}],"name":"revokeTokenGrant","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"supply","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":false,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"grantId","type":"uint256"}],"name":"NewTokenGrant","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
60606040526014600355346100005760405160208061172f83398101604052515b600081815560058054600160a060020a03191633600160a060020a0316908117909155815260016020526040902081905560026003555b505b6116c7806100686000396000f300606060405236156100f65763ffffffff60e060020a60003504166302a72a4c811461010857806302d05d3f1461013357806306fdde031461015c578063095ea7b3146101e95780630e2d1a2a1461020757806318160ddd1461023257806323b872dd146102515780632c71e60a14610275578063313ce567146102e2578063600e85b7146103015780636c182e991461037757806370a08231146103ac57806395d89b41146103d75780639754a4d9146104645780639890220b146104a4578063a9059cbb146104b3578063d347c205146104d1578063dd62ed3e14610508578063df3c211b14610539578063eb944e4c14610567575b34610000576101065b610000565b565b005b3461000057610121600160a060020a0360043516610585565b60408051918252519081900360200190f35b34610000576101406105a4565b60408051600160a060020a039092168252519081900360200190f35b34610000576101696105b3565b6040805160208082528351818301528351919283929083019185019080838382156101af575b8051825260208311156101af57601f19909201916020918201910161018f565b505050905090810190601f1680156101db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610106600160a060020a03600435166024356105ea565b005b3461000057610121600160a060020a0360043516610689565b60408051918252519081900360200190f35b346100005761012161069d565b60408051918252519081900360200190f35b3461000057610106600160a060020a03600435811690602435166044356106a3565b005b3461000057610291600160a060020a03600435166024356106cf565b60408051600160a060020a03909816885260208801969096526001604060020a039485168787015292841660608701529216608085015290151560a0840152151560c0830152519081900360e00190f35b346100005761012161074c565b60408051918252519081900360200190f35b346100005761031d600160a060020a0360043516602435610751565b60408051600160a060020a0390991689526020890197909752878701959095526001604060020a039384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b3461000057610390600160a060020a0360043516610960565b604080516001604060020a039092168252519081900360200190f35b3461000057610121600160a060020a03600435166109eb565b60408051918252519081900360200190f35b3461000057610169610a0a565b6040805160208082528351818301528351919283929083019185019080838382156101af575b8051825260208311156101af57601f19909201916020918201910161018f565b505050905090810190601f1680156101db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610106600160a060020a03600435166024356001604060020a036044358116906064358116906084351660a435151560c4351515610a41565b005b3461000057610106610cdd565b005b3461000057610106600160a060020a0360043516602435610d31565b005b3461000057610121600160a060020a03600435166001604060020a0360243516610d5b565b60408051918252519081900360200190f35b3461000057610121600160a060020a0360043581169060243516610ea5565b60408051918252519081900360200190f35b3461000057610121600435602435604435606435608435610ed2565b60408051918252519081900360200190f35b3461000057610106600160a060020a0360043516602435610f2b565b005b600160a060020a0381166000908152600460205260409020545b919050565b600554600160a060020a031681565b60408051808201909152600e81527f436f696e4461736820546f6b656e000000000000000000000000000000000000602082015281565b801580159061061d5750600160a060020a0333811660009081526002602090815260408083209386168352929052205415155b1561062757610000565b600160a060020a03338116600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5050565b60006106958242610d5b565b90505b919050565b60005481565b82816106af8242610d5b565b8111156106bb57610000565b6106c6858585611350565b5b5b5050505050565b600460205281600052604060002081815481101561000057906000526020600020906003020160005b5080546001820154600290920154600160a060020a0390911693509091506001604060020a0380821691604060020a8104821691608060020a8204169060ff60c060020a820481169160c860020a90041687565b601281565b600060006000600060006000600060006000600460008c600160a060020a0316600160a060020a031681526020019081526020016000208a815481101561000057906000526020600020906003020160005b5090508060000160009054906101000a9004600160a060020a03169850806001015497508060020160109054906101000a90046001604060020a031695508060020160009054906101000a90046001604060020a031694508060020160089054906101000a90046001604060020a031693508060020160189054906101000a900460ff1692508060020160199054906101000a900460ff16915061094f8160e060405190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a03168152602001600182015481526020016002820160009054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820160089054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820160109054906101000a90046001604060020a03166001604060020a03166001604060020a031681526020016002820160189054906101000a900460ff161515151581526020016002820160199054906101000a900460ff16151515158152505042611473565b96505b509295985092959890939650565b600160a060020a03811660009081526004602052604081205442915b818110156109e357600160a060020a038416600090815260046020526040902080546109d89190839081101561000057906000526020600020906003020160005b5060020154604060020a90046001604060020a0316846114bf565b92505b60010161097c565b5b5050919050565b600160a060020a0381166000908152600160205260409020545b919050565b60408051808201909152600381527f4344540000000000000000000000000000000000000000000000000000000000602082015281565b6000856001604060020a0316856001604060020a03161080610a745750846001604060020a0316846001604060020a0316105b15610a7e57610000565b600354610a8a89610585565b1115610a9557610000565b600160a060020a03881660009081526004602052604090208054600181018083558281838015829011610b1857600302816003028360005260206000209182019101610b1891905b80821115610b14578054600160a060020a031916815560006001820155600281018054600160d060020a0319169055600301610add565b5090565b5b505050916000526020600020906003020160005b60e06040519081016040528087610b45576000610b47565b335b600160a060020a03908116825260208083018e90526001604060020a038c81166040808601919091528c82166060808701919091528f83166080808801919091528d151560a0808901919091528d151560c09889015288518b54600160a060020a0319169716969096178a559387015160018a01559086015160029098018054918701519387015194870151969095015167ffffffffffffffff19909116978216979097176fffffffffffffffff00000000000000001916604060020a928216929092029190911777ffffffffffffffff000000000000000000000000000000001916608060020a92909116919091021760c060020a60ff02191660c060020a921515929092029190911760c860020a60ff02191660c860020a9315159390930292909217909155509050610c7c8888610d31565b87600160a060020a031633600160a060020a03167ff9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb8960018503604051808381526020018281526020019250505060405180910390a35b5050505050505050565b60055433600160a060020a03908116911614610cf857610000565b600554604051600160a060020a039182169130163180156108fc02916000818181858888f19350505050151561010457610000565b5b5b565b3381610d3d8242610d5b565b811115610d4957610000565b610d5384846114ec565b5b5b50505050565b60006000600060006000610d6e87610585565b9350831515610d8757610d80876109eb565b9450610e9b565b60009250600091505b83821015610e7157610e6383610e5e600460008b600160a060020a0316600160a060020a0316815260200190815260200160002085815481101561000057906000526020600020906003020160005b506040805160e0810182528254600160a060020a03168152600183015460208201526002909201546001604060020a0380821692840192909252604060020a810482166060840152608060020a8104909116608083015260ff60c060020a82048116151560a084015260c860020a90910416151560c0820152896115b9565b6115e2565b92505b600190910190610d90565b610e83610e7d886109eb565b846115fe565b9050610e9881610e938989611617565b61162b565b94505b5050505092915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b6000600083861015610ee75760009150610f21565b828610610ef657869150610f21565b610f1b610f0c88610f0789896115fe565b611645565b610f1685886115fe565b611671565b90508091505b5095945050505050565b600160a060020a0382166000908152600460205260408120805482918291859081101561000057906000526020600020906003020160005b50600281015490935060c060020a900460ff161515610f8157610000565b825433600160a060020a03908116911614610f9b57610000565b600283015460c860020a900460ff16610fb45733610fb8565b61dead5b6040805160e0810182528554600160a060020a031681526001860154602082015260028601546001604060020a0380821693830193909352604060020a810483166060830152608060020a8104909216608082015260ff60c060020a83048116151560a083015260c860020a909204909116151560c082015290925061103e90426115b9565b600160a060020a0386166000908152600460205260409020805491925090859081101561000057906000526020600020906003020160005b508054600160a060020a03191681556000600180830182905560029092018054600160d060020a0319169055600160a060020a0387168152600460205260409020805490916110cb919063ffffffff6115fe16565b815481101561000057906000526020600020906003020160005b50600160a060020a03861660009081526004602052604090208054869081101561000057906000526020600020906003020160005b5081548154600160a060020a031916600160a060020a03918216178255600180840154908301556002928301805493909201805467ffffffffffffffff19166001604060020a03948516178082558354604060020a908190048616026fffffffffffffffff000000000000000019909116178082558354608060020a9081900490951690940277ffffffffffffffff000000000000000000000000000000001990941693909317808455825460ff60c060020a918290048116151590910260c060020a60ff021990921691909117808555925460c860020a9081900490911615150260c860020a60ff021990921691909117909155851660009081526004602052604090208054600019810180835591908290801582901161128c5760030281600302836000526020600020918201910161128c91905b80821115610b14578054600160a060020a031916815560006001820155600281018054600160d060020a0319169055600301610add565b5090565b5b505050600160a060020a0383166000908152600160205260409020546112ba91508263ffffffff6115e216565b600160a060020a0380841660009081526001602052604080822093909355908716815220546112ef908263ffffffff6115fe16565b600160a060020a0380871660008181526001602090815260409182902094909455805185815290519286169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35b5050505050565b60006060606436101561136257610000565b600160a060020a0380861660009081526002602090815260408083203385168452825280832054938816835260019091529020549092506113a9908463ffffffff6115e216565b600160a060020a0380861660009081526001602052604080822093909355908716815220546113de908463ffffffff6115fe16565b600160a060020a038616600090815260016020526040902055611407828463ffffffff6115fe16565b600160a060020a038087166000818152600260209081526040808320338616845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35b5b5050505050565b60006114b68360200151836001604060020a031685608001516001604060020a031686604001516001604060020a031687606001516001604060020a0316610ed2565b90505b92915050565b6000816001604060020a0316836001604060020a031610156114e157816114b6565b825b90505b92915050565b604060443610156114fc57610000565b600160a060020a033316600090815260016020526040902054611525908363ffffffff6115fe16565b600160a060020a03338116600090815260016020526040808220939093559085168152205461155a908363ffffffff6115e216565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5b505050565b60006114b66115c88484611473565b60208501519063ffffffff6115fe16565b90505b92915050565b60008282016115f38482101561168b565b8091505b5092915050565b600061160c8383111561168b565b508082035b92915050565b60006114b6836109eb565b90505b92915050565b60008183106114e157816114b6565b825b90505b92915050565b60008282026115f3841580611661575083858381156100005704145b61168b565b8091505b5092915050565b6000600082848115610000570490508091505b5092915050565b80151561169757610000565b5b505600a165627a7a72305820cda948482ca91b403feb47c3d04aa6b66f868fe80ea247b0dbf908d9ad4e61f300290000000000000000000000000000000000000000033b2e3c9fd0803ce8000000

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000


   Swarm Source:
bzzr://cda948482ca91b403feb47c3d04aa6b66f868fe80ea247b0dbf908d9ad4e61f3

 

View All
Block Age transaction Difficulty GasUsed 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.