ETH Price: $1,979.75 (-5.00%)

Contract

0x554C20B7c486beeE439277b4540A434566dC4C02
 

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer242819062026-01-21 8:16:1144 days ago1768983371IN
Decision Token
0 ETH0.000004490.14025904
Transfer242817302026-01-21 7:40:5944 days ago1768981259IN
Decision Token
0 ETH0.00000450.09124021
Transfer239941412025-12-12 4:19:3584 days ago1765513175IN
Decision Token
0 ETH0.000114963.10360175
Transfer239115982025-11-30 12:52:2396 days ago1764507143IN
Decision Token
0 ETH0.000164553.03927216
Transfer238886842025-11-27 7:52:5999 days ago1764229979IN
Decision Token
0 ETH0.000098463.05271362
Transfer234201152025-09-22 17:40:11165 days ago1758562811IN
Decision Token
0 ETH0.000054421.69996752
Transfer227924442025-06-27 1:18:47253 days ago1750987127IN
Decision Token
0 ETH0.0005223821.59317497
Transfer227924122025-06-27 1:12:23253 days ago1750986743IN
Decision Token
0 ETH0.000021050.87049461
Approve222742432025-04-15 11:59:59325 days ago1744718399IN
Decision Token
0 ETH0.000010920.4178202
Transfer212701442024-11-26 6:30:11465 days ago1732602611IN
Decision Token
0 ETH0.000298028.04257515
Transfer210461532024-10-26 0:15:23497 days ago1729901723IN
Decision Token
0 ETH0.0003505114.48886565
Transfer206719132024-09-03 18:42:11549 days ago1725388931IN
Decision Token
0 ETH0.000088381.79115357
Transfer206718552024-09-03 18:30:35549 days ago1725388235IN
Decision Token
0 ETH0.000135752.75120542
Transfer204900032024-08-09 8:59:35574 days ago1723193975IN
Decision Token
0 ETH0.000185725.01691728
Transfer204761792024-08-07 10:44:47576 days ago1723027487IN
Decision Token
0 ETH0.000203743.76214235
Transfer204756212024-08-07 8:52:47576 days ago1723020767IN
Decision Token
0 ETH0.000148224
Transfer203250332024-07-17 8:24:11597 days ago1721204651IN
Decision Token
0 ETH0.00048813.17356748
Transfer203066302024-07-14 18:47:35600 days ago1720982855IN
Decision Token
0 ETH0.000245974.9824056
Transfer202043242024-06-30 11:52:35614 days ago1719748355IN
Decision Token
0 ETH0.000221844.09740235
Transfer201981292024-06-29 15:07:11615 days ago1719673631IN
Decision Token
0 ETH0.000107653.36010751
Transfer200028682024-06-02 8:13:23642 days ago1717316003IN
Decision Token
0 ETH0.000263615.34232394
Transfer198180842024-05-07 12:07:23668 days ago1715083643IN
Decision Token
0 ETH0.000371287.5244357
Transfer198174752024-05-07 10:04:35668 days ago1715076275IN
Decision Token
0 ETH0.000374477.58897895
Transfer197171932024-04-23 9:26:47682 days ago1713864407IN
Decision Token
0 ETH0.000500779.25101169
Transfer193187332024-02-27 11:57:11738 days ago1709035031IN
Decision Token
0 ETH0.0013089140.88324541
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer43379632017-10-05 3:46:543074 days ago1507175214  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:
DecisionToken

Compiler Version
v0.4.17+commit.bdeb9e52

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-11-11
*/

pragma solidity ^0.4.15;


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

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

  function add(uint256 a, uint256 b) internal constant 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;


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

}


/**
 * @title Claimable
 * @dev Extension for the Ownable contract, where the ownership needs to be claimed.
 * This allows the new owner to accept the transfer.
 */
contract Claimable is Ownable {
  address public pendingOwner;

  /**
   * @dev Modifier throws if called by any account other than the pendingOwner.
   */
  modifier onlyPendingOwner() {
    require(msg.sender == pendingOwner);
    _;
  }

  /**
   * @dev Allows the current owner to set the pendingOwner address.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner {
    pendingOwner = newOwner;
  }

  /**
   * @dev Allows the pendingOwner address to finalize the transfer.
   */
  function claimOwnership() onlyPendingOwner {
    owner = pendingOwner;
    pendingOwner = 0x0;
  }
}

