ETH Price: $3,780.98 (-2.24%)
Gas: 7 Gwei

Token

Cryptosolartech (CST)
 

Overview

Max Total Supply

1,124,463,120.866261648297659123 CST

Holders

2,733 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

New ICO, Cryptocurrency and Solar Energy. Own mining farm based on photovoltaic plant. Blockchain of Ethereum as a management tool.

ICO Information

ICO Start Date : Apr 16th, 2018  
ICO End Date : Jul 14th, 2018
Total Hard Cap : 71,400,000 € 
Soft Cap : 983,733 €
ICO Price : $0.1
Country : Spain

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CrowdsaleToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 0 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-06-27
*/

pragma solidity ^0.4.19;

/**
 * Originally from https://github.com/TokenMarketNet/ico
 * Modified by https://www.coinfabrik.com/
 */

pragma solidity ^0.4.19;

/**
 * Originally from https://github.com/TokenMarketNet/ico
 * Modified by https://www.coinfabrik.com/
 */

pragma solidity ^0.4.19;

/**
 * Originally from https://github.com/OpenZeppelin/zeppelin-solidity
 * Modified by https://www.coinfabrik.com/
 */

pragma solidity ^0.4.19;

/**
 * Interface for the standard token.
 * Based on https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
 */
contract EIP20Token {

  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool success);
  function transferFrom(address from, address to, uint256 value) public returns (bool success);
  function approve(address spender, uint256 value) public returns (bool success);
  function allowance(address owner, address spender) public view returns (uint256 remaining);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);

  /**
  ** Optional functions
  *
  function name() public view returns (string name);
  function symbol() public view returns (string symbol);
  function decimals() public view returns (uint8 decimals);
  *
  **/

}
pragma solidity ^0.4.19;

/**
 * Originally from  https://github.com/OpenZeppelin/zeppelin-solidity
 * Modified by https://www.coinfabrik.com/
 */

/**
 * 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(uint a, uint b) internal pure returns (uint) {
    return a >= b ? a : b;
  }

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

pragma solidity ^0.4.19;

// Interface for burning tokens
contract Burnable {
  // @dev Destroys tokens for an account
  // @param account Account whose tokens are destroyed
  // @param value Amount of tokens to destroy
  function burnTokens(address account, uint value) internal;
  event Burned(address account, uint value);
}
pragma solidity ^0.4.19;

/**
 * Authored by https://www.coinfabrik.com/
 */


/**
 * Internal interface for the minting of tokens.
 */
contract Mintable {

  /**
   * @dev Mints tokens for an account
   * This function should the Minted event.
   */
  function mintInternal(address receiver, uint amount) internal;

  /** Token supply got increased and a new owner received these tokens */
  event Minted(address receiver, uint amount);
}

/**
 * @title Standard token
 * @dev Basic implementation of the EIP20 standard token (also known as ERC20 token).
 */
contract StandardToken is EIP20Token, Burnable, Mintable {
  using SafeMath for uint;

  uint private total_supply;
  mapping(address => uint) private balances;
  mapping(address => mapping (address => uint)) private allowed;


  function totalSupply() public view returns (uint) {
    return total_supply;
  }

  /**
   * @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) public returns (bool success) {
    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 account The address whose balance is to be queried.
   * @return An uint representing the amount owned by the passed address.
   */
  function balanceOf(address account) public view returns (uint balance) {
    return balances[account];
  }

  /**
   * @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) public returns (bool success) {
    uint 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);
    // SafeMath uses assert instead of require though, beware when using an analysis tool

    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 Aprove 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, uint value) public returns (bool success) {

    // 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 than an owner allowed to a spender.
   * @param account 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 account, address spender) public view returns (uint remaining) {
    return allowed[account][spender];
  }

  /**
   * Atomic increment of approved spending
   *
   * Works around https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   */
  function addApproval(address spender, uint addedValue) public returns (bool success) {
      uint oldValue = allowed[msg.sender][spender];
      allowed[msg.sender][spender] = oldValue.add(addedValue);
      Approval(msg.sender, spender, allowed[msg.sender][spender]);
      return true;
  }

  /**
   * Atomic decrement of approved spending.
   *
   * Works around https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   */
  function subApproval(address spender, uint subtractedValue) public returns (bool success) {

      uint oldVal = allowed[msg.sender][spender];

      if (subtractedValue > oldVal) {
          allowed[msg.sender][spender] = 0;
      } else {
          allowed[msg.sender][spender] = oldVal.sub(subtractedValue);
      }
      Approval(msg.sender, spender, allowed[msg.sender][spender]);
      return true;
  }

  /**
   * @dev Provides an internal function for destroying tokens. Useful for upgrades.
   */
  function burnTokens(address account, uint value) internal {
    balances[account] = balances[account].sub(value);
    total_supply = total_supply.sub(value);
    Transfer(account, 0, value);
    Burned(account, value);
  }

  /**
   * @dev Provides an internal minting function.
   */
  function mintInternal(address receiver, uint amount) internal {
    total_supply = total_supply.add(amount);
    balances[receiver] = balances[receiver].add(amount);
    Minted(receiver, amount);

    // Beware: Address zero may be used for special transactions in a future fork.
    // This will make the mint transaction appear in EtherScan.io
    // We can remove this after there is a standardized minting event
    Transfer(0, receiver, amount);
  }
  
}
pragma solidity ^0.4.19;

