Sponsored:   LH-CRYPTO - 200 instruments (BTC, EUR, GOLD, OIL, SHARES). Leverage up to 1:500. OPEN ACCOUNT
Contract Overview | CointedTokenSale
Balance: 0.90001 Ether
Ether Value: $156.36 (@ $173.73/ETH)
Transactions: 2493 txns
Token Tracker: Cointed (CTD)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x260487eb63a4c55a860913eef988a6f8d50f2a22at txn 0x00810bc355dcc340a3df83221b0eeec33061e4468a121c03bf7dda9e4849111d
Token Balance:
 Latest 25 transactions from a total of 2493 transactions

TxHash Age From To Value [TxFee]
0xef8abaab08f002d6308da4a70e1dcf6cf1c55ae686f4b6d7d0cc95a2a581903218 days 20 hrs ago0x846c5f9d1164e98586d5a8cd35822a803e574c41  IN   CointedTokenSale0 Ether0.000150936
0xc9aaecc86b52958e50d3816f9c1d4d076e51d92e7637b98e72e1a26aa99a91a918 days 20 hrs ago0x846c5f9d1164e98586d5a8cd35822a803e574c41  IN   CointedTokenSale0 Ether0.000953496
0x5b06c3a9655f8e74908b95e803e6c623945f796f30b49e7dcdf57dc234f505a421 days 11 hrs ago0x5e5be167e2e5fa1ad9020fdb5287fc9280f2353b  IN   CointedTokenSale0 Ether0.00113202
0xb02063fac824501151d283580d7069269d08cb4e9801d68b21c1de96f5cf689b23 days 13 hrs ago0xd2bdb790df12e4e124084e280dd4c31ef08cdace  IN   CointedTokenSale0 Ether0.000514481
0xcb3b16a733bc2c447fbe0532147f8e156ce4bdb77af86daa3234ade29aa1d80f25 days 21 hrs ago0x33e8810b5432ccd823b6c45975a55fb9f6c931d6  IN   CointedTokenSale0 Ether0.000561252
0x04c9ed5d490763bcc444d57b25c77d9128116dd932520c11357c00c4682d464c41 days 2 hrs ago0xc92b113a6295456e39abfb8f5903b8717b513003  IN   CointedTokenSale0 Ether0.0000608023
0xfbfd71e9a7283e00f3b076d09b27b7b02ef272e6912ec9afd616b3f55c525d2241 days 9 hrs ago0x66ca2435347a05ec90482fc6b8b3309ad80a1101  IN   CointedTokenSale0 Ether0.000093542
0xdcdd6909e9f57eb196baf8f5d8fe8c36f481b6dba1655b0d0e3b2166d503966941 days 10 hrs ago0x00c0790fd01a61b25f97515bc705d5946d693315  IN   CointedTokenSale0 Ether0.0001028962
0x8ab8c7cd82dd34aaeb5b717ed732f166f928f12f4bbe904f53eeb65297e4da9b63 days 8 hrs ago0xf65bb1dd453066a8705fc931a48c40f00ce979d4  IN   CointedTokenSale0 Ether0.000233855
0xcd4525df5aab6eab05da350e385fb54e6a6ffc8561c1c14bea5571558fabd20870 days 18 hrs ago0x53b0b71c1303ef5639c4669f888b670f86929680  IN   CointedTokenSale0 Ether0.000187084
0x027091a04664be43edb756b3e728a166ae3c356025e1faf5b73bf997cd522d6e74 days 12 hrs ago0xe7b4aac17dbd50d040b3cf989cc2d197aca54d0b  IN   CointedTokenSale0 Ether0.000187084
0x2542e586928c4a5eb896bef8a472754a01123e816df234dca4a73673c0ff474777 days 22 hrs ago0x1acee83486b6671b005eed45c9fb9277e7eeb63d  IN   CointedTokenSale0 Ether0.001547094
0x7b8aee407306245dcea4f30c1dcfb1db5f691b4d3bff4a808b9f5c69450fa18e87 days 15 hrs ago0x23f42432f7f50ed8594aaf312e22a19ee71bf05e  IN   CointedTokenSale0 Ether0.00037734
0x9d0d3d27d50149eb55a956be59e67f00aeac4b4c8cb9d4c6360b800f665f26cc87 days 15 hrs ago0x23f42432f7f50ed8594aaf312e22a19ee71bf05e  IN   CointedTokenSale0 Ether0.00021
0x2418e168937f5fbe7b859c3fd497e845a456ea1a113c7b8d8f1a537e798b5c2289 days 12 hrs ago0x297880871bd2e4f8e5af71303b4a2db4aaed98ac  IN   CointedTokenSale0 Ether0.000075468
0xcab4adfa96c81f9df0ad3305736bf6da51d5c8af1edf35f8ca1b7c6b80c4391992 days 15 hrs ago0xcc028e8465c39c8b5d250431c82239dc7ee48a6d  IN   CointedTokenSale0 Ether0.000187084
0xb396293af5410507d1307252d44bd023cbf21a3a69d5f75cd0310b6b76d025a092 days 17 hrs ago0x101e51652077bff4c625af9b13400ee0d9d56210  IN   CointedTokenSale0 Ether0.000187084
0x30f126635fd15cec9b5eecaaa584490fef1c9d861edc2f21cf8b64f8210f934792 days 17 hrs ago0xb049a9fb7ab65f025d34cd4a4a25ba723e1e706c  IN   CointedTokenSale0 Ether0.000090936
0x6452e247ed3e36626a48c10ef4483c9032fcc3976778e78aeb0d043e821493ed92 days 17 hrs ago0xfc5859816ab2557b439f7cc3064d2f1b3d0e4201  IN   CointedTokenSale0 Ether0.000090936
0xa6c97162e0db3521a46386082613b9f7585124aa112fd8fa40f02241aa500c0992 days 17 hrs ago0x5c5a518fc0a2c24dd9f304607b4ad12d392c258a  IN   CointedTokenSale0 Ether0.000090936
0xa1a43f39b113705a44250f0cdfa7356e4711fe2115238dd7e106b13cb495a8ac92 days 17 hrs ago0xfb62a796a435c13b40b75876a99dbecb3aaca7e2  IN   CointedTokenSale0 Ether0.000090936
0x7d94ab5ee8249b558508c48f1ddd41bc9ed76d12acfc47e09a20d417b990fecb92 days 17 hrs ago0xc3724a461a3a829e51b13105c9a44d8681390ac6  IN   CointedTokenSale0 Ether0.000090936
0xfea34c3b8970e6917fdc103dd456e4e0dd96a90187830101bdfdabacef2bce3896 days 9 hrs ago0x6626c327ed2deb359becad34db3bc9325a23ac89  IN   CointedTokenSale0 Ether0.001547094
0x0fe202d5ce6fe2ca4bf5a60178ac7761ed3d9c7f06a613220128ac04c5481180100 days 13 hrs ago0xd954908489aba1da95eba7e3747b7f6a48901f6a  IN   CointedTokenSale0 Ether0.0022602
0x7546f5b78c47d66ad2e959d2b072b42a65c1fd679aeb748c03b363e8305ec36b102 days 14 hrs ago0xf79eb14b580316520c1c4af438140132be41844f  IN   CointedTokenSale0 Ether0.00215947
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x8ddc659702bf4e972f166454ff448fc346a674790f0f116c6be0c2e107e10b845173797261 days 6 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c941.1 Ether
0xf3532ebde970de32322fa3c472c5bea4ddcd71bc3266773718bed247163cce2b5173785261 days 6 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.2627 Ether
0xf1016656bfcabadbde92926daf73b9e6bbb1c81780bee300bdd62ce78293bafb5173748261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c9410 Ether
0xb646f332f2a085cf0d0ad55949c1dbb68cd59f0be2080eb07d4de9b66c1f754a5173731261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.5 Ether
0x5e1521568235da44544c9a3294de03608a440ec56935271c295ac93da9bf8f475173666261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c943 Ether
0x6bf49cc79db32c15d8d26d384c435d5acbe75fb6ca8af9c78e72ebeda8c49be05173650261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.387211829 Ether
0x76aafa276581e47fd0bb4874b8332e6cf7d779cba6423a31538a01097be4c8c85173644261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.333 Ether
0xf618daf1bbc93d86b1fa350b421b926de56af7ae338022406bc26b1ba1a797375173636261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.15 Ether
0xf3879cbd7effa3f9c02f38606cbc71dbaff2de3c82daabf0c1419e3151d86c9a5173628261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.183 Ether
0x04854ac6aeb3f61e7eb24e5f820b1acdaec79d9cf3fbfd8b645061a60eee78455173627261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.22073606 Ether
0x043eb748c564e6ec3b8f0397ffdc2423e1c2821c3e99683c0828e6c9a64048ef5173596261 days 7 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.26 Ether
0x96742b55a760bc4c94c9a0bfc2bb4da33f1c32cbce9850843ed46934f1bd540f5173530261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c941.40087116 Ether
0x5d841e3d9f16cc53088648fcb9be64154743392298103f5b87321aa3ecfac9f55173492261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c942.685 Ether
0x96b3119e8c7a48ba34eb5a188554aa34d17b1d83fd1379e4f7fddfa3e3f0b25b5173462261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.019 Ether
0x266be4007f7941b7e5341404c629311dc4dd591b7875e5169eae4a4ab36777f45173458261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.42940738973632141 Ether
0xac32d63ce8687772d49cb3d92784f52663aa178e421291828917f833d7161a195173454261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.13 Ether
0x5dc83b15c990be60fe2b260017c21183d916850e7158b409882bdaff8d3d59cf5173447261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.2 Ether
0xe4a9a13ec75744e2fc6ea36e2302a6350e3afd91302af5c2c651ea80f7be89735173442261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.005 Ether
0x8d11807895e2386a6460d33085454fe06973730169959ab6497435bcc55522595173400261 days 8 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c942 Ether
0x57d8613e5096463d4d5bcb028b45e6f6cac552754dbe2f62ed426f165f9c665e5173324261 days 9 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.558863134 Ether
0x168d91f58086c842455e31a1156d9d2396c3776d55057846397f339d5222ed8d5173284261 days 9 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.65 Ether
0xe0c2f93e1227e404e45519524a02d0d9943fb15b8cb9c2453ddd2f2dc9cfc0355173248261 days 9 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.314653105 Ether
0xf9ec294ed34dd02afbc89480ccce7882bc1f7b7b34d0516c2a4204be61a7dabf5173169261 days 9 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.003 Ether
0x9d7c6c8e823160ad1c5bfcb942c8442d548b990d6e1cd16439a821ae9fa31c105173070261 days 10 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c940.047 Ether
0xadbba8a3f5a72b56770722c84a62934502b0c967f02c82cc0910118d017328ce5173068261 days 10 hrs ago0x230c2a140e758087f7107dd31943c5c03b819e550x2b076d1ca0ec6ea8002b7a69512281e513406c943 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), NestedArrayFunctionCallDecoder (medium-severity), ZeroFunctionSelector (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CtdToken
Compiler Text: v0.4.15+commit.bbb8e64f
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.15;

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

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

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

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

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    owner = msg.sender;
  }


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


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

}