/**
 * @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 returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 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 (uint256);
  function transferFrom(address from, address to, uint256 value) returns (bool);
  function approve(address spender, uint256 value) returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}


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

  mapping(address => uint256) balances;

  /**
  * @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) returns (bool) {
    require(_to != address(0));

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_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 returns (uint256 balance) {
    return balances[_owner];
  }

}


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard 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 ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) 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 uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
    require(_to != address(0));

    var _allowance = allowed[_from][msg.sender];

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

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

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf 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, uint256 _value) returns (bool) {

    // 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;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that 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 uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval (address _spender, uint _addedValue)
    returns (bool success) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval (address _spender, uint _subtractedValue)
    returns (bool success) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}


/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */

contract MintableToken is StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();

  bool public mintingFinished = false;


  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint returns (bool) {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    Transfer(0x0, _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner returns (bool) {
    mintingFinished = true;
    MintFinished();
    return true;
  }
}

/*
* Horizon State Decision Token Contract
*
* Version 0.9
*
* Author Nimo Naamani
*
* This smart contract code is Copyright 2017 Horizon State (https://Horizonstate.com)
*
* Licensed under the Apache License, version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*
* @title Horizon State Token
* @dev ERC20 Decision Token (HST)
* @author Nimo Naamani
*
* HST tokens have 18 decimal places. The smallest meaningful (and transferable)
* unit is therefore 0.000000000000000001 HST. This unit is called a 'danni'.
*
* 1 HST = 1 * 10**18 = 1000000000000000000 dannis.
*
* Maximum total HST supply is 1 Billion.
* This is equivalent to 1000000000 * 10**18 = 1e27 dannis.
*
* HST are mintable on demand (as they are being purchased), which means that
* 1 Billion is the maximum.
*/

// @title The Horizon State Decision Token (HST)
contract DecisionToken is MintableToken, Claimable {

  using SafeMath for uint256;

  // Name to appear in ERC20 wallets
  string public constant name = "Decision Token";

  // Symbol for the Decision Token to appear in ERC20 wallets
  string public constant symbol = "HST";

  // Version of the source contract
  string public constant version = "1.0";

  // Number of decimals for token display
  uint8 public constant decimals = 18;

  // Release timestamp. As part of the contract, tokens can only be transfered
  // 10 days after this trigger is set
  uint256 public triggerTime = 0;

  // @title modifier to allow actions only when the token can be released
  modifier onlyWhenReleased() {
    require(now >= triggerTime);
    _;
  }


  // @dev Constructor for the DecisionToken.
  // Initialise the trigger (the sale contract will init this to the expected end time)
  function DecisionToken() MintableToken() {
    owner = msg.sender;
  }

  // @title Transfer tokens.
  // @dev This contract overrides the transfer() function to only work when released
  function transfer(address _to, uint256 _value) onlyWhenReleased returns (bool) {
    return super.transfer(_to, _value);
  }

  // @title Allow transfers from
  // @dev This contract overrides the transferFrom() function to only work when released
  function transferFrom(address _from, address _to, uint256 _value) onlyWhenReleased returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

  // @title finish minting of the token.
  // @dev This contract overrides the finishMinting function to trigger the token lock countdown
  function finishMinting() onlyOwner returns (bool) {
    require(triggerTime==0);
    triggerTime = now.add(10 days);
    return super.finishMinting();
  }
}

/**
* Horizon State Token Sale Contract
*
* Version 0.9
*
* @author Nimo Naamani
*
* This smart contract code is Copyright 2017 Horizon State (https://Horizonstate.com)
*
* Licensed under the Apache License, version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*
*/

// @title The DC Token Sale contract
// @dev A crowdsale contract with stages of tokens-per-eth based on time elapsed
// Capped by maximum number of tokens; Time constrained
contract DecisionTokenSale is Claimable {
  using SafeMath for uint256;

  // Start timestamp where investments are open to the public.
  // Before this timestamp - only whitelisted addresses allowed to buy.
  uint256 public startTime;

  // End time. investments can only go up to this timestamp.
  // Note that the sale can end before that, if the token cap is reached.
  uint256 public endTime;

  // Presale (whitelist only) buyers receive this many tokens per ETH
  uint256 public constant presaleTokenRate = 3750;

  // 1st day buyers receive this many tokens per ETH
  uint256 public constant earlyBirdTokenRate = 3500;

  // Day 2-8 buyers receive this many tokens per ETH
  uint256 public constant secondStageTokenRate = 3250;

  // Day 9-16 buyers receive this many tokens per ETH
  uint256 public constant thirdStageTokenRate = 3000;

  // Maximum total number of tokens ever created, taking into account 18 decimals.
  uint256 public constant tokenCap =  10**9 * 10**18;

  // Initial HorizonState allocation (reserve), taking into account 18 decimals.
  uint256 public constant tokenReserve = 4 * (10**8) * 10**18;

  // The Decision Token that is sold with this token sale
  DecisionToken public token;

  // The address where the funds are kept
  address public wallet;

  // Holds the addresses that are whitelisted to participate in the presale.
  // Sales to these addresses are allowed before saleStart
  mapping (address => bool) whiteListedForPresale;

  // @title Event for token purchase logging
  event TokenPurchase(address indexed purchaser, uint256 value, uint256 amount);

  // @title Event to log user added to whitelist
  event LogUserAddedToWhiteList(address indexed user);

  //@title Event to log user removed from whitelist
  event LogUserUserRemovedFromWhiteList(address indexed user);


  // @title Constructor
  // @param _startTime: A timestamp for when the sale is to start.
  // @param _wallet - The wallet where the token sale proceeds are to be stored
  function DecisionTokenSale(uint256 _startTime, address _wallet) {
    require(_startTime >= now);
    require(_wallet != 0x0);
    startTime = _startTime;
    endTime = startTime.add(14 days);
    wallet = _wallet;

    // Create the token contract itself.
    token = createTokenContract();

    // Mint the reserve tokens to the owner of the sale contract.
    token.mint(owner, tokenReserve);
  }

  // @title Create the token contract from this sale
  // @dev Creates the contract for token to be sold.
  function createTokenContract() internal returns (DecisionToken) {
    return new DecisionToken();
  }

  // @title Buy Decision Tokens
  // @dev Use this function to buy tokens through the sale
  function buyTokens() payable {
    require(msg.sender != 0x0);
    require(msg.value != 0);
    require(whiteListedForPresale[msg.sender] || now >= startTime);
    require(!hasEnded());

    // Calculate token amount to be created
    uint256 tokens = calculateTokenAmount(msg.value);

    if (token.totalSupply().add(tokens) > tokenCap) {
      revert();
    }

    // Add the new tokens to the beneficiary
    token.mint(msg.sender, tokens);

    // Notify that a token purchase was performed
    TokenPurchase(msg.sender, msg.value, tokens);

    // Put the funds in the token sale wallet
    wallet.transfer(msg.value);
  }

  // @dev This is fallback function can be used to buy tokens
  function () payable {
    buyTokens();
  }

  // @title Calculate how many tokens per Ether
  // The token sale has different rates based on time of purchase, as per the token
  // sale whitepaper and Horizon State's Token Sale page.
  // Presale:  : 3750 tokens per Ether
  // Day 1     : 3500 tokens per Ether
  // Days 2-8  : 3250 tokens per Ether
  // Days 9-16 : 3000 tokens per Ether
  //
  // A note for calculation: As the number of decimals on the token is 18, which
  // is identical to the wei per eth - the calculation performed here can use the
  // number of tokens per ETH with no further modification.
  //
  // @param _weiAmount : How much wei the buyer wants to spend on tokens
  // @return the number of tokens for this purchase.
  function calculateTokenAmount(uint256 _weiAmount) internal constant returns (uint256) {
    if (now >= startTime + 8 days) {
      return _weiAmount.mul(thirdStageTokenRate);
    }
    if (now >= startTime + 1 days) {
      return _weiAmount.mul(secondStageTokenRate);
    }
    if (now >= startTime) {
      return _weiAmount.mul(earlyBirdTokenRate);
    }
    return _weiAmount.mul(presaleTokenRate);
  }

  // @title Check whether this sale has ended.
  // @dev This is a utility function to help consumers figure out whether the sale
  // has already ended.
  // The sale is considered done when the token's minting finished, or when the current
  // time has passed the sale's end time
  // @return true if crowdsale event has ended
  function hasEnded() public constant returns (bool) {
    return now > endTime;
  }

  // @title White list a buyer for the presale.
  // @dev Allow the owner of this contract to whitelist a buyer.
  // Whitelisted buyers may buy in the presale, i.e before the sale starts.
  // @param _buyer : The buyer address to whitelist
  function whiteListAddress(address _buyer) onlyOwner {
    require(_buyer != 0x0);
    whiteListedForPresale[_buyer] = true;
    LogUserAddedToWhiteList(_buyer);
  }

  // @title Whitelist an list of buyers for the presale
  // @dev Allow the owner of this contract to whitelist multiple buyers in batch.
  // Whitelisted buyers may buy in the presale, i.e before the sale starts.
  // @param _buyers : The buyer addresses to whitelist
  function addWhiteListedAddressesInBatch(address[] _buyers) onlyOwner {
    require(_buyers.length < 1000);
    for (uint i = 0; i < _buyers.length; i++) {
      whiteListAddress(_buyers[i]);
    }
  }

  // @title Remove a buyer from the whitelist.
  // @dev Allow the owner of this contract to remove a buyer from the white list.
  // @param _buyer : The buyer address to remove from the whitelist
  function removeWhiteListedAddress(address _buyer) onlyOwner {
    whiteListedForPresale[_buyer] = false;
  }

  // @title Terminate the contract
  // @dev Allow the owner of this contract to terminate it
  // It also transfers the token ownership to the owner of the sale contract.
  function destroy() onlyOwner {
    token.finishMinting();
    token.transferOwnership(msg.sender);
    selfdestruct(owner);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"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":"","type":"bool"}],"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":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"triggerTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"finishMinting","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":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"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":true,"inputs":[],"name":"pendingOwner","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"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","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"}]