/**
 * Originally from https://github.com/OpenZeppelin/zeppelin-solidity
 * Modified by https://www.coinfabrik.com/
 */

/**
 * @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() internal {
    owner = msg.sender;
  }


  /**
   * @dev Throws if called by any account other than the owner. 
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to. 
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    owner = newOwner;
  }

}

/**
 * Define interface for releasing the token transfer after a successful crowdsale.
 */
contract ReleasableToken is StandardToken, Ownable {

  /* The finalizer contract that allows lifting the transfer limits on this token */
  address public releaseAgent;

  /** A crowdsale contract can release us to the wild if ICO success. If false we are are in transfer lock up period.*/
  bool public released = false;

  /** Map of agents that are allowed to transfer tokens regardless of the lock down period. These are crowdsale contracts and possible the team multisig itself. */
  mapping (address => bool) public transferAgents;

  /**
   * Set the contract that can call release and make the token transferable.
   *
   * Since the owner of this contract is (or should be) the crowdsale,
   * it can only be called by a corresponding exposed API in the crowdsale contract in case of input error.
   */
  function setReleaseAgent(address addr) onlyOwner inReleaseState(false) public {
    // We don't do interface check here as we might want to have a normal wallet address to act as a release agent.
    releaseAgent = addr;
  }

  /**
   * Owner can allow a particular address (e.g. a crowdsale contract) to transfer tokens despite the lock up period.
   */
  function setTransferAgent(address addr, bool state) onlyOwner inReleaseState(false) public {
    transferAgents[addr] = state;
  }

  /**
   * One way function to release the tokens into the wild.
   *
   * Can be called only from the release agent that should typically be the finalize agent ICO contract.
   * In the scope of the crowdsale, it is only called if the crowdsale has been a success (first milestone reached).
   */
  function releaseTokenTransfer() public onlyReleaseAgent {
    released = true;
  }

  /**
   * Limit token transfer until the crowdsale is over.
   */
  modifier canTransfer(address sender) {
    require(released || transferAgents[sender]);
    _;
  }

  /** The function can be called only before or after the tokens have been released */
  modifier inReleaseState(bool releaseState) {
    require(releaseState == released);
    _;
  }

  /** The function can be called only by a whitelisted release agent. */
  modifier onlyReleaseAgent() {
    require(msg.sender == releaseAgent);
    _;
  }

  /** We restrict transfer by overriding it */
  function transfer(address to, uint value) public canTransfer(msg.sender) returns (bool success) {
    // Call StandardToken.transfer()
   return super.transfer(to, value);
  }

  /** We restrict transferFrom by overriding it */
  function transferFrom(address from, address to, uint value) public canTransfer(from) returns (bool success) {
    // Call StandardToken.transferForm()
    return super.transferFrom(from, to, value);
  }

}



pragma solidity ^0.4.19;

/**
 * First envisioned by Golem and Lunyr projects.
 * Originally from https://github.com/TokenMarketNet/ico
 * Modified by https://www.coinfabrik.com/
 */

pragma solidity ^0.4.19;

/**
 * Inspired by Lunyr.
 * Originally from https://github.com/TokenMarketNet/ico
 */

/**
 * Upgrade agent transfers tokens to a new contract.
 * Upgrade agent itself can be the token contract, or just a middle man contract doing the heavy lifting.
 *
 * The Upgrade agent is the interface used to implement a token
 * migration in the case of an emergency.
 * The function upgradeFrom has to implement the part of the creation
 * of new tokens on behalf of the user doing the upgrade.
 *
 * The new token can implement this interface directly, or use.
 */
contract UpgradeAgent {

  /** This value should be the same as the original token's total supply */
  uint public originalSupply;

  /** Interface to ensure the contract is correctly configured */
  function isUpgradeAgent() public pure returns (bool) {
    return true;
  }

  /**
  Upgrade an account

  When the token contract is in the upgrade status the each user will
  have to call `upgrade(value)` function from UpgradeableToken.

  The upgrade function adjust the balance of the user and the supply
  of the previous token and then call `upgradeFrom(value)`.

  The UpgradeAgent is the responsible to create the tokens for the user
  in the new contract.

  * @param from Account to upgrade.
  * @param value Tokens to upgrade.

  */
  function upgradeFrom(address from, uint value) public;

}


/**
 * A token upgrade mechanism where users can opt-in amount of tokens to the next smart contract revision.
 *
 */