/**
 * @title PausableOnce
 * @dev The PausableOnce contract provides an option for the "pauseMaster"
 * to pause once the transactions for two weeks.
 *
 */

contract PausableOnce is Ownable {

    /** Address that can start the pause */
    address public pauseMaster;

    uint constant internal PAUSE_DURATION = 14 days;
    uint64 public pauseEnd = 0;

    event Paused();

    /**
     * @dev Set the pauseMaster (callable by the owner only).
     * @param _pauseMaster The address of the pauseMaster
     */
    function setPauseMaster(address _pauseMaster) onlyOwner external returns (bool success) {
        require(_pauseMaster != address(0));
        pauseMaster = _pauseMaster;
        return true;
    }

    /**
     * @dev Start the pause (by the pauseMaster, ONCE only).
     */
    function pause() onlyPauseMaster external returns (bool success) {
        require(pauseEnd == 0);
        pauseEnd = uint64(now + PAUSE_DURATION);
        Paused();
        return true;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(now > pauseEnd);
        _;
    }

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

}

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

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

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

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

}

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

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

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


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

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

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

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

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

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

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

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

}

/**
* @title Upgrade agent interface
*/
contract InterfaceUpgradeAgent {

    uint32 public revision;
    uint256 public originalSupply;

    /**
     * @dev Reissue the tokens onto the new contract revision.
     * @param holder Holder (owner) of the tokens
     * @param tokenQty How many tokens to be issued
     */
    function upgradeFrom(address holder, uint256 tokenQty) public;
}

