Sponsored Link:   Buy your 1st Ethereum in 5 minutes. Trusted by more than 100k buyers.
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 1404 txns
  Latest 25 txns from a total Of 1404 transactions View All

TxHash Age From To Value [TxFee]
0x1d9848a75d18ff44d9f195efb9449736e702fe8309b7a567b93bdc3daacae1e821 days 11 hrs ago0x962823ed46746e1df0086db2b583411d8fe049b9  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10 Ether0.00075874
0x12058ee4e01efd471eda4d2d70fe800a7b02c26e93b7e43cbaec93ccc6311c1f57 days 14 hrs ago0x75200beda966e20e5dc704386736a4660f2f2255  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.35606868 Ether0.0018
0x5cfa83d8764e0fa45bd2144c62553e46396c2fb4245cec0d3b27f5edb48dddfe57 days 14 hrs ago0xa5a6517aa0802bd6cdc2222d7d262806f6332bd4  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.35633328 Ether0.0018
0x143ed6c299683ec223900579b9996d40f5bde38a5669c83292904e85b893c9b357 days 15 hrs ago0x83aa6807d4ddd56b0b4b6ddf771301ee52c4c6b8  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.04 Ether0.004123539
0x5dd92e1f8e2da6e9b57985a143140d33ee674a0a2faf7fc143b2a70aba35258257 days 17 hrs ago0xdd87723cf107afb4b169f6714636da9f963fd348  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.093 Ether0.002340387
0xd21f406b98824e003005eba1afb36fb55c4272f5983cb71c997b42c7acec92bf57 days 17 hrs ago0x4fe031a312590cd9cc645af0ae2adc977d45cec9  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.11 Ether0.002340387
0x5ae20c2a669a72eb440018929d2e68415daf07171fb714642ba9c63bcc02db2557 days 19 hrs ago0x2fc10e26cc13dcc9f1135e15bbfd524dcdc27390  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.099010461745721 Ether0.001395387
0x6f13a72c8b11d1a81d03eca685ee125d8561dffa6f2fd6479f5fb7c7e1b6c17557 days 22 hrs ago0x33b382fd0ffd8343c9e9f89fb220da346f4f6da7  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11 Ether0.00222894
0xd27e7a23b5735102af1aa7bc58848bd0f901251740b91a9fe9da54f7cc954b2a57 days 23 hrs ago0x46585fc952a15470a63842fa4970b2383c0a22b5  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.2 Ether0.002340387
0x1a0ee40d9e496508456fa7491941378155392fa405dfcef7cb655771960a410758 days 4 hrs ago0x6b27a74436fb0242a293571c2fea68dc85ec8b36  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.28 Ether0.002340387
0x1d17da6f9d08619bf109163695f936265cf7143217742803dffbc17b93b5de8058 days 5 hrs ago0xcd952c352be37b6f8cf521826acd0f33245f2a68  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.3 Ether0.002340387
0x90b27f9126b55593f979839f8f2e2ce02fc388ca8bd1ca5b02fcd250a3cd16cc58 days 8 hrs ago0xdd7d248fb022d2f09d61668ea2b1677ca0dc4dac  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.9 Ether0.001395387
0x7cbec86eede05975636aa6b9ddf9197f6639b581e824f0ebfd40b1593e64a55e58 days 8 hrs ago0xdd7d248fb022d2f09d61668ea2b1677ca0dc4dac  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.1 Ether0.002340387
0xa6a1a0f94a1e7dfd4e0aabacee39b9810ecc9a0a1a64cbe68087baf9650c35d758 days 9 hrs ago0x823f2803c5b78fef9b5ea8a0ba4d7fe23c1d210b  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.175 Ether0.002340387
0xc37cedee8703070bda5d6ba987e3b23ca4cdd031092a375d9377dc5d063e7a2f58 days 9 hrs ago0xbe777d408431272e371fdd81b32087333310fe05  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e113 Ether0.00222894
0x87833d2161922715481ba0663bd247fa16e4b42c112f68e4d6a14e645737f9df58 days 9 hrs ago0xe23cd13838a264b637f2c9ea1840368f2f2dccec  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.97 Ether0.002340387
0xbd545aa28e35aaf7ccd33a596ea06b4f9465f415ee66e82a23a22ed6bf11407e58 days 9 hrs ago0x6a6b7d78681b0f6c77a8b8006359b0f2d530e9b9  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.1188 Ether0.00398682
0xd51d1e374e3a438798cd855124605252e439fdece9162bf63ce39a7db61f42e058 days 9 hrs ago0x4c822373070c2d5c1e6c78f19d31afea761a9d4c  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.3 Ether0.00334341
0xa0434dbdd5a7f01f06e8cbee13af5418308748c2f6f35c32cf4db32d85129b7158 days 9 hrs ago0x446456d74ebc14187476de820fe539c91f7bf7bd  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.5 Ether0.001395387
0xa2feaa02f7ff6ad741c6613ef2b464c1864a6cc4c067a7c79ccc0e4d63df90a858 days 9 hrs ago0x0377a4b70db5debec4891819075f015f06e73a7b  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.7 Ether0.00111447
0xbc352b23186bf350bd8bc58cf34ea73c42ad092b84635df6d951efefccc9fa8858 days 10 hrs ago0x3459d659cee77a1560e3cb7d90fdcda5841b7e5e  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11 Ether0.002340387
0x8ffdeabcfb0f00c7c07dbb21aae9b373297f2813a567b12e9323ac17a49b529d58 days 10 hrs ago0x6a6b7d78681b0f6c77a8b8006359b0f2d530e9b9  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.61 Ether0.00668682
0x01d0f80700fade4918dcc5489c2bd4f8f075e8f86e3a3ee2619b5db200dc9b4658 days 10 hrs ago0x1b94ad9d6e178445d547810c60f55bdddc5cc963  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10.6 Ether0.00488682
0x2ca5cffe6b35ee59026441410320ea3d18f6fb5c89fd38d2143bb40f5280999658 days 10 hrs ago0x517d9f31711dbd3496471be7a09c426ac4823ec8  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e11.1 Ether0.001395387
0x91dd73de3df9de2ebd75c778addbfcdd26e17294c3031169f5cb4deee46c55b758 days 10 hrs ago0x73deb780d7c7ab0545a7e84003ffcf7c101cf368  IN   0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e12 Ether0.002340387
[ 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
0x12058ee4e01efd471eda4d2d70fe800a7b02c26e93b7e43cbaec93ccc6311c1f439093857 days 14 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.35606868 Ether
0x5cfa83d8764e0fa45bd2144c62553e46396c2fb4245cec0d3b27f5edb48dddfe439090657 days 14 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.35633328 Ether
0x143ed6c299683ec223900579b9996d40f5bde38a5669c83292904e85b893c9b3439068157 days 15 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.04 Ether
0x5dd92e1f8e2da6e9b57985a143140d33ee674a0a2faf7fc143b2a70aba352582439029057 days 17 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.093 Ether
0xd21f406b98824e003005eba1afb36fb55c4272f5983cb71c997b42c7acec92bf439027857 days 17 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.11 Ether
0x5ae20c2a669a72eb440018929d2e68415daf07171fb714642ba9c63bcc02db25438984157 days 19 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.099010461745721305 Ether
0x6f13a72c8b11d1a81d03eca685ee125d8561dffa6f2fd6479f5fb7c7e1b6c175438903857 days 22 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91 Ether
0xd27e7a23b5735102af1aa7bc58848bd0f901251740b91a9fe9da54f7cc954b2a438862257 days 23 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.2 Ether
0x1a0ee40d9e496508456fa7491941378155392fa405dfcef7cb655771960a4107438735558 days 4 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.28 Ether
0x1d17da6f9d08619bf109163695f936265cf7143217742803dffbc17b93b5de80438717458 days 5 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.3 Ether
0x90b27f9126b55593f979839f8f2e2ce02fc388ca8bd1ca5b02fcd250a3cd16cc438634458 days 8 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.9 Ether
0x7cbec86eede05975636aa6b9ddf9197f6639b581e824f0ebfd40b1593e64a55e438625458 days 8 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.1 Ether
0xa6a1a0f94a1e7dfd4e0aabacee39b9810ecc9a0a1a64cbe68087baf9650c35d7438617158 days 9 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.175 Ether
0xc37cedee8703070bda5d6ba987e3b23ca4cdd031092a375d9377dc5d063e7a2f438613358 days 9 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b913 Ether
0x87833d2161922715481ba0663bd247fa16e4b42c112f68e4d6a14e645737f9df438610458 days 9 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.97 Ether
0xbd545aa28e35aaf7ccd33a596ea06b4f9465f415ee66e82a23a22ed6bf11407e438609358 days 9 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.1188 Ether
0xd51d1e374e3a438798cd855124605252e439fdece9162bf63ce39a7db61f42e0438606158 days 9 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.3 Ether
0xa0434dbdd5a7f01f06e8cbee13af5418308748c2f6f35c32cf4db32d85129b71438602758 days 9 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.5 Ether
0xa2feaa02f7ff6ad741c6613ef2b464c1864a6cc4c067a7c79ccc0e4d63df90a8438598158 days 9 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.7 Ether
0xbc352b23186bf350bd8bc58cf34ea73c42ad092b84635df6d951efefccc9fa88438580358 days 10 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91 Ether
0x8ffdeabcfb0f00c7c07dbb21aae9b373297f2813a567b12e9323ac17a49b529d438579158 days 10 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.61 Ether
0x01d0f80700fade4918dcc5489c2bd4f8f075e8f86e3a3ee2619b5db200dc9b46438578658 days 10 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b90.6 Ether
0x2ca5cffe6b35ee59026441410320ea3d18f6fb5c89fd38d2143bb40f52809996438576958 days 10 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.1 Ether
0x91dd73de3df9de2ebd75c778addbfcdd26e17294c3031169f5cb4deee46c55b7438573558 days 10 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b92 Ether
0x851e7efea7bb37ce1a5e393bdd2fe9d5ab4ff4dfa417d4b4dd07ec19a0417f99438571358 days 10 hrs ago0x1067ade842eed2bf1bba5c4c5a4177d51ac8e8e10x962823ed46746e1df0086db2b583411d8fe049b91.08 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.