contract UpgradeableToken is EIP20Token, Burnable {
  using SafeMath for uint;

  /** Contract / person who can set the upgrade path. This can be the same as team multisig wallet, as what it is with its default value. */
  address public upgradeMaster;

  /** The next contract where the tokens will be migrated. */
  UpgradeAgent public upgradeAgent;

  /** How many tokens we have upgraded by now. */
  uint public totalUpgraded = 0;

  /**
   * Upgrade states.
   *
   * - NotAllowed: The child contract has not reached a condition where the upgrade can bgun
   * - WaitingForAgent: Token allows upgrade, but we don't have a new agent yet
   * - ReadyToUpgrade: The agent is set, but not a single token has been upgraded yet. This allows changing the upgrade agent while there is time.
   * - Upgrading: Upgrade agent is set and the balance holders can upgrade their tokens
   *
   */
  enum UpgradeState {Unknown, NotAllowed, WaitingForAgent, ReadyToUpgrade, Upgrading}

  /**
   * Somebody has upgraded some of his tokens.
   */
  event Upgrade(address indexed from, address to, uint value);

  /**
   * New upgrade agent available.
   */
  event UpgradeAgentSet(address agent);

  /**
   * Do not allow construction without upgrade master set.
   */
  function UpgradeableToken(address master) internal {
    setUpgradeMaster(master);
  }

  /**
   * Allow the token holder to upgrade some of their tokens to a new contract.
   */
  function upgrade(uint value) public {
    UpgradeState state = getUpgradeState();
    // Ensure it's not called in a bad state
    require(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading);

    // Validate input value.
    require(value != 0);

    // Upgrade agent reissues the tokens
    upgradeAgent.upgradeFrom(msg.sender, value);
    
    // Take tokens out from circulation
    burnTokens(msg.sender, value);
    totalUpgraded = totalUpgraded.add(value);

    Upgrade(msg.sender, upgradeAgent, value);
  }

  /**
   * Set an upgrade agent that handles the upgrade process
   */
  function setUpgradeAgent(address agent) onlyMaster external {
    // Check whether the token is in a state that we could think of upgrading
    require(canUpgrade());

    require(agent != 0x0);
    // Upgrade has already begun for an agent
    require(getUpgradeState() != UpgradeState.Upgrading);

    upgradeAgent = UpgradeAgent(agent);

    // Bad interface
    require(upgradeAgent.isUpgradeAgent());
    // Make sure that token supplies match in source and target
    require(upgradeAgent.originalSupply() == totalSupply());

    UpgradeAgentSet(upgradeAgent);
  }

  /**
   * Get the state of the token upgrade.
   */
  function getUpgradeState() public view returns(UpgradeState) {
    if (!canUpgrade()) return UpgradeState.NotAllowed;
    else if (address(upgradeAgent) == 0x00) return UpgradeState.WaitingForAgent;
    else if (totalUpgraded == 0) return UpgradeState.ReadyToUpgrade;
    else return UpgradeState.Upgrading;
  }

  /**
   * Change the upgrade master.
   *
   * This allows us to set a new owner for the upgrade mechanism.
   */
  function changeUpgradeMaster(address new_master) onlyMaster public {
    setUpgradeMaster(new_master);
  }

  /**
   * Internal upgrade master setter.
   */
  function setUpgradeMaster(address new_master) private {
    require(new_master != 0x0);
    upgradeMaster = new_master;
  }

  /**
   * Child contract can override to provide the condition in which the upgrade can begin.
   */
  function canUpgrade() public view returns(bool) {
     return true;
  }


  modifier onlyMaster() {
    require(msg.sender == upgradeMaster);
    _;
  }
}

pragma solidity ^0.4.19;

/**
 * Authored by https://www.coinfabrik.com/
 */


// This contract aims to provide an inheritable way to recover tokens from a contract not meant to hold tokens
// To use this contract, have your token-ignoring contract inherit this one and implement getLostAndFoundMaster to decide who can move lost tokens.
// Of course, this contract imposes support costs upon whoever is the lost and found master.
contract LostAndFoundToken {
  /**
   * @return Address of the account that handles movements.
   */
  function getLostAndFoundMaster() internal view returns (address);

  /**
   * @param agent Address that will be able to move tokens with transferFrom
   * @param tokens Amount of tokens approved for transfer
   * @param token_contract Contract of the token
   */
  function enableLostAndFound(address agent, uint tokens, EIP20Token token_contract) public {
    require(msg.sender == getLostAndFoundMaster());
    // We use approve instead of transfer to minimize the possibility of the lost and found master
    //  getting them stuck in another address by accident.
    token_contract.approve(agent, tokens);
  }
}
pragma solidity ^0.4.19;

/**
 * Originally from https://github.com/TokenMarketNet/ico
 * Modified by https://www.coinfabrik.com/
 */


/**
 * A public interface to increase the supply of a token.
 *
 * This allows uncapped crowdsale by dynamically increasing the supply when money pours in.
 * Only mint agents, usually contracts whitelisted by the owner, can mint new tokens.
 *
 */