60606040526003805460a060020a60ff02191690556000600555341561002457600080fd5b60038054600160a060020a033316600160a060020a03199182168117909116179055610c89806100556000396000f3006060604052361561010f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461011457806306fdde031461013b578063095ea7b3146101c557806318160ddd146101e757806323b872dd1461020c578063313ce56714610234578063370fb47b1461025d57806340c10f19146102705780634e71e0c81461029257806354fd4d50146102a757806366188463146102ba57806370a08231146102dc5780637d64bcb4146102fb5780638da5cb5b1461030e57806395d89b411461033d578063a9059cbb14610350578063d73dd62314610372578063dd62ed3e14610394578063e30c3978146103b9578063f2fde38b146103cc575b600080fd5b341561011f57600080fd5b6101276103eb565b604051901515815260200160405180910390f35b341561014657600080fd5b61014e61040c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018a578082015183820152602001610172565b50505050905090810190601f1680156101b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d057600080fd5b610127600160a060020a0360043516602435610443565b34156101f257600080fd5b6101fa6104e9565b60405190815260200160405180910390f35b341561021757600080fd5b610127600160a060020a03600435811690602435166044356104ef565b341561023f57600080fd5b610247610514565b60405160ff909116815260200160405180910390f35b341561026857600080fd5b6101fa610519565b341561027b57600080fd5b610127600160a060020a036004351660243561051f565b341561029d57600080fd5b6102a561063d565b005b34156102b257600080fd5b61014e61068c565b34156102c557600080fd5b610127600160a060020a03600435166024356106c3565b34156102e757600080fd5b6101fa600160a060020a03600435166107bd565b341561030657600080fd5b6101276107d8565b341561031957600080fd5b610321610826565b604051600160a060020a03909116815260200160405180910390f35b341561034857600080fd5b61014e610835565b341561035b57600080fd5b610127600160a060020a036004351660243561086c565b341561037d57600080fd5b610127600160a060020a036004351660243561088f565b341561039f57600080fd5b6101fa600160a060020a0360043581169060243516610933565b34156103c457600080fd5b61032161095e565b34156103d757600080fd5b6102a5600160a060020a036004351661096d565b60035474010000000000000000000000000000000000000000900460ff1681565b60408051908101604052600e81527f4465636973696f6e20546f6b656e000000000000000000000000000000000000602082015281565b60008115806104755750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561048057600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b60055460009042101561050157600080fd5b61050c8484846109b7565b949350505050565b601281565b60055481565b60035460009033600160a060020a0390811691161461053d57600080fd5b60035474010000000000000000000000000000000000000000900460ff161561056557600080fd5b600054610578908363ffffffff610ae116565b6000908155600160a060020a0384168152600160205260409020546105a3908363ffffffff610ae116565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a282600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b60045433600160a060020a0390811691161461065857600080fd5b600480546003805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60408051908101604052600381527f312e300000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561072057600160a060020a033381166000908152600260209081526040808320938816835292905290812055610757565b610730818463ffffffff610af016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a039081169116146107f657600080fd5b6005541561080357600080fd5b61081642620d2f0063ffffffff610ae116565b600555610821610b02565b905090565b600354600160a060020a031681565b60408051908101604052600381527f4853540000000000000000000000000000000000000000000000000000000000602082015281565b60055460009042101561087e57600080fd5b6108888383610b87565b9392505050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546108c7908363ffffffff610ae116565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600454600160a060020a031681565b60035433600160a060020a0390811691161461098857600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160a060020a03841615156109cf57600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610a15908463ffffffff610af016565b600160a060020a038087166000908152600160205260408082209390935590861681522054610a4a908463ffffffff610ae116565b600160a060020a038516600090815260016020526040902055610a73818463ffffffff610af016565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b60008282018381101561088857fe5b600082821115610afc57fe5b50900390565b60035460009033600160a060020a03908116911614610b2057600080fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b6000600160a060020a0383161515610b9e57600080fd5b600160a060020a033316600090815260016020526040902054610bc7908363ffffffff610af016565b600160a060020a033381166000908152600160205260408082209390935590851681522054610bfc908363ffffffff610ae116565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001929150505600a165627a7a72305820e8208f6c68c613e42c61b843ac4b86405c55875765838591fff54279e7eff6080029

