Sponsored Link:  Download the Monaco app for Android and iOS on Aug 31 - www.mona.co
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 1400 txns
  Latest 25 txns from a total Of 1400 transactions View All

TxHash Age From To Value [TxFee]
0x5dd92e1f8e2da6e9b57985a143140d33ee674a0a2faf7fc143b2a70aba35258221 mins ago0xdd87723cf107afb4b169f6714636da9f963fd348  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.093 Ether0.002340387
0xd21f406b98824e003005eba1afb36fb55c4272f5983cb71c997b42c7acec92bf23 mins ago0x4fe031a312590cd9cc645af0ae2adc977d45cec9  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.11 Ether0.002340387
0x5ae20c2a669a72eb440018929d2e68415daf07171fb714642ba9c63bcc02db252 hrs 5 mins ago0x2fc10e26cc13dcc9f1135e15bbfd524dcdc27390  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.099010461745721 Ether0.001395387
0x6f13a72c8b11d1a81d03eca685ee125d8561dffa6f2fd6479f5fb7c7e1b6c1755 hrs 7 mins ago0x33b382fd0ffd8343c9e9f89fb220da346f4f6da7  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11 Ether0.00222894
0xd27e7a23b5735102af1aa7bc58848bd0f901251740b91a9fe9da54f7cc954b2a6 hrs 42 mins ago0x46585fc952a15470a63842fa4970b2383c0a22b5  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.2 Ether0.002340387
0x1a0ee40d9e496508456fa7491941378155392fa405dfcef7cb655771960a410711 hrs 32 mins ago0x6b27a74436fb0242a293571c2fea68dc85ec8b36  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.28 Ether0.002340387
0x1d17da6f9d08619bf109163695f936265cf7143217742803dffbc17b93b5de8012 hrs 19 mins ago0xcd952c352be37b6f8cf521826acd0f33245f2a68  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.3 Ether0.002340387
0x90b27f9126b55593f979839f8f2e2ce02fc388ca8bd1ca5b02fcd250a3cd16cc15 hrs 31 mins ago0xdd7d248fb022d2f09d61668ea2b1677ca0dc4dac  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.9 Ether0.001395387
0x7cbec86eede05975636aa6b9ddf9197f6639b581e824f0ebfd40b1593e64a55e15 hrs 52 mins ago0xdd7d248fb022d2f09d61668ea2b1677ca0dc4dac  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.1 Ether0.002340387
0xa6a1a0f94a1e7dfd4e0aabacee39b9810ecc9a0a1a64cbe68087baf9650c35d716 hrs 11 mins ago0x823f2803c5b78fef9b5ea8a0ba4d7fe23c1d210b  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.175 Ether0.002340387
0xc37cedee8703070bda5d6ba987e3b23ca4cdd031092a375d9377dc5d063e7a2f16 hrs 18 mins ago0xbe777d408431272e371fdd81b32087333310fe05  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e113 Ether0.00222894
0x87833d2161922715481ba0663bd247fa16e4b42c112f68e4d6a14e645737f9df16 hrs 24 mins ago0xe23cd13838a264b637f2c9ea1840368f2f2dccec  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.97 Ether0.002340387
0xbd545aa28e35aaf7ccd33a596ea06b4f9465f415ee66e82a23a22ed6bf11407e16 hrs 26 mins ago0x6a6b7d78681b0f6c77a8b8006359b0f2d530e9b9  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.1188 Ether0.00398682
0xd51d1e374e3a438798cd855124605252e439fdece9162bf63ce39a7db61f42e016 hrs 34 mins ago0x4c822373070c2d5c1e6c78f19d31afea761a9d4c  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.3 Ether0.00334341
0xa0434dbdd5a7f01f06e8cbee13af5418308748c2f6f35c32cf4db32d85129b7116 hrs 41 mins ago0x446456d74ebc14187476de820fe539c91f7bf7bd  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.5 Ether0.001395387
0xa2feaa02f7ff6ad741c6613ef2b464c1864a6cc4c067a7c79ccc0e4d63df90a816 hrs 50 mins ago0x0377a4b70db5debec4891819075f015f06e73a7b  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.7 Ether0.00111447
0xbc352b23186bf350bd8bc58cf34ea73c42ad092b84635df6d951efefccc9fa8817 hrs 26 mins ago0x3459d659cee77a1560e3cb7d90fdcda5841b7e5e  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11 Ether0.002340387
0x8ffdeabcfb0f00c7c07dbb21aae9b373297f2813a567b12e9323ac17a49b529d17 hrs 29 mins ago0x6a6b7d78681b0f6c77a8b8006359b0f2d530e9b9  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.61 Ether0.00668682
0x01d0f80700fade4918dcc5489c2bd4f8f075e8f86e3a3ee2619b5db200dc9b4617 hrs 31 mins ago0x1b94ad9d6e178445d547810c60f55bdddc5cc963  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.6 Ether0.00488682
0x2ca5cffe6b35ee59026441410320ea3d18f6fb5c89fd38d2143bb40f5280999617 hrs 35 mins ago0x517d9f31711dbd3496471be7a09c426ac4823ec8  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.1 Ether0.001395387
0x91dd73de3df9de2ebd75c778addbfcdd26e17294c3031169f5cb4deee46c55b717 hrs 41 mins ago0x73deb780d7c7ab0545a7e84003ffcf7c101cf368  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e12 Ether0.002340387
0x851e7efea7bb37ce1a5e393bdd2fe9d5ab4ff4dfa417d4b4dd07ec19a0417f9917 hrs 49 mins ago0x937b783aa2bd43385b143606b8c3b3bc58b592ec  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.08 Ether0.002340387
0x10adbace5e5cf660a65e319f323752ea4251537b0d9ebb30d1b110779b7cccc618 hrs 25 mins ago0xfb6e176b93da19122b1923e629bb569131a7998e  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.2 Ether0.002340387
0x3d7b2bd7fab1a390a7c43c8f40017a7b3d703a1df8184584f8aab72acac96ce618 hrs 27 mins ago0x35f4b6d1044d187d99485c04a735de300b70b772  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.35757228 Ether0.0018
0xf3d781e55edb5c3e5c40eec4b3b5f7c9e2767855812499caa879fd39a0f740e218 hrs 28 mins ago0x5490689aac12de642dc4cf9f1c997ec1395426db  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.1 Ether0.00668682
[ 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
0x5dd92e1f8e2da6e9b57985a143140d33ee674a0a2faf7fc143b2a70aba352582439029021 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.093 Ether
0xd21f406b98824e003005eba1afb36fb55c4272f5983cb71c997b42c7acec92bf439027823 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.11 Ether
0x5ae20c2a669a72eb440018929d2e68415daf07171fb714642ba9c63bcc02db2543898412 hrs 5 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.099010461745721305 Ether
0x6f13a72c8b11d1a81d03eca685ee125d8561dffa6f2fd6479f5fb7c7e1b6c17543890385 hrs 7 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91 Ether
0xd27e7a23b5735102af1aa7bc58848bd0f901251740b91a9fe9da54f7cc954b2a43886226 hrs 42 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.2 Ether
0x1a0ee40d9e496508456fa7491941378155392fa405dfcef7cb655771960a4107438735511 hrs 32 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.28 Ether
0x1d17da6f9d08619bf109163695f936265cf7143217742803dffbc17b93b5de80438717412 hrs 19 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.3 Ether
0x90b27f9126b55593f979839f8f2e2ce02fc388ca8bd1ca5b02fcd250a3cd16cc438634415 hrs 31 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.9 Ether
0x7cbec86eede05975636aa6b9ddf9197f6639b581e824f0ebfd40b1593e64a55e438625415 hrs 52 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.1 Ether
0xa6a1a0f94a1e7dfd4e0aabacee39b9810ecc9a0a1a64cbe68087baf9650c35d7438617116 hrs 11 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.175 Ether
0xc37cedee8703070bda5d6ba987e3b23ca4cdd031092a375d9377dc5d063e7a2f438613316 hrs 18 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b913 Ether
0x87833d2161922715481ba0663bd247fa16e4b42c112f68e4d6a14e645737f9df438610416 hrs 24 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.97 Ether
0xbd545aa28e35aaf7ccd33a596ea06b4f9465f415ee66e82a23a22ed6bf11407e438609316 hrs 26 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.1188 Ether
0xd51d1e374e3a438798cd855124605252e439fdece9162bf63ce39a7db61f42e0438606116 hrs 34 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.3 Ether
0xa0434dbdd5a7f01f06e8cbee13af5418308748c2f6f35c32cf4db32d85129b71438602716 hrs 41 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.5 Ether
0xa2feaa02f7ff6ad741c6613ef2b464c1864a6cc4c067a7c79ccc0e4d63df90a8438598116 hrs 50 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.7 Ether
0xbc352b23186bf350bd8bc58cf34ea73c42ad092b84635df6d951efefccc9fa88438580317 hrs 26 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91 Ether
0x8ffdeabcfb0f00c7c07dbb21aae9b373297f2813a567b12e9323ac17a49b529d438579117 hrs 29 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.61 Ether
0x01d0f80700fade4918dcc5489c2bd4f8f075e8f86e3a3ee2619b5db200dc9b46438578617 hrs 31 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.6 Ether
0x2ca5cffe6b35ee59026441410320ea3d18f6fb5c89fd38d2143bb40f52809996438576917 hrs 35 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.1 Ether
0x91dd73de3df9de2ebd75c778addbfcdd26e17294c3031169f5cb4deee46c55b7438573517 hrs 41 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b92 Ether
0x851e7efea7bb37ce1a5e393bdd2fe9d5ab4ff4dfa417d4b4dd07ec19a0417f99438571317 hrs 49 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.08 Ether
0x10adbace5e5cf660a65e319f323752ea4251537b0d9ebb30d1b110779b7cccc6438554718 hrs 25 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.2 Ether
0x3d7b2bd7fab1a390a7c43c8f40017a7b3d703a1df8184584f8aab72acac96ce6438553518 hrs 27 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.35757228 Ether
0xf3d781e55edb5c3e5c40eec4b3b5f7c9e2767855812499caa879fd39a0f740e2438553218 hrs 28 mins ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.1 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: SNDTokenSale
Compiler Version: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.11;

/*
 * ERC20 interface
 * see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 {
  uint public totalSupply;
  function balanceOf(address who) constant returns (uint);
  function allowance(address owner, address spender) constant returns (uint);

  function transfer(address to, uint value) returns (bool ok);
  function transferFrom(address from, address to, uint value) returns (bool ok);
  function approve(address spender, uint value) returns (bool ok);
  event Transfer(address indexed from, address indexed to, uint value);
  event Approval(address indexed owner, address indexed spender, uint value);
}



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

  function safeDiv(uint a, uint b) internal returns (uint) {
    assert(b > 0);
    uint c = a / b;
    assert(a == b * c + a % b);
    return c;
  }

  function safeSub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

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

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

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

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

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

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



/**
 * Standard ERC20 token with Short Hand Attack and approve() race condition mitigation.
 *
 * Based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, SafeMath {

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

  /* Actual balances of token holders */
  mapping(address => uint) balances;

  /* approve() allowances */
  mapping (address => mapping (address => uint)) allowed;

  /**
   *
   * Fix for the ERC20 short address attack
   *
   * http://vessenes.com/the-erc20-short-address-attack-explained/
   */
  modifier onlyPayloadSize(uint size) {
     if(msg.data.length != size + 4) {
       throw;
     }
     _;
  }

  function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) returns (bool success) {
    balances[msg.sender] = safeSub(balances[msg.sender], _value);
    balances[_to] = safeAdd(balances[_to], _value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(address _from, address _to, uint _value) returns (bool success) {
    uint _allowance = allowed[_from][msg.sender];

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

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

  function balanceOf(address _owner) constant returns (uint balance) {
    return balances[_owner];
  }

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

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * Atomic increment of approved spending
   *
   * Works around https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   */
  function addApproval(address _spender, uint _addedValue)
  onlyPayloadSize(2 * 32)
  returns (bool success) {
      uint oldValue = allowed[msg.sender][_spender];
      allowed[msg.sender][_spender] = safeAdd(oldValue, _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)
  onlyPayloadSize(2 * 32)
  returns (bool success) {

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

      if (_subtractedValue > oldVal) {
          allowed[msg.sender][_spender] = 0;
      } else {
          allowed[msg.sender][_spender] = safeSub(oldVal, _subtractedValue);
      }
      Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
      return true;
  }

}



contract BurnableToken is StandardToken {

  address public constant BURN_ADDRESS = 0;

  /** How many tokens we burned */
  event Burned(address burner, uint burnedAmount);

  /**
   * Burn extra tokens from a balance.
   *
   */
  function burn(uint burnAmount) {
    address burner = msg.sender;
    balances[burner] = safeSub(balances[burner], burnAmount);
    totalSupply = safeSub(totalSupply, burnAmount);
    Burned(burner, burnAmount);
  }
}





/**
 * Upgrade agent interface inspired by Lunyr.
 *
 * 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.
 */
contract UpgradeAgent {

  uint public originalSupply;

  /** Interface marker */
  function isUpgradeAgent() public constant returns (bool) {
    return true;
  }

  function upgradeFrom(address _from, uint256 _value) public;

}


/**
 * A token upgrade mechanism where users can opt-in amount of tokens to the next smart contract revision.
 *
 * First envisioned by Golem and Lunyr projects.
 */
contract UpgradeableToken is StandardToken {

  /** 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. */
  uint256 public totalUpgraded;

  /**
   * 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
   * - 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 indexed _to, uint256 _value);

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

  /**
   * Do not allow construction without upgrade master set.
   */
  function UpgradeableToken(address _upgradeMaster) {
    upgradeMaster = _upgradeMaster;
  }

  /**
   * Allow the token holder to upgrade some of their tokens to a new contract.
   */
  function upgrade(uint256 value) public {

      UpgradeState state = getUpgradeState();
      if(!(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading)) {
        // Called in a bad state
        throw;
      }

      // Validate input value.
      if (value == 0) throw;

      balances[msg.sender] = safeSub(balances[msg.sender], value);

      // Take tokens out from circulation
      totalSupply = safeSub(totalSupply, value);
      totalUpgraded = safeAdd(totalUpgraded, value);

      // Upgrade agent reissues the tokens
      upgradeAgent.upgradeFrom(msg.sender, value);
      Upgrade(msg.sender, upgradeAgent, value);
  }

  /**
   * Set an upgrade agent that handles
   */
  function setUpgradeAgent(address agent) external {

      if(!canUpgrade()) {
        // The token is not yet in a state that we could think upgrading
        throw;
      }

      if (agent == 0x0) throw;
      // Only a master can designate the next agent
      if (msg.sender != upgradeMaster) throw;
      // Upgrade has already begun for an agent
      if (getUpgradeState() == UpgradeState.Upgrading) throw;

      upgradeAgent = UpgradeAgent(agent);

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

      UpgradeAgentSet(upgradeAgent);
  }

  /**
   * Get the state of the token upgrade.
   */
  function getUpgradeState() public constant 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 setUpgradeMaster(address master) public {
      if (master == 0x0) throw;
      if (msg.sender != upgradeMaster) throw;
      upgradeMaster = master;
  }

  /**
   * Child contract can enable to provide the condition when the upgrade can begun.
   */
  function canUpgrade() public constant returns(bool) {
     return true;
  }

}


contract SNDToken is BurnableToken, UpgradeableToken {

  string public name;
  string public symbol;
  uint public decimals;
  address public owner;

  mapping(address => uint) previligedBalances;

  function SNDToken(address _owner, string _name, string _symbol, uint _totalSupply, uint _decimals)  UpgradeableToken(_owner) {
    name = _name;
    symbol = _symbol;
    totalSupply = _totalSupply;
    decimals = _decimals;

    // Allocate initial balance to the owner
    balances[_owner] = _totalSupply;

    // save the owner
    owner = _owner;
  }

  // privileged transfer
  function transferPrivileged(address _to, uint _value) onlyPayloadSize(2 * 32) returns (bool success) {
    if (msg.sender != owner) throw;
    balances[msg.sender] = safeSub(balances[msg.sender], _value);
    balances[_to] = safeAdd(balances[_to], _value);
    previligedBalances[_to] = safeAdd(previligedBalances[_to], _value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  // get priveleged balance
  function getPrivilegedBalance(address _owner) constant returns (uint balance) {
    return previligedBalances[_owner];
  }

  // admin only can transfer from the privileged accounts
  function transferFromPrivileged(address _from, address _to, uint _value) returns (bool success) {
    if (msg.sender != owner) throw;

    uint availablePrevilegedBalance = previligedBalances[_from];

    balances[_from] = safeSub(balances[_from], _value);
    balances[_to] = safeAdd(balances[_to], _value);
    previligedBalances[_from] = safeSub(availablePrevilegedBalance, _value);
    Transfer(_from, _to, _value);
    return true;
  }
}

contract SNDTokenSale {
    address public beneficiary;
    uint public startline;
    uint public deadline;
    uint public price;
    uint public amountRaised;
    uint public totalTokensSold;
    uint public threshold;

    mapping(address => uint) public actualGotETH;
    mapping(address => uint) public actualGotTokens;
    SNDToken public tokenReward;

    modifier onlyOwner() {
        if(msg.sender != beneficiary) throw;
        _;
    }

    function SNDTokenSale(
        uint start,
        uint end,
        uint costOfEachToken,
        SNDToken addressOfTokenUsedAsReward
    ) {
        beneficiary = msg.sender;
        startline = start;
        deadline = end;
        price = costOfEachToken;
        tokenReward = SNDToken(addressOfTokenUsedAsReward);
        totalTokensSold = 0;
    }

    function () payable {
        if (now <= startline) throw;
        if (now >= deadline) throw;

        uint amount = msg.value;
        if (amount < price) throw;

        amountRaised += amount;

        uint tokensToSend = amount / price;

        totalTokensSold += tokensToSend;

        actualGotETH[msg.sender] += amount;
        actualGotTokens[msg.sender] += tokensToSend;

        beneficiary.transfer(amount);
        tokenReward.transfer(msg.sender, tokensToSend);
    }

    function transferOwnership(address newOwner) onlyOwner {
        if (newOwner != address(0)) {
            beneficiary = newOwner;
        }
    }

    function WithdrawETH(uint amount) onlyOwner {
        beneficiary.transfer(amount);
    }

    function WithdrawAllETH() onlyOwner {
        beneficiary.transfer(amountRaised);
    }

    function WithdrawTokens(uint amount) onlyOwner {
        tokenReward.transfer(beneficiary, amount);
    }

    function ChangeCost(uint costOfEachToken) onlyOwner {
        price = costOfEachToken;
    }

    function ChangeStart(uint start) onlyOwner {
        startline = start;
    }

    function ChangeEnd(uint end) onlyOwner {
        deadline = end;
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"start","type":"uint256"}],"name":"ChangeStart","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"WithdrawTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startline","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"WithdrawAllETH","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"actualGotETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"threshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalTokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenReward","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"WithdrawETH","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"actualGotTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"costOfEachToken","type":"uint256"}],"name":"ChangeCost","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"end","type":"uint256"}],"name":"ChangeEnd","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"start","type":"uint256"},{"name":"end","type":"uint256"},{"name":"costOfEachToken","type":"uint256"},{"name":"addressOfTokenUsedAsReward","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000c57fe5b60405160808061077883398101604090815281516020830151918301516060909301519092905b60008054600160a060020a03338116600160a060020a031992831617835560018790556002869055600385905560098054918516919092161790556005555b505050505b6106f2806100866000396000f300606060405236156100ee5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630e78501f8114610231578063162bc80c146102465780631ffe4cca1461025b57806329a5c0f41461027d57806329dcb0cf1461028f5780632ae8b4a3146102b157806338af3eed146102df57806342cde4e81461030b57806363b201171461032d5780636e66f6e91461034f5780637b3e5e7b1461037b57806394effa141461039d578063a035b1fe146103b2578063baaa8b9a146103d4578063c47af5cf14610402578063f2fde38b14610417578063f72f682614610435575b61022f5b60006000600154421115156101075760006000fd5b60025442106101165760006000fd5b3491506003548210156101295760006000fd5b60048054830190556003548281151561013e57fe5b60058054929091049182019055600160a060020a0333811660009081526007602090815260408083208054880190556008909152808220805485019055815490519394509091169184156108fc0291859190818181858888f1935050505015156101a457fe5b600954604080516000602091820181905282517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152602482018790529351939094169363a9059cbb936044808301949391928390030190829087803b151561021957fe5b6102c65a03f1151561022757fe5b5050505b5050565b005b341561023957fe5b61022f60043561044a565b005b341561024e57fe5b61022f600435610470565b005b341561026357fe5b61026b610518565b60408051918252519081900360200190f35b341561028557fe5b61022f61051e565b005b341561029757fe5b61026b610570565b60408051918252519081900360200190f35b34156102b957fe5b61026b600160a060020a0360043516610576565b60408051918252519081900360200190f35b34156102e757fe5b6102ef610588565b60408051600160a060020a039092168252519081900360200190f35b341561031357fe5b61026b610597565b60408051918252519081900360200190f35b341561033557fe5b61026b61059d565b60408051918252519081900360200190f35b341561035757fe5b6102ef6105a3565b60408051600160a060020a039092168252519081900360200190f35b341561038357fe5b61026b6105b2565b60408051918252519081900360200190f35b34156103a557fe5b61022f6004356105b8565b005b34156103ba57fe5b61026b610609565b60408051918252519081900360200190f35b34156103dc57fe5b61026b600160a060020a036004351661060f565b60408051918252519081900360200190f35b341561040a57fe5b61022f600435610621565b005b341561041f57fe5b61022f600160a060020a0360043516610647565b005b341561043d57fe5b61022f6004356106a0565b005b60005433600160a060020a039081169116146104665760006000fd5b60018190555b5b50565b60005433600160a060020a0390811691161461048c5760006000fd5b6009546000805460408051602090810184905281517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152602481018790529151929094169363a9059cbb9360448084019492938390030190829087803b151561050257fe5b6102c65a03f1151561051057fe5b5050505b5b50565b60015481565b60005433600160a060020a0390811691161461053a5760006000fd5b60008054600454604051600160a060020a039092169281156108fc029290818181858888f19350505050151561056c57fe5b5b5b565b60025481565b60076020526000908152604090205481565b600054600160a060020a031681565b60065481565b60055481565b600954600160a060020a031681565b60045481565b60005433600160a060020a039081169116146105d45760006000fd5b60008054604051600160a060020a039091169183156108fc02918491818181858888f19350505050151561046c57fe5b5b5b50565b60035481565b60086020526000908152604090205481565b60005433600160a060020a0390811691161461063d5760006000fd5b60038190555b5b50565b60005433600160a060020a039081169116146106635760006000fd5b600160a060020a0381161561046c576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60005433600160a060020a039081169116146106bc5760006000fd5b60028190555b5b505600a165627a7a72305820938acd0b833878bddd6ab19c82753da0f006a1f4431ed525542722dfa39b72bd00290000000000000000000000000000000000000000000000000000000059bfd7050000000000000000000000000000000000000000000000000000000059cede80000000000000000000000000000000000000000000000000000ecd8fae906aae000000000000000000000000f333b2ace992ac2bbd8798bf57bc65a06184afba

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

-----Decoded View---------------
Found 4 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000000000000059bfd705
Arg [1] : 0000000000000000000000000000000000000000000000000000000059cede80
Arg [2] : 000000000000000000000000000000000000000000000000000ecd8fae906aae
Arg [3] : 000000000000000000000000f333b2ace992ac2bbd8798bf57bc65a06184afba


   Swarm Source:
bzzr://938acd0b833878bddd6ab19c82753da0f006a1f4431ed525542722dfa39b72bd
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.