/**
 * @title UpgradableToken
 * @dev The UpgradableToken contract provides an option of upgrading the tokens to a new revision.
 * The "upgradeMaster" may propose the upgrade. Token holders can opt-in amount of tokens to upgrade.
 */

contract UpgradableToken is StandardToken, Ownable {

    using SafeMath for uint256;

    uint32 public REVISION;

    /** Address that can set the upgrade agent thus enabling the upgrade. */
    address public upgradeMaster = address(0);

    /** Address of the contract that issues the new revision tokens. */
    address public upgradeAgent = address(0);

    /** How many tokens are upgraded. */
    uint256 public totalUpgraded;

    event Upgrade(address indexed _from, uint256 _value);
    event UpgradeEnabled(address agent);

    /**
     * @dev Set the upgrade master.
     * parameter _upgradeMaster Upgrade master
     */
    function setUpgradeMaster(address _upgradeMaster) onlyOwner external {
        require(_upgradeMaster != address(0));
        upgradeMaster = _upgradeMaster;
    }

    /**
     * @dev Set the upgrade agent (once only) thus enabling the upgrade.
     * @param _upgradeAgent Upgrade agent contract address
     * @param _revision Unique ID that agent contract must return on ".revision()"
     */
    function setUpgradeAgent(address _upgradeAgent, uint32 _revision)
        onlyUpgradeMaster whenUpgradeDisabled external
    {
        require((_upgradeAgent != address(0)) && (_revision != 0));

        InterfaceUpgradeAgent agent = InterfaceUpgradeAgent(_upgradeAgent);

        require(agent.revision() == _revision);
        require(agent.originalSupply() == totalSupply);

        upgradeAgent = _upgradeAgent;
        UpgradeEnabled(_upgradeAgent);
    }

    /**
     * @dev Upgrade tokens to the new revision.
     * @param value How many tokens to be upgraded
     */
    function upgrade(uint256 value) whenUpgradeEnabled external {
        require(value > 0);

        uint256 balance = balances[msg.sender];
        require(balance > 0);

        // Take tokens out from the old contract
        balances[msg.sender] = balance.sub(value);
        totalSupply = totalSupply.sub(value);
        totalUpgraded = totalUpgraded.add(value);
        // Issue the new revision tokens
        InterfaceUpgradeAgent agent = InterfaceUpgradeAgent(upgradeAgent);
        agent.upgradeFrom(msg.sender, value);

        Upgrade(msg.sender, value);
    }

    /**
    * @dev Modifier to make a function callable only when the upgrade is enabled.
    */
    modifier whenUpgradeEnabled() {
        require(upgradeAgent != address(0));
        _;
    }

    /**
    * @dev Modifier to make a function callable only when the upgrade is impossible.
    */
    modifier whenUpgradeDisabled() {
        require(upgradeAgent == address(0));
        _;
    }

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

}

/**
 * @title Withdrawable
 * @dev The Withdrawable contract provides a mechanism of withdrawal(s).
 * "Withdrawals" are permissions for specified addresses to pull (withdraw) payments from the contract balance.
 */

contract Withdrawable {

    mapping (address => uint) pendingWithdrawals;

    /*
     * @dev Logged upon a granted allowance to the specified drawer on withdrawal.
     * @param drawer The address of the drawer.
     * @param weiAmount The value in Wei which may be withdrawn.
     */
    event Withdrawal(address indexed drawer, uint256 weiAmount);

    /*
     * @dev Logged upon a withdrawn value.
     * @param drawer The address of the drawer.
     * @param weiAmount The value in Wei which has been withdrawn.
     */
    event Withdrawn(address indexed drawer, uint256 weiAmount);

    /*
     * @dev Allow the specified drawer to withdraw the specified value from the contract balance.
     * @param drawer The address of the drawer.
     * @param weiAmount The value in Wei allowed to withdraw.
     * @return success
     */
    function setWithdrawal(address drawer, uint256 weiAmount) internal returns (bool success) {
        if ((drawer != address(0)) && (weiAmount > 0)) {
            uint256 oldBalance = pendingWithdrawals[drawer];
            uint256 newBalance = oldBalance + weiAmount;
            if (newBalance > oldBalance) {
                pendingWithdrawals[drawer] = newBalance;
                Withdrawal(drawer, weiAmount);
                return true;
            }
        }
        return false;
    }

    /*
     * @dev Withdraw the allowed value from the contract balance.
     * @return success
     */
    function withdraw() public returns (bool success) {
        uint256 weiAmount = pendingWithdrawals[msg.sender];
        require(weiAmount > 0);

        pendingWithdrawals[msg.sender] = 0;
        msg.sender.transfer(weiAmount);
        Withdrawn(msg.sender, weiAmount);
        return true;
    }

}

/**
 * @title Cointed Token
 * @dev Cointed Token (CTD) and Token Sale (ICO).
 */