Deployed Bytecode

0x6060604052361561010f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461011457806306fdde031461013b578063095ea7b3146101c557806318160ddd146101e757806323b872dd1461020c578063313ce56714610234578063370fb47b1461025d57806340c10f19146102705780634e71e0c81461029257806354fd4d50146102a757806366188463146102ba57806370a08231146102dc5780637d64bcb4146102fb5780638da5cb5b1461030e57806395d89b411461033d578063a9059cbb14610350578063d73dd62314610372578063dd62ed3e14610394578063e30c3978146103b9578063f2fde38b146103cc575b600080fd5b341561011f57600080fd5b6101276103eb565b604051901515815260200160405180910390f35b341561014657600080fd5b61014e61040c565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018a578082015183820152602001610172565b50505050905090810190601f1680156101b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d057600080fd5b610127600160a060020a0360043516602435610443565b34156101f257600080fd5b6101fa6104e9565b60405190815260200160405180910390f35b341561021757600080fd5b610127600160a060020a03600435811690602435166044356104ef565b341561023f57600080fd5b610247610514565b60405160ff909116815260200160405180910390f35b341561026857600080fd5b6101fa610519565b341561027b57600080fd5b610127600160a060020a036004351660243561051f565b341561029d57600080fd5b6102a561063d565b005b34156102b257600080fd5b61014e61068c565b34156102c557600080fd5b610127600160a060020a03600435166024356106c3565b34156102e757600080fd5b6101fa600160a060020a03600435166107bd565b341561030657600080fd5b6101276107d8565b341561031957600080fd5b610321610826565b604051600160a060020a03909116815260200160405180910390f35b341561034857600080fd5b61014e610835565b341561035b57600080fd5b610127600160a060020a036004351660243561086c565b341561037d57600080fd5b610127600160a060020a036004351660243561088f565b341561039f57600080fd5b6101fa600160a060020a0360043581169060243516610933565b34156103c457600080fd5b61032161095e565b34156103d757600080fd5b6102a5600160a060020a036004351661096d565b60035474010000000000000000000000000000000000000000900460ff1681565b60408051908101604052600e81527f4465636973696f6e20546f6b656e000000000000000000000000000000000000602082015281565b60008115806104755750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561048057600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b60055460009042101561050157600080fd5b61050c8484846109b7565b949350505050565b601281565b60055481565b60035460009033600160a060020a0390811691161461053d57600080fd5b60035474010000000000000000000000000000000000000000900460ff161561056557600080fd5b600054610578908363ffffffff610ae116565b6000908155600160a060020a0384168152600160205260409020546105a3908363ffffffff610ae116565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a282600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b60045433600160a060020a0390811691161461065857600080fd5b600480546003805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60408051908101604052600381527f312e300000000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561072057600160a060020a033381166000908152600260209081526040808320938816835292905290812055610757565b610730818463ffffffff610af016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a039081169116146107f657600080fd5b6005541561080357600080fd5b61081642620d2f0063ffffffff610ae116565b600555610821610b02565b905090565b600354600160a060020a031681565b60408051908101604052600381527f4853540000000000000000000000000000000000000000000000000000000000602082015281565b60055460009042101561087e57600080fd5b6108888383610b87565b9392505050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120546108c7908363ffffffff610ae116565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600454600160a060020a031681565b60035433600160a060020a0390811691161461098857600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160a060020a03841615156109cf57600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610a15908463ffffffff610af016565b600160a060020a038087166000908152600160205260408082209390935590861681522054610a4a908463ffffffff610ae116565b600160a060020a038516600090815260016020526040902055610a73818463ffffffff610af016565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b60008282018381101561088857fe5b600082821115610afc57fe5b50900390565b60035460009033600160a060020a03908116911614610b2057600080fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b6000600160a060020a0383161515610b9e57600080fd5b600160a060020a033316600090815260016020526040902054610bc7908363ffffffff610af016565b600160a060020a033381166000908152600160205260408082209390935590851681522054610bfc908363ffffffff610ae116565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001929150505600a165627a7a72305820e8208f6c68c613e42c61b843ac4b86405c55875765838591fff54279e7eff6080029

Swarm Source

bzzr://e8208f6c68c613e42c61b843ac4b86405c55875765838591fff54279e7eff608

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.