ETH Price: $3,318.75 (-1.22%)

Token

Cryptosolartech (CST)
 

Overview

Max Total Supply

1,124,463,120.866261648297659123 CST

Holders

2,733 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
OKX
Balance
4,002,775.112414740330465528 CST

Value
$0.00
0x6cc5f688a315f3dc28a7781717a9a798a59fda7b
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
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.