contract CtdToken is UpgradableToken, PausableOnce, Withdrawable {

    using SafeMath for uint256;

    string public constant name = "Cointed Token";
    string public constant symbol = "CTD";
    /** Number of "Atom" in 1 CTD (1 CTD = 1x10^decimals Atom) */
    uint8  public constant decimals = 18;

    /** Holder of bounty tokens */
    address public bounty;

    /** Limit (in Atom) issued, inclusive owner's and bounty shares */
    uint256 constant internal TOTAL_LIMIT   = 650000000 * (10 ** uint256(decimals));
    /** Limit (in Atom) for Pre-ICO Phases A, incl. owner's and bounty shares */
    uint256 constant internal PRE_ICO_LIMIT = 130000000 * (10 ** uint256(decimals));

    /**
    * ICO Phases.
    *
    * - PreStart: tokens are not yet sold/issued
    * - PreIcoA:  new tokens sold/issued at the premium price
    * - PreIcoB:  new tokens sold/issued at the discounted price
    * - MainIco   new tokens sold/issued at the regular price
    * - AfterIco: new tokens can not be not be sold/issued any longer
    */
    enum Phases {PreStart, PreIcoA, PreIcoB, MainIco, AfterIco}

    uint64 constant internal PRE_ICO_DURATION = 745 hours;
    uint64 constant internal ICO_DURATION = 2423 hours + 59 minutes;
    uint64 constant internal RETURN_WEI_PAUSE = 30 days;

    // Main ICO rate in CTD(s) per 1 ETH:
    uint256 constant internal TO_SENDER_RATE   = 1000;
    uint256 constant internal TO_OWNER_RATE    =  263;
    uint256 constant internal TO_BOUNTY_RATE   =   52;
    uint256 constant internal TOTAL_RATE   =   TO_SENDER_RATE + TO_OWNER_RATE + TO_BOUNTY_RATE;
    // Pre-ICO Phase A rate
    uint256 constant internal TO_SENDER_RATE_A = 1150;
    uint256 constant internal TO_OWNER_RATE_A  =  304;
    uint256 constant internal TO_BOUNTY_RATE_A =   61;
    uint256 constant internal TOTAL_RATE_A   =   TO_SENDER_RATE_A + TO_OWNER_RATE_A + TO_BOUNTY_RATE_A;
    // Pre-ICO Phase B rate
    uint256 constant internal TO_SENDER_RATE_B = 1100;
    uint256 constant internal TO_OWNER_RATE_B  =  292;
    uint256 constant internal TO_BOUNTY_RATE_B =   58;
    uint256 constant internal TOTAL_RATE_B   =   TO_SENDER_RATE_B + TO_OWNER_RATE_B + TO_BOUNTY_RATE_B;

    // Award in Wei(s) to a successful initiator of a Phase shift
    uint256 constant internal PRE_OPENING_AWARD = 100 * (10 ** uint256(15));
    uint256 constant internal ICO_OPENING_AWARD = 200 * (10 ** uint256(15));
    uint256 constant internal ICO_CLOSING_AWARD = 500 * (10 ** uint256(15));

    struct Rates {
        uint256 toSender;
        uint256 toOwner;
        uint256 toBounty;
        uint256 total;
    }

    event NewTokens(uint256 amount);
    event NewFunds(address funder, uint256 value);
    event NewPhase(Phases phase);

    // current Phase
    Phases public phase = Phases.PreStart;

    // Timestamps limiting duration of Phases, in seconds since Unix epoch.
    uint64 public preIcoOpeningTime;  // when Pre-ICO Phase A starts
    uint64 public icoOpeningTime;     // when Main ICO starts (if not sold out before)
    uint64 public closingTime;        // by when the ICO campaign finishes in any way
    uint64 public returnAllowedTime;  // when owner may withdraw Eth from contract, if any

    uint256 public totalProceeds;

    /*
     * @dev constructor
     * @param _preIcoOpeningTime Timestamp when the Pre-ICO (Phase A) shall start.
     * msg.value MUST be at least the sum of awards.
     */
    function CtdToken(uint64 _preIcoOpeningTime) payable {
        require(_preIcoOpeningTime > now);

        preIcoOpeningTime = _preIcoOpeningTime;
        icoOpeningTime = preIcoOpeningTime + PRE_ICO_DURATION;
        closingTime = icoOpeningTime + ICO_DURATION;
    }

    /*
     * @dev Fallback function delegates the request to create().
     */
    function () payable external {
        create();
    }

    /**
     * @dev Set the address of the holder of bounty tokens.
     * @param _bounty The address of the bounty token holder.
     * @return success/failure
     */
    function setBounty(address _bounty) onlyOwner external returns (bool success) {
        require(_bounty != address(0));
        bounty = _bounty;
        return true;
    }

    /**
     * @dev Mint tokens and add them to the balance of the message.sender.
     * Additional tokens are minted and added to the owner and the bounty balances.
     * @return success/failure
     */
    function create() payable whenNotClosed whenNotPaused public returns (bool success) {
        require(msg.value > 0);
        require(now >= preIcoOpeningTime);

        Phases oldPhase = phase;
        uint256 weiToParticipate = msg.value;
        uint256 overpaidWei;

        adjustPhaseBasedOnTime();

        if (phase != Phases.AfterIco) {

            Rates memory rates = getRates();
            uint256 newTokens = weiToParticipate.mul(rates.total);
            uint256 requestedSupply = totalSupply.add(newTokens);

            uint256 oversoldTokens = computeOversoldAndAdjustPhase(requestedSupply);
            overpaidWei = (oversoldTokens > 0) ? oversoldTokens.div(rates.total) : 0;

            if (overpaidWei > 0) {
                weiToParticipate = msg.value.sub(overpaidWei);
                newTokens = weiToParticipate.mul(rates.total);
                requestedSupply = totalSupply.add(newTokens);
            }

            // "emission" of new tokens
            totalSupply = requestedSupply;
            balances[msg.sender] = balances[msg.sender].add(weiToParticipate.mul(rates.toSender));
            balances[owner] = balances[owner].add(weiToParticipate.mul(rates.toOwner));
            balances[bounty] = balances[bounty].add(weiToParticipate.mul(rates.toBounty));

            // ETH transfers
            totalProceeds = totalProceeds.add(weiToParticipate);
            owner.transfer(weiToParticipate);
            if (overpaidWei > 0) {
                setWithdrawal(msg.sender, overpaidWei);
            }

            // Logging
            NewTokens(newTokens);
            NewFunds(msg.sender, weiToParticipate);

        } else {
            setWithdrawal(msg.sender, msg.value);
        }

        if (phase != oldPhase) {
            logShiftAndBookAward();
        }

        return true;
    }

    /**
     * @dev Send the value (ethers) that the contract holds to the owner address.
     */
    function returnWei() onlyOwner whenClosed afterWithdrawPause external {
        owner.transfer(this.balance);
    }

    function adjustPhaseBasedOnTime() internal {

        if (now >= closingTime) {
            if (phase != Phases.AfterIco) {
                phase = Phases.AfterIco;
            }
        } else if (now >= icoOpeningTime) {
            if (phase != Phases.MainIco) {
                phase = Phases.MainIco;
            }
        } else if (phase == Phases.PreStart) {
            setDefaultParamsIfNeeded();
            phase = Phases.PreIcoA;
        }
    }

    function setDefaultParamsIfNeeded() internal {
        if (bounty == address(0)) {
            bounty = owner;
        }
        if (upgradeMaster == address(0)) {
            upgradeMaster = owner;
        }
        if (pauseMaster == address(0)) {
            pauseMaster = owner;
        }
    }

    function computeOversoldAndAdjustPhase(uint256 newTotalSupply) internal returns (uint256 oversoldTokens) {

        if ((phase == Phases.PreIcoA) &&
            (newTotalSupply >= PRE_ICO_LIMIT)) {
            phase = Phases.PreIcoB;
            oversoldTokens = newTotalSupply.sub(PRE_ICO_LIMIT);

        } else if (newTotalSupply >= TOTAL_LIMIT) {
            phase = Phases.AfterIco;
            oversoldTokens = newTotalSupply.sub(TOTAL_LIMIT);

        } else {
            oversoldTokens = 0;
        }

        return oversoldTokens;
    }

    function getRates() internal returns (Rates rates) {

        if (phase == Phases.PreIcoA) {
            rates.toSender = TO_SENDER_RATE_A;
            rates.toOwner = TO_OWNER_RATE_A;
            rates.toBounty = TO_BOUNTY_RATE_A;
            rates.total = TOTAL_RATE_A;
        } else if (phase == Phases.PreIcoB) {
            rates.toSender = TO_SENDER_RATE_B;
            rates.toOwner = TO_OWNER_RATE_B;
            rates.toBounty = TO_BOUNTY_RATE_B;
            rates.total = TOTAL_RATE_B;
        } else {
            rates.toSender = TO_SENDER_RATE;
            rates.toOwner = TO_OWNER_RATE;
            rates.toBounty = TO_BOUNTY_RATE;
            rates.total = TOTAL_RATE;
        }
        return rates;
    }

    function logShiftAndBookAward() internal {
        uint256 shiftAward;

        if ((phase == Phases.PreIcoA) || (phase == Phases.PreIcoB)) {
            shiftAward = PRE_OPENING_AWARD;

        } else if (phase == Phases.MainIco) {
            shiftAward = ICO_OPENING_AWARD;

        } else {
            shiftAward = ICO_CLOSING_AWARD;
            returnAllowedTime = uint64(now + RETURN_WEI_PAUSE);
        }

        setWithdrawal(msg.sender, shiftAward);
        NewPhase(phase);
    }

    /**
     * @dev Transfer tokens to the specified address.
     * @param _to The address to transfer to.
     * @param _value The amount of tokens to be transferred.
     * @return success/failure
     */
    function transfer(address _to, uint256 _value)
        whenNotPaused limitForOwner public returns (bool success)
    {
        return super.transfer(_to, _value);
    }

    /**
     * @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 the amount of tokens to be transferred.
     * @return success/failure
     */
    function transferFrom(address _from, address _to, uint256 _value)
        whenNotPaused limitForOwner public returns (bool success)
    {
        return super.transferFrom(_from, _to, _value);
    }

    /**
     * @dev Approve the specified address to spend the specified amount of tokens on behalf of the msg.sender.
     * Use "increaseApproval" or "decreaseApproval" function to change the approval, if needed.
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     * @return success/failure
     */
    function approve(address _spender, uint256 _value)
        whenNotPaused limitForOwner public returns (bool success)
    {
        require((_value == 0) || (allowed[msg.sender][_spender] == 0));
        return super.approve(_spender, _value);
    }

    /**
     * @dev Increase the approval for the passed address to spend tokens on behalf of the msg.sender.
     * @param _spender The address which will spend the funds.
     * @param _addedValue The amount of tokens to increase the approval with.
     * @return success/failure
     */
    function increaseApproval(address _spender, uint _addedValue)
        whenNotPaused limitForOwner public returns (bool success)
    {
        return super.increaseApproval(_spender, _addedValue);
    }

    /**
     * @dev Decrease the approval for the passed address to spend tokens on behalf of the msg.sender.
     * @param _spender The address which will spend the funds.
     * @param _subtractedValue The amount of tokens to decrease the approval with.
     * @return success/failure
     */
    function decreaseApproval(address _spender, uint _subtractedValue)
        whenNotPaused limitForOwner public returns (bool success)
    {
        return super.decreaseApproval(_spender, _subtractedValue);
    }

    /*
     * @dev Withdraw the allowed value (ethers) from the contract balance.
     * @return success/failure
     */
    function withdraw() whenNotPaused public returns (bool success) {
        return super.withdraw();
    }

    /**
     * @dev Throws if called when ICO is active.
     */
    modifier whenClosed() {
        require(phase == Phases.AfterIco);
        _;
    }

    /**
     * @dev Throws if called when ICO is completed.
     */
    modifier whenNotClosed() {
        require(phase != Phases.AfterIco);
        _;
    }

    /**
     * @dev Throws if called by the owner before ICO is completed.
     */
    modifier limitForOwner() {
        require((msg.sender != owner) || (phase == Phases.AfterIco));
        _;
    }

    /**
     * @dev Throws if called before returnAllowedTime.
     */
    modifier afterWithdrawPause() {
        require(now > returnAllowedTime);
        _;
    }

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_pauseMaster","type":"address"}],"name":"setPauseMaster","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"icoOpeningTime","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"returnWei","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"closingTime","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"upgradeAgent","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"bounty","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_upgradeAgent","type":"address"},{"name":"_revision","type":"uint32"}],"name":"setUpgradeAgent","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"phase","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_bounty","type":"address"}],"name":"setBounty","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"pauseMaster","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"pauseEnd","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"REVISION","outputs":[{"name":"","type":"uint32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"create","outputs":[{"name":"success","type":"bool"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"totalProceeds","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"preIcoOpeningTime","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"returnAllowedTime","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_upgradeMaster","type":"address"}],"name":"setUpgradeMaster","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_preIcoOpeningTime","type":"uint64"}],"payable":true,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"NewTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"funder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"NewFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"phase","type":"uint8"}],"name":"NewPhase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"drawer","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"drawer","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"agent","type":"address"}],"name":"UpgradeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260048054600160a060020a03199081169091556005805490911690556007805460a060020a60e060020a0319169055600980546000919060a060020a60ff02191674010000000000000000000000000000000000000000835b02179055506040516020806122ea833981016040528080519150505b5b60038054600160a060020a03191633600160a060020a03161790555b426001604060020a038216116100ab57600080fd5b600980546001604060020a03808416750100000000000000000000000000000000000000000090810260a860020a60e860020a03199093169290921792839055600a80549290930481166228ec9001811667ffffffffffffffff199092169190911780821662852744019091166801000000000000000002604060020a608060020a03199091161790555b505b6121a3806101476000396000f3006060604052361561019b5763ffffffff60e060020a60003504166306fdde0381146101a8578063095ea7b3146102335780630f4391f51461026957806318160ddd1461029c57806323b872dd146102c15780632d884a51146102fd578063313ce5671461032d5780633ccfd60b146103565780633f5cbdb61461037d57806345977d03146103925780634b6753bc146103aa5780635de4ccb0146103da578063600440cb14610409578063661884631461043857806370a082311461046e5780638456cb591461049f5780638da5cb5b146104c6578063943dfef1146104f557806395d89b4114610524578063a9059cbb146105af578063aa5a20e5146105e5578063b1c9fe6e1461060f578063bc300ed314610646578063c5c0b85914610679578063c752ff62146106a8578063d73dd623146106cd578063d87522ae14610703578063dd62ed3e14610733578063dde43cba1461076a578063efc81a8c14610796578063f1db23dc146107b2578063f2fde38b146107d7578063f397884b146107f8578063f885eaf214610828578063ffeb7d7514610858575b5b6101a4610879565b505b005b34156101b357600080fd5b6101bb610c3b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101f85780820151818401525b6020016101df565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023e57600080fd5b610255600160a060020a0360043516602435610c72565b604051901515815260200160405180910390f35b341561027457600080fd5b610255600160a060020a0360043516610d25565b604051901515815260200160405180910390f35b34156102a757600080fd5b6102af610d7d565b60405190815260200160405180910390f35b34156102cc57600080fd5b610255600160a060020a0360043581169060243516604435610d83565b604051901515815260200160405180910390f35b341561030857600080fd5b610310610dfd565b60405167ffffffffffffffff909116815260200160405180910390f35b341561033857600080fd5b610340610e0d565b60405160ff909116815260200160405180910390f35b341561036157600080fd5b610255610e12565b604051901515815260200160405180910390f35b341561038857600080fd5b6101a6610e43565b005b341561039d57600080fd5b6101a6600435610eee565b005b34156103b557600080fd5b610310611043565b60405167ffffffffffffffff909116815260200160405180910390f35b34156103e557600080fd5b6103ed61105f565b604051600160a060020a03909116815260200160405180910390f35b341561041457600080fd5b6103ed61106e565b604051600160a060020a03909116815260200160405180910390f35b341561044357600080fd5b610255600160a060020a036004351660243561107d565b604051901515815260200160405180910390f35b341561047957600080fd5b6102af600160a060020a03600435166110f5565b60405190815260200160405180910390f35b34156104aa57600080fd5b610255611114565b604051901515815260200160405180910390f35b34156104d157600080fd5b6103ed6111c3565b604051600160a060020a03909116815260200160405180910390f35b341561050057600080fd5b6103ed6111d2565b604051600160a060020a03909116815260200160405180910390f35b341561052f57600080fd5b6101bb6111e1565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101f85780820151818401525b6020016101df565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105ba57600080fd5b610255600160a060020a0360043516602435611218565b604051901515815260200160405180910390f35b34156105f057600080fd5b6101a6600160a060020a036004351663ffffffff60243516611290565b005b341561061a57600080fd5b610622611438565b6040518082600481111561063257fe5b60ff16815260200191505060405180910390f35b341561065157600080fd5b610255600160a060020a0360043516611448565b604051901515815260200160405180910390f35b341561068457600080fd5b6103ed6114a0565b604051600160a060020a03909116815260200160405180910390f35b34156106b357600080fd5b6102af6114af565b60405190815260200160405180910390f35b34156106d857600080fd5b610255600160a060020a03600435166024356114b5565b604051901515815260200160405180910390f35b341561070e57600080fd5b61031061152d565b60405167ffffffffffffffff909116815260200160405180910390f35b341561073e57600080fd5b6102af600160a060020a0360043581169060243516611544565b60405190815260200160405180910390f35b341561077557600080fd5b61077d611571565b60405163ffffffff909116815260200160405180910390f35b610255610879565b604051901515815260200160405180910390f35b34156107bd57600080fd5b6102af611584565b60405190815260200160405180910390f35b34156107e257600080fd5b6101a6600160a060020a036004351661158a565b005b341561080357600080fd5b610310611616565b60405167ffffffffffffffff909116815260200160405180910390f35b341561083357600080fd5b61031061163f565b60405167ffffffffffffffff909116815260200160405180910390f35b341561086357600080fd5b6101a6600160a060020a0360043516611663565b005b60008060008061088761214e565b6000808060045b60095460a060020a900460ff1660048111156108a657fe5b14156108b157600080fd5b60075460a060020a900467ffffffffffffffff1642116108d057600080fd5b600034116108dd57600080fd5b6009547501000000000000000000000000000000000000000000900467ffffffffffffffff1642101561090f57600080fd5b60095460a060020a900460ff1696503495506109296116b3565b60045b60095460a060020a900460ff16600481111561094457fe5b14610bec576109516117e8565b93506109688460600151879063ffffffff61189616565b60005490935061097e908463ffffffff6118c516565b9150610989826118df565b90506000811161099a5760006109af565b6109af8460600151829063ffffffff6119d416565b5b945060008511156109fb576109cb348663ffffffff6119f016565b95506109e28460600151879063ffffffff61189616565b6000549093506109f8908463ffffffff6118c516565b91505b6000829055610a3a610a158551889063ffffffff61189616565b600160a060020a0333166000908152600160205260409020549063ffffffff6118c516565b600160a060020a033316600090815260016020908152604090912091909155610a9890610a7190860151889063ffffffff61189616565b600354600160a060020a03166000908152600160205260409020549063ffffffff6118c516565b600354600160a060020a03166000908152600160205260409081902091909155610af790610ad090860151889063ffffffff61189616565b600954600160a060020a03166000908152600160205260409020549063ffffffff6118c516565b600954600160a060020a0316600090815260016020526040902055600b54610b25908763ffffffff6118c516565b600b55600354600160a060020a031686156108fc0287604051600060405180830381858888f193505050501515610b5b57600080fd5b6000851115610b7057610b6e3386611a07565b505b7fd7c894eab7da0862dea424c47485ac49eab56e3690186d9ee97bfc895e0eb5e98360405190815260200160405180910390a17f2b6aa69d7af29fd38518d44025ae0801e505fb9e1065cb57945b4200ef7d71943387604051600160a060020a03909216825260208201526040908101905180910390a1610bf8565b610bf63334611a07565b505b866004811115610c0457fe5b60095460a060020a900460ff166004811115610c1c57fe5b14610c2957610c29611ab5565b5b600197505b5b5b5050505050505090565b60408051908101604052600d81527f436f696e74656420546f6b656e00000000000000000000000000000000000000602082015281565b60075460009060a060020a900467ffffffffffffffff164211610c9457600080fd5b60035433600160a060020a039081169116141580610cca575060045b60095460a060020a900460ff166004811115610cc857fe5b145b1515610cd557600080fd5b811580610d055750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b1515610d1057600080fd5b610d1a8383611bec565b90505b5b5b92915050565b60035460009033600160a060020a03908116911614610d4357600080fd5b600160a060020a0382161515610d5857600080fd5b5060078054600160a060020a031916600160a060020a03831617905560015b5b919050565b60005481565b60075460009060a060020a900467ffffffffffffffff164211610da557600080fd5b60035433600160a060020a039081169116141580610ddb575060045b60095460a060020a900460ff166004811115610dd957fe5b145b1515610de657600080fd5b610df1848484611c59565b90505b5b5b9392505050565b600a5467ffffffffffffffff1681565b601281565b60075460009060a060020a900467ffffffffffffffff164211610e3457600080fd5b610e3c611d85565b90505b5b90565b60035433600160a060020a03908116911614610e5e57600080fd5b60045b60095460a060020a900460ff166004811115610e7957fe5b14610e8357600080fd5b600a54700100000000000000000000000000000000900467ffffffffffffffff164211610eaf57600080fd5b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610ee857600080fd5b5b5b5b5b565b6005546000908190600160a060020a03161515610f0a57600080fd5b60008311610f1757600080fd5b600160a060020a03331660009081526001602052604081205492508211610f3d57600080fd5b610f4d828463ffffffff6119f016565b600160a060020a03331660009081526001602052604081209190915554610f7a908463ffffffff6119f016565b600055600654610f90908463ffffffff6118c516565b60065550600554600160a060020a03168063753e88e5338560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610feb57600080fd5b6102c65a03f11515610ffc57600080fd5b50505033600160a060020a03167f318d2be9b9a887c0d168715bd2f44017dafbb3360b14cdcc2a8c0086b4e2d1518460405190815260200160405180910390a25b5b505050565b600a5468010000000000000000900467ffffffffffffffff1681565b600554600160a060020a031681565b600454600160a060020a031681565b60075460009060a060020a900467ffffffffffffffff16421161109f57600080fd5b60035433600160a060020a0390811691161415806110d5575060045b60095460a060020a900460ff1660048111156110d357fe5b145b15156110e057600080fd5b610d1a8383611e34565b90505b5b5b92915050565b600160a060020a0381166000908152600160205260409020545b919050565b60075460009033600160a060020a0390811691161461113257600080fd5b60075460a060020a900467ffffffffffffffff161561115057600080fd5b600780547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff1660a060020a62127500420167ffffffffffffffff16021790557f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a15060015b5b90565b600354600160a060020a031681565b600954600160a060020a031681565b60408051908101604052600381527f4354440000000000000000000000000000000000000000000000000000000000602082015281565b60075460009060a060020a900467ffffffffffffffff16421161123a57600080fd5b60035433600160a060020a039081169116141580611270575060045b60095460a060020a900460ff16600481111561126e57fe5b145b151561127b57600080fd5b610d1a8383611f30565b90505b5b5b92915050565b60045460009033600160a060020a039081169116146112ae57600080fd5b600554600160a060020a0316156112c457600080fd5b600160a060020a038316158015906112e1575063ffffffff821615155b15156112ec57600080fd5b508163ffffffff8216600160a060020a038216637cc963806000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561133b57600080fd5b6102c65a03f1151561134c57600080fd5b5050506040518051905063ffffffff1614151561136857600080fd5b60005481600160a060020a0316634b2ba0dd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156113b157600080fd5b6102c65a03f115156113c257600080fd5b505050604051805190501415156113d857600080fd5b60058054600160a060020a031916600160a060020a0385161790557ff2c44e779d94e9806f973c8ff14aa5dcfd972c84192842a273550c3def4e27d883604051600160a060020a03909116815260200160405180910390a15b5b5b505050565b60095460a060020a900460ff1681565b60035460009033600160a060020a0390811691161461146657600080fd5b600160a060020a038216151561147b57600080fd5b5060098054600160a060020a031916600160a060020a03831617905560015b5b919050565b600754600160a060020a031681565b60065481565b60075460009060a060020a900467ffffffffffffffff1642116114d757600080fd5b60035433600160a060020a03908116911614158061150d575060045b60095460a060020a900460ff16600481111561150b57fe5b145b151561151857600080fd5b610d1a8383612007565b90505b5b5b92915050565b60075460a060020a900467ffffffffffffffff1681565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035460a060020a900463ffffffff1681565b600b5481565b60035433600160a060020a039081169116146115a557600080fd5b600160a060020a03811615156115ba57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360038054600160a060020a031916600160a060020a0383161790555b5b50565b6009547501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b600a54700100000000000000000000000000000000900467ffffffffffffffff1681565b60035433600160a060020a0390811691161461167e57600080fd5b600160a060020a038116151561169357600080fd5b60048054600160a060020a031916600160a060020a0383161790555b5b50565b600a5468010000000000000000900467ffffffffffffffff1642106117245760045b60095460a060020a900460ff1660048111156116ed57fe5b1461171f57600980546004919074ff0000000000000000000000000000000000000000191660a060020a835b02179055505b610ee8565b600a5467ffffffffffffffff16421061178d5760035b60095460a060020a900460ff16600481111561175257fe5b1461171f57600980546003919074ff0000000000000000000000000000000000000000191660a060020a83611719565b02179055505b610ee8565b60005b60095460a060020a900460ff1660048111156117a857fe5b1415610ee8576117b66120ac565b600980546001919074ff0000000000000000000000000000000000000000191660a060020a835b02179055505b5b5b5b565b6117f061214e565b60015b60095460a060020a900460ff16600481111561180b57fe5b14156118325761047e81526101306020820152603d60408201526105eb6060820152610e3f565b60025b60095460a060020a900460ff16600481111561184d57fe5b14156118745761044c81526101246020820152603a60408201526105aa6060820152610e3f565b6103e8815261010760208201526034604082015261052360608201525b5b5b90565b60008282028315806118b257508284828115156118af57fe5b04145b15156118ba57fe5b8091505b5092915050565b6000828201838110156118ba57fe5b8091505b5092915050565b600060015b60095460a060020a900460ff1660048111156118fc57fe5b14801561191457506a6b88921f0410abc20000008210155b1561196757600980546002919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550611960826a6b88921f0410abc200000063ffffffff6119f016565b9050610d77565b6b0219aada9b14535aca00000082106119c957600980546004919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550611960826b0219aada9b14535aca00000063ffffffff6119f016565b9050610d77565b5060005b5b5b919050565b60008082848115156119e257fe5b0490508091505b5092915050565b6000828211156119fc57fe5b508082035b92915050565b60008080600160a060020a03851615801590611a235750600084115b15611aa7575050600160a060020a03831660009081526008602052604090205482810181811115611aa757600160a060020a038516600081815260086020526040908190208390557f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659086905190815260200160405180910390a260019250611aad565b5b600092505b505092915050565b600060015b60095460a060020a900460ff166004811115611ad257fe5b1480611af6575060025b60095460a060020a900460ff166004811115611af457fe5b145b15611b0a575067016345785d8a0000611b8a565b60035b60095460a060020a900460ff166004811115611b2557fe5b1415611b3a57506702c68af0bb140000611b8a565b50600a805477ffffffffffffffff00000000000000000000000000000000191670010000000000000000000000000000000067ffffffffffffffff62278d00420116021790556706f05b59d3b200005b5b611b953382611a07565b506009547f31f72b44f546d9e7eaec13f65636997665e15f134a81c82924f568f5c0d07b939060a060020a900460ff1660405180826004811115611bd557fe5b60ff16815260200191505060405180910390a15b50565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600080600160a060020a0384161515611c7157600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054611cb7908463ffffffff6119f016565b600160a060020a038087166000908152600160205260408082209390935590861681522054611cec908463ffffffff6118c516565b600160a060020a038516600090815260016020526040902055611d15818463ffffffff6119f016565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b600160a060020a033316600090815260086020526040812054818111611daa57600080fd5b600160a060020a0333166000818152600860205260408082209190915582156108fc0290839051600060405180830381858888f193505050501515611dee57600080fd5b33600160a060020a03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260405190815260200160405180910390a2600191505b5090565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115611e9157600160a060020a033381166000908152600260209081526040808320938816835292905290812055611ec8565b611ea1818463ffffffff6119f016565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b6000600160a060020a0383161515611f4757600080fd5b600160a060020a033316600090815260016020526040902054611f70908363ffffffff6119f016565b600160a060020a033381166000908152600160205260408082209390935590851681522054611fa5908363ffffffff6118c516565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205461203f908363ffffffff6118c516565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b600954600160a060020a031615156120e15760035460098054600160a060020a031916600160a060020a039092169190911790555b600454600160a060020a031615156121165760035460048054600160a060020a031916600160a060020a039092169190911790555b600754600160a060020a03161515610ee85760035460078054600160a060020a031916600160a060020a039092169190911790555b5b565b6080604051908101604052806000815260200160008152602001600081526020016000815250905600a165627a7a7230582094b10c2a6e6e4ebe96606e48a7611d3da6e223636638da8e85b7391ebe26f52e00290000000000000000000000000000000000000000000000000000000059e92060

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000059e92060


   Swarm Source:
bzzr://94b10c2a6e6e4ebe96606e48a7611d3da6e223636638da8e85b7391ebe26f52e

 

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