contract MintableToken is Mintable, Ownable {

  using SafeMath for uint;

  bool public mintingFinished = false;

  /** List of agents that are allowed to create new tokens */
  mapping (address => bool) public mintAgents;

  event MintingAgentChanged(address addr, bool state);


  function MintableToken(uint initialSupply, address multisig, bool mintable) internal {
    require(multisig != address(0));
    // Cannot create a token without supply and no minting
    require(mintable || initialSupply != 0);
    // Create initially all balance on the team multisig
    if (initialSupply > 0)
      mintInternal(multisig, initialSupply);
    // No more new supply allowed after the token creation
    mintingFinished = !mintable;
  }

  /**
   * Create new tokens and allocate them to an address.
   *
   * Only callable by a mint agent (e.g. crowdsale contract).
   */
  function mint(address receiver, uint amount) onlyMintAgent canMint public {
    mintInternal(receiver, amount);
  }

  /**
   * Owner can allow a crowdsale contract to mint new tokens.
   */
  function setMintAgent(address addr, bool state) onlyOwner canMint public {
    mintAgents[addr] = state;
    MintingAgentChanged(addr, state);
  }

  modifier onlyMintAgent() {
    // Only mint agents are allowed to mint new tokens
    require(mintAgents[msg.sender]);
    _;
  }

  /** Make sure we are not done yet. */
  modifier canMint() {
    require(!mintingFinished);
    _;
  }
}

/**
 * A crowdsale token.
 *
 * An ERC-20 token designed specifically for crowdsales with investor protection and further development path.
 *
 * - The token transfer() is disabled until the crowdsale is over
 * - The token contract gives an opt-in upgrade path to a new contract
 * - The same token can be part of several crowdsales through the approve() mechanism
 * - The token can be capped (supply set in the constructor) or uncapped (crowdsale contract can mint new tokens)
 * - ERC20 tokens transferred to this contract can be recovered by a lost and found master
 *
 */
contract CrowdsaleToken is ReleasableToken, MintableToken, UpgradeableToken, LostAndFoundToken {

  string public name = "Cryptosolartech";

  string public symbol = "CST";

  uint8 public decimals;

  address public lost_and_found_master;

  /**
   * Construct the token.
   *
   * This token must be created through a team multisig wallet, so that it is owned by that wallet.
   *
   * @param initial_supply How many tokens we start with.
   * @param token_decimals Number of decimal places.
   * @param team_multisig Address of the multisig that receives the initial supply and is set as the upgrade master.
   * @param token_retriever Address of the account that handles ERC20 tokens that were accidentally sent to this contract.
   */
  function CrowdsaleToken(uint initial_supply, uint8 token_decimals, address team_multisig, address token_retriever) public
  UpgradeableToken(team_multisig) MintableToken(initial_supply, team_multisig, true) {
    require(token_retriever != address(0));
    decimals = token_decimals;
    lost_and_found_master = token_retriever;
  }

  /**
   * When token is released to be transferable, prohibit new token creation.
   */
  function releaseTokenTransfer() public onlyReleaseAgent {
    mintingFinished = true;
    super.releaseTokenTransfer();
  }

  /**
   * Allow upgrade agent functionality to kick in only if the crowdsale was a success.
   */
  function canUpgrade() public view returns(bool) {
    return released && super.canUpgrade();
  }

  function burn(uint value) public {
    burnTokens(msg.sender, value);
  }

  function getLostAndFoundMaster() internal view returns(address) {
    return lost_and_found_master;
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"state","type":"bool"}],"name":"setTransferAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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":"success","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setReleaseAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"mintAgents","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"state","type":"bool"}],"name":"setMintAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"},{"name":"tokens","type":"uint256"},{"name":"token_contract","type":"address"}],"name":"enableLostAndFound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradeAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradeState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"transferAgents","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"released","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"canUpgrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lost_and_found_master","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"addApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"releaseAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"agent","type":"address"}],"name":"setUpgradeAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"subApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_master","type":"address"}],"name":"changeUpgradeMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initial_supply","type":"uint256"},{"name":"token_decimals","type":"uint8"},{"name":"team_multisig","type":"address"},{"name":"token_retriever","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"agent","type":"address"}],"name":"UpgradeAgentSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"state","type":"bool"}],"name":"MintingAgentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burned","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"},{"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"}]

606060409081526004805460a060020a60ff02191690556006805460ff191690556000600a558051908101604052600f81527f43727970746f736f6c61727465636800000000000000000000000000000000006020820152600b9080516200006c9291602001906200032b565b5060408051908101604052600381527f43535400000000000000000000000000000000000000000000000000000000006020820152600c908051620000b69291602001906200032b565b503415620000c357600080fd5b604051608080620019148339810160405280805191906020018051919060200180519190602001805160038054600160a060020a03191633600160a060020a039081169190911790915590925083915085908290600190821615156200012857600080fd5b80806200013457508215155b15156200014057600080fd5b60008311156200016457620001648284640100000000620011d0620001e482021704565b6006805460ff19169115919091179055506200019090508164010000000062001491620002dc82021704565b50600160a060020a0381161515620001a757600080fd5b600d8054600160a060020a039092166101000261010060a860020a031960ff90951660ff1990931692909217939093161790915550620003d09050565b600054620002019082640100000000620013706200031482021704565b6000908155600160a060020a038316815260016020526040902054620002369082640100000000620013706200031482021704565b600160a060020a03831660009081526001602052604090819020919091557f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe908390839051600160a060020a03909216825260208201526040908101905180910390a181600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35050565b600160a060020a0381161515620002f257600080fd5b60088054600160a060020a031916600160a060020a0392909216919091179055565b6000828201838110156200032457fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200036e57805160ff19168380011785556200039e565b828001600101855582156200039e579182015b828111156200039e57825182559160200191906001019062000381565b50620003ac929150620003b0565b5090565b620003cd91905b80821115620003ac5760008155600101620003b7565b90565b61153480620003e06000396000f3006060604052600436106101925763ffffffff60e060020a60003504166302f652a3811461019757806305d2035b146101bd57806306fdde03146101e4578063095ea7b31461026e57806318160ddd1461029057806323b872dd146102b557806329ff4f53146102dd578063313ce567146102fc57806340c10f191461032557806342966c681461034757806342c1867b1461035d578063432146751461037c57806345977d03146103a05780634a52e506146103b65780635de4ccb0146103df5780635f412d4f1461040e578063600440cb1461042157806370a08231146104345780638444b39114610453578063867c28571461048a5780638da5cb5b146104a957806395d89b41146104bc57806396132521146104cf5780639738968c146104e2578063a64278ce146104f5578063a9059cbb14610508578063ac3cb72c1461052a578063c752ff621461054c578063d1f276d31461055f578063d7e7088a14610572578063dd62ed3e14610591578063e2301d02146105b6578063ea56a44d146105d8578063f2fde38b146105f7575b600080fd5b34156101a257600080fd5b6101bb600160a060020a03600435166024351515610616565b005b34156101c857600080fd5b6101d0610677565b604051901515815260200160405180910390f35b34156101ef57600080fd5b6101f7610680565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b6101d0600160a060020a036004351660243561071e565b341561029b57600080fd5b6102a36107b2565b60405190815260200160405180910390f35b34156102c057600080fd5b6101d0600160a060020a03600435811690602435166044356107b9565b34156102e857600080fd5b6101bb600160a060020a036004351661080d565b341561030757600080fd5b61030f610865565b60405160ff909116815260200160405180910390f35b341561033057600080fd5b6101bb600160a060020a036004351660243561086e565b341561035257600080fd5b6101bb6004356108b3565b341561036857600080fd5b6101d0600160a060020a03600435166108c0565b341561038757600080fd5b6101bb600160a060020a036004351660243515156108d5565b34156103ab57600080fd5b6101bb600435610971565b34156103c157600080fd5b6101bb600160a060020a036004358116906024359060443516610a9b565b34156103ea57600080fd5b6103f2610b3f565b604051600160a060020a03909116815260200160405180910390f35b341561041957600080fd5b6101bb610b4e565b341561042c57600080fd5b6103f2610b80565b341561043f57600080fd5b6102a3600160a060020a0360043516610b8f565b341561045e57600080fd5b610466610baa565b6040518082600481111561047657fe5b60ff16815260200191505060405180910390f35b341561049557600080fd5b6101d0600160a060020a0360043516610bf5565b34156104b457600080fd5b6103f2610c0a565b34156104c757600080fd5b6101f7610c19565b34156104da57600080fd5b6101d0610c84565b34156104ed57600080fd5b6101d0610c94565b341561050057600080fd5b6103f2610cb8565b341561051357600080fd5b6101d0600160a060020a0360043516602435610ccc565b341561053557600080fd5b6101d0600160a060020a0360043516602435610d1e565b341561055757600080fd5b6102a3610db1565b341561056a57600080fd5b6103f2610db7565b341561057d57600080fd5b6101bb600160a060020a0360043516610dc6565b341561059c57600080fd5b6102a3600160a060020a0360043581169060243516610f70565b34156105c157600080fd5b6101d0600160a060020a0360043516602435610f9b565b34156105e357600080fd5b6101bb600160a060020a036004351661105c565b341561060257600080fd5b6101bb600160a060020a0360043516611080565b60035433600160a060020a0390811691161461063157600080fd5b60045460009060a060020a900460ff161561064b57600080fd5b50600160a060020a03919091166000908152600560205260409020805460ff1916911515919091179055565b60065460ff1681565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b820191906000526020600020905b8154815290600101906020018083116106f957829003601f168201915b505050505081565b60008115806107505750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561075b57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590556000805160206114e98339815191529085905190815260200160405180910390a350600192915050565b6000545b90565b600454600090849060a060020a900460ff16806107ee5750600160a060020a03811660009081526005602052604090205460ff165b15156107f957600080fd5b6108048585856110d2565b95945050505050565b60035433600160a060020a0390811691161461082857600080fd5b60045460009060a060020a900460ff161561084257600080fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055565b600d5460ff1681565b600160a060020a03331660009081526007602052604090205460ff16151561089557600080fd5b60065460ff16156108a557600080fd5b6108af82826111d0565b5050565b6108bd33826112a2565b50565b60076020526000908152604090205460ff1681565b60035433600160a060020a039081169116146108f057600080fd5b60065460ff161561090057600080fd5b600160a060020a03821660009081526007602052604090819020805460ff19168315151790557f4b0adf6c802794c7dde28a08a4e07131abcff3bf9603cd71f14f90bec7865efa908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b600061097b610baa565b9050600381600481111561098b57fe5b14806109a2575060048160048111156109a057fe5b145b15156109ad57600080fd5b8115156109b957600080fd5b600954600160a060020a031663753e88e5338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a0f57600080fd5b6102c65a03f11515610a2057600080fd5b505050610a2d33836112a2565b600a54610a40908363ffffffff61137016565b600a55600954600160a060020a03338116917f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac911684604051600160a060020a03909216825260208201526040908101905180910390a25050565b610aa3611386565b600160a060020a031633600160a060020a0316141515610ac257600080fd5b80600160a060020a031663095ea7b3848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b1f57600080fd5b6102c65a03f11515610b3057600080fd5b50505060405180515050505050565b600954600160a060020a031681565b60045433600160a060020a03908116911614610b6957600080fd5b6006805460ff19166001179055610b7e61139a565b565b600854600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000610bb4610c94565b1515610bc2575060016107b6565b600954600160a060020a03161515610bdc575060026107b6565b600a541515610bed575060036107b6565b5060046107b6565b60056020526000908152604090205460ff1681565b600354600160a060020a031681565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b60045460a060020a900460ff1681565b60045460009060a060020a900460ff168015610cb35750610cb36113cd565b905090565b600d546101009004600160a060020a031681565b600454600090339060a060020a900460ff1680610d015750600160a060020a03811660009081526005602052604090205460ff165b1515610d0c57600080fd5b610d1684846113d2565b949350505050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610d56818463ffffffff61137016565b600160a060020a033381166000818152600260209081526040808320948a168084529490915290819020849055919290916000805160206114e983398151915291905190815260200160405180910390a35060019392505050565b600a5481565b600454600160a060020a031681565b60085433600160a060020a03908116911614610de157600080fd5b610de9610c94565b1515610df457600080fd5b600160a060020a0381161515610e0957600080fd5b6004610e13610baa565b6004811115610e1e57fe5b1415610e2957600080fd5b60098054600160a060020a031916600160a060020a038381169190911791829055166361d3d7a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e8757600080fd5b6102c65a03f11515610e9857600080fd5b505050604051805190501515610ead57600080fd5b610eb56107b2565b600954600160a060020a0316634b2ba0dd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610efd57600080fd5b6102c65a03f11515610f0e57600080fd5b50505060405180519050141515610f2457600080fd5b6009547f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc90600160a060020a0316604051600160a060020a03909116815260200160405180910390a150565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610ff857600160a060020a033381166000908152600260209081526040808320938816835292905290812055611008565b610d56818463ffffffff61147f16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020546000805160206114e9833981519152915190815260200160405180910390a35060019392505050565b60085433600160a060020a0390811691161461107757600080fd5b6108bd81611491565b60035433600160a060020a0390811691161461109b57600080fd5b600160a060020a03811615156110b057600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038084166000818152600260209081526040808320339095168352938152838220549282526001905291822054611116908463ffffffff61147f16565b600160a060020a03808716600090815260016020526040808220939093559086168152205461114b908463ffffffff61137016565b600160a060020a038516600090815260016020526040902055611174818463ffffffff61147f16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616916000805160206114c98339815191529086905190815260200160405180910390a3506001949350505050565b6000546111e3908263ffffffff61137016565b6000908155600160a060020a03831681526001602052604090205461120e908263ffffffff61137016565b600160a060020a03831660009081526001602052604090819020919091557f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe908390839051600160a060020a03909216825260208201526040908101905180910390a181600160a060020a031660006000805160206114c98339815191528360405190815260200160405180910390a35050565b600160a060020a0382166000908152600160205260409020546112cb908263ffffffff61147f16565b600160a060020a038316600090815260016020526040812091909155546112f8908263ffffffff61147f16565b6000908155600160a060020a0383166000805160206114c98339815191528360405190815260200160405180910390a37f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df78282604051600160a060020a03909216825260208201526040908101905180910390a15050565b60008282018381101561137f57fe5b9392505050565b600d546101009004600160a060020a031690565b60045433600160a060020a039081169116146113b557600080fd5b6004805460a060020a60ff02191660a060020a179055565b600190565b600160a060020a0333166000908152600160205260408120546113fb908363ffffffff61147f16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611430908363ffffffff61137016565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206114c98339815191529085905190815260200160405180910390a350600192915050565b60008282111561148b57fe5b50900390565b600160a060020a03811615156114a657600080fd5b60088054600160a060020a031916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a723058203ee262f8b499031059f514a24cb0a8e6bcff0c8578d5cc51c6f81a2a963fa996002900000000000000000000000000000000000000000014d84ebcc1c5caa6000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000093c4a8ed12bab494bc3045380ee1cfc07507d23400000000000000000000000054d9249c776c56520a62faecb87a00e105e8c9dc

Deployed Bytecode

0x6060604052600436106101925763ffffffff60e060020a60003504166302f652a3811461019757806305d2035b146101bd57806306fdde03146101e4578063095ea7b31461026e57806318160ddd1461029057806323b872dd146102b557806329ff4f53146102dd578063313ce567146102fc57806340c10f191461032557806342966c681461034757806342c1867b1461035d578063432146751461037c57806345977d03146103a05780634a52e506146103b65780635de4ccb0146103df5780635f412d4f1461040e578063600440cb1461042157806370a08231146104345780638444b39114610453578063867c28571461048a5780638da5cb5b146104a957806395d89b41146104bc57806396132521146104cf5780639738968c146104e2578063a64278ce146104f5578063a9059cbb14610508578063ac3cb72c1461052a578063c752ff621461054c578063d1f276d31461055f578063d7e7088a14610572578063dd62ed3e14610591578063e2301d02146105b6578063ea56a44d146105d8578063f2fde38b146105f7575b600080fd5b34156101a257600080fd5b6101bb600160a060020a03600435166024351515610616565b005b34156101c857600080fd5b6101d0610677565b604051901515815260200160405180910390f35b34156101ef57600080fd5b6101f7610680565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b6101d0600160a060020a036004351660243561071e565b341561029b57600080fd5b6102a36107b2565b60405190815260200160405180910390f35b34156102c057600080fd5b6101d0600160a060020a03600435811690602435166044356107b9565b34156102e857600080fd5b6101bb600160a060020a036004351661080d565b341561030757600080fd5b61030f610865565b60405160ff909116815260200160405180910390f35b341561033057600080fd5b6101bb600160a060020a036004351660243561086e565b341561035257600080fd5b6101bb6004356108b3565b341561036857600080fd5b6101d0600160a060020a03600435166108c0565b341561038757600080fd5b6101bb600160a060020a036004351660243515156108d5565b34156103ab57600080fd5b6101bb600435610971565b34156103c157600080fd5b6101bb600160a060020a036004358116906024359060443516610a9b565b34156103ea57600080fd5b6103f2610b3f565b604051600160a060020a03909116815260200160405180910390f35b341561041957600080fd5b6101bb610b4e565b341561042c57600080fd5b6103f2610b80565b341561043f57600080fd5b6102a3600160a060020a0360043516610b8f565b341561045e57600080fd5b610466610baa565b6040518082600481111561047657fe5b60ff16815260200191505060405180910390f35b341561049557600080fd5b6101d0600160a060020a0360043516610bf5565b34156104b457600080fd5b6103f2610c0a565b34156104c757600080fd5b6101f7610c19565b34156104da57600080fd5b6101d0610c84565b34156104ed57600080fd5b6101d0610c94565b341561050057600080fd5b6103f2610cb8565b341561051357600080fd5b6101d0600160a060020a0360043516602435610ccc565b341561053557600080fd5b6101d0600160a060020a0360043516602435610d1e565b341561055757600080fd5b6102a3610db1565b341561056a57600080fd5b6103f2610db7565b341561057d57600080fd5b6101bb600160a060020a0360043516610dc6565b341561059c57600080fd5b6102a3600160a060020a0360043581169060243516610f70565b34156105c157600080fd5b6101d0600160a060020a0360043516602435610f9b565b34156105e357600080fd5b6101bb600160a060020a036004351661105c565b341561060257600080fd5b6101bb600160a060020a0360043516611080565b60035433600160a060020a0390811691161461063157600080fd5b60045460009060a060020a900460ff161561064b57600080fd5b50600160a060020a03919091166000908152600560205260409020805460ff1916911515919091179055565b60065460ff1681565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b820191906000526020600020905b8154815290600101906020018083116106f957829003601f168201915b505050505081565b60008115806107505750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561075b57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590556000805160206114e98339815191529085905190815260200160405180910390a350600192915050565b6000545b90565b600454600090849060a060020a900460ff16806107ee5750600160a060020a03811660009081526005602052604090205460ff165b15156107f957600080fd5b6108048585856110d2565b95945050505050565b60035433600160a060020a0390811691161461082857600080fd5b60045460009060a060020a900460ff161561084257600080fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055565b600d5460ff1681565b600160a060020a03331660009081526007602052604090205460ff16151561089557600080fd5b60065460ff16156108a557600080fd5b6108af82826111d0565b5050565b6108bd33826112a2565b50565b60076020526000908152604090205460ff1681565b60035433600160a060020a039081169116146108f057600080fd5b60065460ff161561090057600080fd5b600160a060020a03821660009081526007602052604090819020805460ff19168315151790557f4b0adf6c802794c7dde28a08a4e07131abcff3bf9603cd71f14f90bec7865efa908390839051600160a060020a039092168252151560208201526040908101905180910390a15050565b600061097b610baa565b9050600381600481111561098b57fe5b14806109a2575060048160048111156109a057fe5b145b15156109ad57600080fd5b8115156109b957600080fd5b600954600160a060020a031663753e88e5338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610a0f57600080fd5b6102c65a03f11515610a2057600080fd5b505050610a2d33836112a2565b600a54610a40908363ffffffff61137016565b600a55600954600160a060020a03338116917f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac911684604051600160a060020a03909216825260208201526040908101905180910390a25050565b610aa3611386565b600160a060020a031633600160a060020a0316141515610ac257600080fd5b80600160a060020a031663095ea7b3848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b1f57600080fd5b6102c65a03f11515610b3057600080fd5b50505060405180515050505050565b600954600160a060020a031681565b60045433600160a060020a03908116911614610b6957600080fd5b6006805460ff19166001179055610b7e61139a565b565b600854600160a060020a031681565b600160a060020a031660009081526001602052604090205490565b6000610bb4610c94565b1515610bc2575060016107b6565b600954600160a060020a03161515610bdc575060026107b6565b600a541515610bed575060036107b6565b5060046107b6565b60056020526000908152604090205460ff1681565b600354600160a060020a031681565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107165780601f106106eb57610100808354040283529160200191610716565b60045460a060020a900460ff1681565b60045460009060a060020a900460ff168015610cb35750610cb36113cd565b905090565b600d546101009004600160a060020a031681565b600454600090339060a060020a900460ff1680610d015750600160a060020a03811660009081526005602052604090205460ff165b1515610d0c57600080fd5b610d1684846113d2565b949350505050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610d56818463ffffffff61137016565b600160a060020a033381166000818152600260209081526040808320948a168084529490915290819020849055919290916000805160206114e983398151915291905190815260200160405180910390a35060019392505050565b600a5481565b600454600160a060020a031681565b60085433600160a060020a03908116911614610de157600080fd5b610de9610c94565b1515610df457600080fd5b600160a060020a0381161515610e0957600080fd5b6004610e13610baa565b6004811115610e1e57fe5b1415610e2957600080fd5b60098054600160a060020a031916600160a060020a038381169190911791829055166361d3d7a66000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e8757600080fd5b6102c65a03f11515610e9857600080fd5b505050604051805190501515610ead57600080fd5b610eb56107b2565b600954600160a060020a0316634b2ba0dd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610efd57600080fd5b6102c65a03f11515610f0e57600080fd5b50505060405180519050141515610f2457600080fd5b6009547f7845d5aa74cc410e35571258d954f23b82276e160fe8c188fa80566580f279cc90600160a060020a0316604051600160a060020a03909116815260200160405180910390a150565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610ff857600160a060020a033381166000908152600260209081526040808320938816835292905290812055611008565b610d56818463ffffffff61147f16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020546000805160206114e9833981519152915190815260200160405180910390a35060019392505050565b60085433600160a060020a0390811691161461107757600080fd5b6108bd81611491565b60035433600160a060020a0390811691161461109b57600080fd5b600160a060020a03811615156110b057600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a038084166000818152600260209081526040808320339095168352938152838220549282526001905291822054611116908463ffffffff61147f16565b600160a060020a03808716600090815260016020526040808220939093559086168152205461114b908463ffffffff61137016565b600160a060020a038516600090815260016020526040902055611174818463ffffffff61147f16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616916000805160206114c98339815191529086905190815260200160405180910390a3506001949350505050565b6000546111e3908263ffffffff61137016565b6000908155600160a060020a03831681526001602052604090205461120e908263ffffffff61137016565b600160a060020a03831660009081526001602052604090819020919091557f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe908390839051600160a060020a03909216825260208201526040908101905180910390a181600160a060020a031660006000805160206114c98339815191528360405190815260200160405180910390a35050565b600160a060020a0382166000908152600160205260409020546112cb908263ffffffff61147f16565b600160a060020a038316600090815260016020526040812091909155546112f8908263ffffffff61147f16565b6000908155600160a060020a0383166000805160206114c98339815191528360405190815260200160405180910390a37f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df78282604051600160a060020a03909216825260208201526040908101905180910390a15050565b60008282018381101561137f57fe5b9392505050565b600d546101009004600160a060020a031690565b60045433600160a060020a039081169116146113b557600080fd5b6004805460a060020a60ff02191660a060020a179055565b600190565b600160a060020a0333166000908152600160205260408120546113fb908363ffffffff61147f16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611430908363ffffffff61137016565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206114c98339815191529085905190815260200160405180910390a350600192915050565b60008282111561148b57fe5b50900390565b600160a060020a03811615156114a657600080fd5b60088054600160a060020a031916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a723058203ee262f8b499031059f514a24cb0a8e6bcff0c8578d5cc51c6f81a2a963fa9960029

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

00000000000000000000000000000000000000000014d84ebcc1c5caa6000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000093c4a8ed12bab494bc3045380ee1cfc07507d23400000000000000000000000054d9249c776c56520a62faecb87a00e105e8c9dc

-----Decoded View---------------
Arg [0] : initial_supply (uint256): 25200000000000000000000000
Arg [1] : token_decimals (uint8): 18
Arg [2] : team_multisig (address): 0x93C4a8ed12BAb494bc3045380EE1CfC07507D234
Arg [3] : token_retriever (address): 0x54d9249C776C56520A62faeCB87A00E105E8c9Dc

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000014d84ebcc1c5caa6000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [2] : 00000000000000000000000093c4a8ed12bab494bc3045380ee1cfc07507d234
Arg [3] : 00000000000000000000000054d9249c776c56520a62faecb87a00e105e8c9dc


Swarm Source

bzzr://3ee262f8b499031059f514a24cb0a8e6bcff0c8578d5cc51c6f81a2a963fa996
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.